这是我参与「第四届青训营 」笔记创作活动的的第5天
Web标准与前端开发
前端的三个时代
只读时代
1989-2004
HTML/CSS/JavaScript
- 单向发布
- 静态只读
- 链接跳转
- 刷新页面
- 表格对齐元素
- CGI
体验时代
2005-2010
Ajax/Web api/Jquery
- 动态交互
- 社交媒体
- 用户生产内容(UGC)
- 单页应用(SPA)
- Jquery
- YUI
敏捷时代
2010-2021
Fetch/Node.js/Webpack
- 模块化
- 组件化
- 转译
- 打包
- React.js
- Vue.js
前端应用的领域之浏览器
关于前端开发的应用领域,接下来再从运营环境角度看一看。 首先,浏览器,包括桌面浏览器和移动浏览器,以及移动App中的WebView,都属于浏览器直接渲染Web应用的范畴; 桌面浏览器包括Chrome、Edge、Firefox、Opera、Safari这五个主流浏览器,事实上随着谷歌Chromium开源项目的不断攻城掠地,也随着开源运动的不断属性,浏览器的多样性正在减少。因为Edge和Opera都已经选择站到了谷歌的阵营,所以事实上只有Chrome、Safari和Firefox三个浏览器。目前,Chrome浏览器的市场份x0008额达到67.55%,具有事实上的垄断地位。 移动浏览器主要是Chrome、Safari,还有国内小程序提供商定制的一些浏览器引擎。换句话说,前端不仅要开发在浏览器和WebView中运行的网页,也要开发在小程序运行时上跑的小程序。
前端应用的领域之服务器
其次,服务器,服务端的开发目前主要还是依托于Node.js这个成熟的JS运行时,npm包管理平台已经成为世界最大的程序包管理平台,2019年6月超过100万。 当然,还有Express、Koa等Web开发框架的生态。 最后,大家也要关注Deno这个新的JavaScript安全运行时。Deno号称是安全运行时。而且,Deno也是Node.js之父Ryan Dahl一手打造的。在发布Deno的时候,Ryan Dahl曾经痛陈“Node.js十大遗憾”。
前端应用的领域之终端和跨端
第三,终端和跨端,这个应用领域通常是开发者工具,比如命令行工具里的Webpack、Babel、React、Vue都有CLI(Command-Line Interface)版,而桌面跨端主要有Electron和NW.js,目前世界上最流行的编码环境VSCode就是基于Electron的一个Web应用。
浏览器、网络、服务器
最后,我们学习前端开发,一定离不开前端代码运行的环境。那就是浏览器、网络和服务器。 这里推荐一篇长文“深入理解现代浏览器”,这篇文章以Chrome作为现代浏览器的示例,图文并茂在讲解了浏览器的工作原理,解释了在地址栏输入URL之后,回车,都会发生什么。
关于网络和服务器,也需要理解基本概念和原理。 这里有MDN的一篇文章,是HTTP的简介,涉及HTTP请求和响应的过程及概念。 关于Web服务器的能力,包括本地文件系统和文件操作、网络和管道API、套接口、子进程等方面。
关于Web标准
W3C
官网:www.w3.org
Github:github.com/w3c
规范查询:www.w3.org/TR
Ecma TC39
TC39:tc39.es
Github:github.com/tc39
Discourse:es.discourse.group182021
WHATWG
官网:whatwg.org/
Github:github.com/whatwg
规范查询:spec.whatwg.org/
IETF
Github:github.com/ietf192021
\