-
这是我参与「第四届青训营 」笔记创作活动的第5天
以下为日常上课笔记,有关于Web标准与前端开发的一些基础内容
-
关于前端开发\
-
起源、架构、变迁\
- 上网指接入lnternet,它是地球上相互连接的计算机构成的网络。计算机网络诞生于上个世纪的60年代,标志性通信协议是TCP/IP 。\
- 1989年诞生时,Web由HTML、HTTP、URL三种技术构成\
- CSS和JavaScript是几年之后才出现的
\
- 前端时代划分
\
-
前端应用的领域\
-
面向的对象\
- To Business\
- To Customer\
- To Developer\
-
浏览器\
- 浏览器包括桌面浏览器和移动浏览器,以及移动App中的WebView,都属于浏览器直接渲染Web应用的范畴\
-
桌面浏览器\
- 包括Chrome、Edge、Firefox、Opera、Safari这五个主流浏览器\
- 因为Edge和Opera都已经选择站到了谷歌的阵营,所以事实上只有Chrome、Safari和Firefox三个浏览器。\
- 目前,Chrome具有事实上的垄断地位。\
-
移动浏览器\
- 主要是Chrome、Satai,还有国内小程序提供商定制的一些浏览器引擎\
- 换句话说,前接不仅要开发在浏览器和WebView中运行的网页,也要开发小程序\
-
服务器\
- 服务端的开发目前主要还是依托于Nodejs这个成熟的JS运行时\
- npm包管理平台已经成为世界最大的程序包管理平台\
- 还有Express、Koa等Web开发框架的生态\
- 也要关注Deno\
-
终端和跨端\
-
这个应用领域通常是开发者工具\
- 命令行工具里的Webpack、Babel、React、Vue都有CLl(Command-Line-Interface)版\
- 桌面跨端主要有Electron和NW.js\
- 移动跨端主要有React Native和Flutter\
- 目前世界上最流行的编码环境VSCode就是基于Electron的一个Web应用.\
-
-
-
语言、框架、工具\
- WebAssembly
\
- 主流的及其作者
\
- WebAssembly
-
-
关于Web标准\
-
了解Web标准组织\
-
W3C: World Wide Web Consortium\
- 官网: www.w3.org\
- Github: github.com/w3c\
- 规范查询: www.w3.org/TR
\
-
Ecma: Eema International\
- TC39: tc39.es\
- Github: github.com/tc39\
-
WHATWG: Web Hypertext ApplicationTechnology Working Group\
- 官网: whatwg.org/\
- Github: github.com/whatwg\
- 规范查询: spec.whatwg.org/\
-
IETF: Internet Engineering Task Force\
- 官网: www.ietf.org/\
- Github: github.com/ietf
\
-
-
W3C与Ecma会员\
- w3C目前在全球有457家会员,其中北航总部(中国区)会员47家\
- Ecma的AM (Associate Member)会员目前有18家,中国公司有字节跳动、360、阿里、华为、腾讯等5家\
-
W3C流程\
- W3C规范制定流程
\
- WD: Working Draft,即工作草案\
- CR: Candiate Recommendation,即候选推荐\
- PR: Proposed Recommendation,即提议推荐\
- REC: Recommendation,即推荐标准\
- 推荐标准就是W3C的标准的最终形态,不是强制性标准\
- W3C规范的流程在前面的流程文档里有详细介绍。但一个规范从草案到正式发布,通常都涉及以下几个方面:\
-
Explainer\
- 就是建议说明文档,比如要标准化某个领域的API,要先写一个建议文档\
-
Find the right community/group\
- 找到合适的社区或小组,把建议文档提交到社区或小组里充分讨论\
-
Web IDL for APIs\
- IDL (Interface Description Language,接口描述语言)\
- 用于描述API的一种标准方式:heycam.github.io/webidl/\
-
Step-by-step algorithms\
- 分步算法,就是要把算法步骤描述清楚\
-
GitHub, Markdown, respec, bikeshed, etc.\
- 工具\
-
Get an early review w3ctag/design-reviews\
- 事先请TAG(Technical Architecture Group,技术架构组)进行设计评审\
-
Write web-platform-tests (WPT) tests\
- 编写WPT测试\
- W3C规范制定流程
-
TC39流程\
- 负责制定ECMAScript规范的是TC39\
- TC是Technial Committee,技术委员会的意思\
-
Ecma TC39规范制定流程
\
- Stage 0: strawman,稻草人,以任何形式提交的想法\
- Stage 1: proposal,提案,特性的正式建议\
- Stage 2: draft,草案,具有语法和语义的描述\
- Stage 3: candidate,候选,规范文本完备,有两个实现\
- Stage 4: finished,完成,可以成为标准,通过单元测试\
-
- Championing a proposal at TC39\
- How to write a good explainer\
- Presenting a Proposal to TC39\
- Reading a proposal draft\
- Stage 3 Proposal Reviews\
- How to experiment with a proposal before Stage 4\
- Implementing and shipping TC39 proposals\
-
如何参与\
- 关注会议\
-
W3C会议\
-
介绍\
- W3C Technical Plenary / Advisory Committee Meetings Week(简称TPAC)是W3C一年一度的全球技术大会,汇集W3C各工作小组成员(工作组、兴趣组、社区组等)、咨询委员会(AB)、技术架构组(TAG)、会员单位代表(AC)、公众特邀专家以及全球社区成员,通过为期1-2周的集中互动交流,深入探讨未来开放Web平台技术方向\
- 疫情后改为线上\
-
年度大会\
- AC (Advisory Committee)\
- TPAC (Technical Plenary and Advisory Committee)\
-
工作组会议\
- 每月会议\
- 各种研讨会\
-
-
Eema会议\
-
年度大会\
- GA (General Assembly)\
-
TC39会议\
- 每1-2个月\
-
-