day04 - Web标准与前端开发 |青训营笔记
这是我参与「第四届青训营」笔记创作活动的的第四天
关于前端开发:起源、架构、变迁
上网指接入Internet,它是地球上 相互连接的计算机构成的网络。计算机网络诞生于上个世纪的60年代, 标志性通信协议是TCP/IP。
1989年诞生时,Web由三种技术构成:
- HTML
- HTTP
- URL CSS和JavaScript是几年之后才出现的。
关于前端开发:前端应用的领域之终端和跨端
命令行/终端
- Webpack CLl
- Babel CLl
- Vue CLl
- React CLl
桌面跨端
Electron
NW.js
移动跨端
React Native
Flutter
关于前端开发:语言、框架、工具
关于前端开发:浏览器、网络、服务器
架构
Web浏览器的架构,可以实现为一个进程包含多个线程,也可以实现为很多进程包含少数线程通过IPC通信。如何实现浏览器,并没有统一的标准。 Chrome最新的架构:最上层是浏览器进程,负责协调承担各项工作的其他进程,比如实用程序进程、渲染器进程、GPU进程、插件进程等,如下图所示。
- 浏览器进程:控制浏览器这个应用的chrome(主框架)部分,包括地址栏、书签、前进/后退按钮等,同时也会处理浏览器不可见的高权限任务,如发送网络请求、访问文件。
- 渲染器进程:负责在标签页中显示网站及处理事件。
- 插件进程:控制网站用到的所有插件。
- GPU进程:在独立的进程中处理GPU任务。之所以放到独立的进程,是因为GPU要处理来自多个应用的请求,但要在同一个界面上绘制图形。
Web标准
了解Web标准组织
- W3C: World Wide Web Consortium
- Ecma: Ecma International
- WHATWG: Web Hypertext ApplicationTechnology Working Group
- IETF: Internet Engineering Task Force
w3C与Ecma会员
w3C目前在全球有457家会员,其中北航总部(中国区)会员47家
Ecma的AM(Associate Member)会员目前有18家,中国公司有字节跳动、360、阿里、华为、腾讯等5家
w3C流程
- Explainer demo
- Find the right community/groupWeb IDL for APIs
- Step-by-step algorithms
- GitHub, Markdown, respec, bikeshed, etc.
- Get an early review w3ctag/design-reviewsWrite web-platform-tests (WPT) tests
- Write web-platform-tests (wPT) tests
- Explainer:就是建议说明文档,比如要标准化某个领域的API,要先写一个建议文档,Slide上有个链接,里面包含相关示例: https:/w3ctag.gitubio/explainers
- Find the right community/group︰找到合适的社区或小组,把建议文档提交到社区或小组里充分讨论;
- Web IDL for APls: IDL (Interface Description Language,接口描述语言),用于描述API的一种标准方式:httpsy/heycam.githubiolwebidl
- Step-by-step algorithms:分步算法,就是要把算法步骤描述清楚;
- GitHub, Markdown, respec, bikeshed, etc:这些都是工具;
- Get an early review w3ctag/design-review:事先请TAG (Technical Architecture Group,技术架构组)进行设计评审;
- Write web-platform-tests (wPT) tests:编写WPT测试。
TC39流程
负责制定ECMAScript规范的是TC39,TC是Technial Committee,技术委员会的意思。
- Stage 0: strawman,稻草人,以任何形式提交的想法
- Stage 1: proposal,提案,特性的正式建议
- Stage 2 : draft,草案,具有语法和语义的描述
- Stage 3: candidate,候选,规范文本完备,有了两个实现
- Stage 4: finished,完成,可以成为标准,通过单元测试
如何参与(关注会议)
W3C会议
W3CTechnical Plenary / Advisory Committee Meetings Week(简称TPAC)是W3C一年一度的全球技术大会,汇集 W3C各工作小组成员(工作组、兴趣组、社区组等)、咨询委员会(AB)、技术架构组(TAG)、会员单位代表(AC)、公众特邀专家以及全球社区成员,通过为期1-2周的集中互动交流,深入探讨未来开放Web平台技术方向。
Ecma会议
年度大会
GA(General Assembly)
TC39会议
每1-2个月Meeting calendar