# 关于前端开发

# 起源、架构、变迁

"Suppose all the information stored on computers everywhere were linked. Suppose l could program my computer to create a space in which everything could be linked to everything."

——Tim Berners-Lee, inventor of the World Wide Web

“设想一下存储在计算机上的所有信息都是互相链接的。再设想一下我可以给我的电脑编程,并创建一个空间,让所有东西都可以互相链接。” 有点儿万物互联的感觉了

Web 于 1989 年初诞生,起初的 Web 仅由三种技术构成

  • HTML
  • HTTP
  • URL

而 CSS 和 JavaScript 是几年之后才出现的。

Web 技术的变迁:

image.png

  • 只读时代,客户端相当于一个静态的页面,想更新页面只能发送网络请求,无法在不刷新的情况下更新页面
  • 体验时代,客户端实现了静态向动态的跨越,拥有了动态交互能力,在后台就可以通过 js 向服务器发送请求,通过修改 DOM 将更新的内容展示在网页中。当时的谷歌地图等都使用了这种技术。
  • 敏捷时代,即现在的主流,用户的体验越来越受到重视,前端受到了重视,前端开发开始变得模块化、组件化,这个时代出现了 React、Vue 等知名框架,也出现了 Webpack 这类的打包工具。

# 前端应用的领域

To Business 企业

字节的火山引擎、公有云等等,表现为一个为企业提供许多种类的服务的网站,规模庞大也很赚钱的一个领域。

To Customer 客户

最早期的网页就是一个信息分享的作用,现在的直接触达客户的网站,包括电商平台、在线教育、手机端的 H5 等等,都是 ToC 的应用。

To Develop 开发者

提高 Web 开发效率的工具,代码编辑器等等。

浏览器

桌面浏览器:Chrome、FireFox、Edge 等

移动浏览器:安卓、IOS

image.png

终端和跨端

命令行 / 终端

  • Webpack CLI
  • Babel CLI
  • Vue CLI
  • React CLI

桌面跨端

  • Electron
  • NW.js

移动跨端

  • React Native
  • Flutter

# 语言、框架、工具

  • 基本语言,这个图蚌埠住了 这个图简洁明了,除了前端三大件之外,还有 WebAssembly

1.gif

  • 框架

image.png

# 浏览器、网络、服务器

浏览器 推荐文章:

  • 原文:共 4 个章节 Inside look at modern web browser (part 1) | Web | Google Developers
  • 译文:深入理解现代浏览器

image.png

网络

An overview of HTTP - HTTP | MDN (mozilla.org)

image.png

# 学习路线图

Frontend Developer Roadmap: Learn to become a modern frontend developer

VZ~FCE_%F6S1B88TIKL{F35.png)

# 关于 Web 标准

  • W3C: World Wide Web Consortium (通常意义上的 Web 标准)

    • 官网:https://www.w3.org/
    • Github:https://github.com/w3c
    • 规范查询:All Standards and Drafts - W3C
  • Ecma: Ecma International(ECMAScript 标准化规范)

    • Ecma TC39 官网:Home - Ecma International (ecma-international.org)
    • TC39:TC39 – Specifying JavaScript.
    • Github:Ecma TC39 (github.com)
    • Discourse(讨论组):TC39 - Specifying JavaScript (es.discourse.group)
  • WHATWG: Web Hypertext Application Technology Working Group

    • 官网:Web Hypertext Application Technology Working Group (WHATWG)
    • Github:WHATWG (github.com)
    • 规范查询:Standards — WHATWG
  • IETF: Internet Engineering Task Force

    • 官网:IETF | Internet Engineering Task Force
    • Github:Internet Engineering Task Force (IETF) (github.com)

# W3C 及 Ecma 会员

image.png

# W3C 规范制定流程

  • The W3C Recommendation Track Process

image.png

  • Explainer demo
  • Find the right community/group
  • Web IDL for APIs link
  • Step-by-step algorithms
  • Github,Markdown, respec,bikeshed,etc.
  • Get an early review w3ctag/design-reviews
  • Write web-platform-tests (WPT) testsl.

Ecma TC39 规范制定流程

image.png

  • 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
    • TPAC(Technical Plenary and Advisory Committee)
  • 工作组会议

    • 每月会议
    • 各种研讨会

# 总结感想

作为一名前端工程师,掌握 web 标准、了解浏览器和网络、及时获取技术的更新都是很重要的。这节课讲的学习路线图为前端的学习有一个很好的梳理,而推荐的文章更是让我对浏览器有了一个更深刻的了解,好评!

本文引用的内容大部分来自李松峰老师的课以及 MDN。