这是我参与「第四届青训营 」笔记创作活动的第26天
1 前端开发
1.1 前端开发起源、架构、变迁
(1) Web起源
- 1989年 Tim Berners-Lee 提出 Web 构想
- “上网”:接入互联网。其中使用最多的是打开浏览器浏览网页。互联网标志协议:TCP/IP,Web的标志协议:HTTP
(2) Web架构
- 1989年,Web诞生之初,由三种技术组成:
- HTML:超文本传输语言
- HTTP:通信协议
- URL:统一资源定位符
- CSS 与JavaScript是后几年才出现的
- Web原理:用户发出从浏览器客户端请求,通过HTTP协议发送到服务器,获取相应的HTML文档,该文档通过浏览器解析最终呈现到屏幕上
(3) Web变迁
- 只读时代:1989-2004
- HTML/CSS/JavaScript
- 客户端相当于一个阅读器,不能在不刷新的情况下更新页面
- 体验时代:2005-2010
- Ajax/Web API/jQuery
- 2005年,Ajax技术可以在不刷新页面下,通过js对象在后台想服务器发送请求,然后修改DOM将内容展示在网页中,响应用户交互,动态从服务器获得数据更新页面。
- Web从简单页面,实现了向Web应用的跨越
- 敏捷时代:2010-2021
- Fetch/Node.js/Webpack
- 2007年,苹果发布iphone手机,互联网进入移动时代。用户体验得到重视,前端慢慢独立称为一个工种,得到人们的广泛认可,也因此蓬勃发展。
- 2009年,基于V8引擎的node.js使得前端可以开发编写后端,为前端规模化、敏捷化打下基础。
- 关键词:模块化、组件化、转译(transpiling)、打包(bundling)、Rreact.js、Vue.js
1.2 前端应用的领域
(1) To Be角度
- To Business 企业级应用
- To Customer 面向顾客,方面广泛
- To Developer 面向开发者
(2) 应用环境角度
- 浏览器
- 桌面浏览器:Google Chrome、Firefox、Edge、Opera、Safari
- 从内核角度来说分为3类:
- Chromium内核:Chrome、Opera和edge等
- Webkit内核:Safari
- Gecko内核:Firefox
- 从内核角度来说分为3类:
- 移动浏览器: Android、IOS
- 桌面浏览器:Google Chrome、Firefox、Edge、Opera、Safari
- 服务器
- Node.js、Express.js、下一代框架Koa.js
- 终端和跨端
- 命令行/终端工具——脚手架
- Webpack、Babel、vue、Rreac
- 跨端
- 桌面跨端:Electron、NW.js
- 移动跨端:React Native、Flutter
- 命令行/终端工具——脚手架
1.3 前端开发的语言、框架和工具
(1) 语言
- HTML、CSS、JavaScript
- WebAssembly: W3C在2019年底将其作为官方标准。类汇编,是生成的二进制指令。一般使用高级语言c\c++\rust编写再转化为汇编语言。它比JavaScript更快,并且WASM 1.0已经出现在主流浏览器中。
(2) 框架与工具
- 建议先了解框架作者,写框架的初衷,帮助理解框架应用
1.4 前端开发之浏览器、网络和服务器
(1) 浏览器——工作原理
- 推荐文章:github.com/75team/w3c/…
- 了解前端代码运行环境,需要了解浏览器的工作原理,在URL中输入再点击回车,会发生什么(学习完后写笔记补充)
(2) 网络——HTTP协议
1.5 前端学习路线图
- 推荐网站:roadmap.sh/frontend
2 Web标准
2.1 标准组织
- W3C: World Wide Web Consortium
- 官网:www.w3.org
- github: github.com/w3c
- 规范查询: www.w3.org/TR
- Ecma: Ecma International 日内瓦
- 官网:www.ecma-international.org/
- TC39: tc39.es/
- github: github.com/tc39
- Discourse: es.discourse.group/
- WHATWG: Web Hypertext Application Technology Working Group 从W3C中独立出来的 开发HTML与DOM标准
- 官网:spec.whatwg.org/
- github: github.com/whatwg
- 规范查询: whatwg.org/
- IEIF:Internet Engineering Task Force 制定互联网底层标准协议
- 官网:www.ietf.org/
- github: github.com/ietf
2.2 W3C规范制定流程
- 更多信息:www.w3.org/2020/Proces…
- 编写一个提案的流程:
- Explainer
- Find the right communit/group
- Web IDL for APIs
- Step-by-Step algorithms
- GitHub, Markdown, respec, bikeshed, etc
- Get an early review w3ctag/design-reviews
- Write web-platform-tests(WPI) tests
2.3 Ecma TC39规范制定流程
2.4 如何参加——关注会议
- W3C会议
- 年度大会
- AC:会议管理类会议 一年2次
- TPAC:一年一度全员技术大会,深入讨论未来开放Web平台技术方向;1-2周,重点关注;注册为会员即可线上参加.
- 工作组会议
- 每月会议
- 各种研讨会
- 年度大会
- Ecma会议
- 年度大会
- GA:会员投票等
- TC39
- 日常会议:每1-2月召开
- 年度大会