Web 标准与前端开发 | 青训营笔记

99 阅读4分钟

这是我参与「第四届青训营 」笔记创作活动的的第5天

一 关于前端开发

1. 起源、架构、变迁

🌮 起源: 蒂姆·伯纳斯·李(Tim Berners-Lee),他是万维网的发明者。

🌮 架构: 客户端使用浏览器,通过HTTP协议,与服务器进行信息交换。

🌮 变迁: 三个时代。

  1. 只读时代 1989-2004:HTML/ CSS/ JavaScript;单向发布,静态只读,链接跳转,刷新页面,表格对齐元素,CGI。
  2. 体验时代 2005-2010:Ajax/ Web API/ JQuery;动态交互,社交媒体,UCG,SPA,JQuery,YUI。
  3. 敏捷时代 2010-2022:Fetch/ Node.js/ Webpack;模块化,组件化,转译,打包,Vue,React。

2. 前端应用的领域

🌮 产品运作模式:

  • to business:企业级应用,针对大的组织机构。
  • to customer:向消费者个人提供产品或者服务。
  • to developer:为开发者提供服务。

🌮 前端应用场景:

  • 浏览器:Chrome,Edge,Safari...
  • 服务器:Node.js,Express,koa,deno…
  • 命令行:webpack CLI,Babel CLI,Vue CLI,React CLI…
  • 桌面端:Electron,NW.js...
  • 移动端:React Native,Flutter...

3. 语言、框架、工具

🌮 语言:

  • HTML
  • CSS
  • JS
  • WebAssembly(类汇编化语言, 一般是将C/CPP/Rust代码转化为WASM),应当注意这一趋势。

🌮 框架和工具:

  • node.js
  • koa
  • react
  • vue
  • ts
  • git
  • babel
  • webpack
  • esbuild

4. 浏览器、网络、服务器

5. 前端学习路线图

<https://roadmap.sh/>

二. 关于Web标准

1. 了解Web标准组织

  1. W3C万维网联盟
  2. Ecma TC39
  3. WHATWG
  4. IETF互联网工程任务组

2. W3C与Ecma会员

  1. W3C目前在全国有457家会员(link),其中北航总部(中国区)会员47家(link)。
  2. Ecma的AM(Associate Member)会员目前有18家。

3. W3C规范制定流程

  1. 工作草案(Working Draft):工作组依据工作组章程(charter)提出一系列工作草案。公众和 W3C 会员可以提出评论和问题。工作组必须处理这些反馈。本阶段时长依多种因素而变。
  2. 最终工作草案(Last Call Working Draft):工作组已完成工作,并要求公众和 W3C 会员提交最后的评论与问题。同样,工作组必须处理这些反馈。如果出现情况,可能要回到工作草案阶段。本阶段时长通常为 3 周,但也可以更长。
  3. 候选推荐标准(Candidate Recommendation):当最终工作草案阶段结束,且问题都得到解决后,将进入候选推荐标准(Candidate Recommendation)阶段。此时可以认为该规范已经稳定,可以展开试验性实施了。工作组必须将实施中得到的反馈整合到规范中。同样,如果出现情况,需返回到工作草案阶段。根据实施进展,本阶段通常持续零到一年。
  4. 建议推荐标准(Proposed Recommendation):如无意外,规范将进入建议推荐标准(Proposed Recommendation)阶段。在此阶段,W3C 总监 (TimBemers-Lee)将正式请求 W3C 会员审阅这份建议推荐标准。本阶段时长必须不少于 4 周。
  5. 推荐标准(Recommendation):根据审阅结果,要么 W3C 总监宣布该规范成为 W3C 推荐标准(Recommendation),中间可能发生微小改动,要么返回工作草案阶段,或者彻底从 W3C 工作日程上移去。技术规范一旦成为推荐标准,它就是官方的 W3C 标准了。

4. TC39流程

  1. stage0 strawman:任何讨论、想法、改变或者还没加到提案的特性都在这个阶段。只有TC39成员可以提交。
  2. stage1 proposal:产出一个正式的提案。发现潜在的问题,例如与其他特性的关系,实现难题。提案包括详细的API描述,使用例子,以及关于相关的语义和算法。
  3. stage2 draft:提供一个初始的草案规范,与最终标准中包含的特性不会有太大差别。草案之后,原则上只接受增量修改。开始实验如何实现,实现形式包括polyfill, 实现引擎(提供草案执行本地支持),或者编译转换(例如babel)。
  4. stage3 candidate:候选阶段,获得具体实现和用户的反馈。此后,只有在实现和使用过程中出现了重大问题才会修改。规范文档必须是完整的,评审人和ECMAScript的编辑要在规范上签字。至少要在一个浏览器中实现,提供polyfill或者babel插件。
  5. stage4 finished:已经准备就绪,该特性会出现在下个版本的ECMAScript规范之中。需要通过有2个独立的实现并通过验收测试,以获取使用过程中的重要实践经验。

5. 如何参与

  1. W3C
1.  年度大会

    -   AC
    -   TPAC

2.  工作组会议

    -   每月会议
    -   各种研讨会(link)

2. ECMA

1.  年度大会

    -   GA

2.  TC39会议

   -   每1-2个月