这是我参加【第五届青训营】笔记创作活动的第15天
今天跟着李松峰老师了解了web标准与前端开发的相关知识,并整理了笔记。
01-关于前端开发
起源、架构、变迁
起源是Tim Berners-Lee提出的一个类似万物互联的一个建议,提出web的构想。 计算机网络诞生于上个世纪的60年代,标志性通信协议是TCP/IP。
上网指接入Internet,它是世界上相互连接的计算机构成的网络。
1989年诞生时,web由三种技术构成:html、http、url。
css和javascript是几年之后才出现的。
经历了三个时代
只读时代1989-2004
HTML/CSS/JavaScript
单向发布;静态只读;链接跳转;刷新页面;表格对齐元素;CGI
体验时代2005-2010
Ajax/Web API/jQuery
动态交互;社交媒体;用户生成内容(UGC);单页应用(SPA);jQuery;YUI
敏捷时代2010-2021
Fetch/Node.js/Webpack
模块化;组件化;转译(transpiling);打包(bundling);React.js;Vue.js
前端应用的领域
To Business———-企业应用
To Customer———-面向终端的客户
To De ve loper———-开发者
浏览器
桌面浏览器包括Chrome、Edge、Firefox、Opera、Safari这五个主流浏览器,事实上随着谷歌Chromium开源项目的不断攻城掠地,也随着开源运动的不断属性,浏览器的多样性正在减少。因为Edge和Opera都已经选择站到了谷歌的阵营,所以事实上只有Chrome、Safari和Firefox三个浏览器。目前,Chrome浏览器的市场份额达到67.55%,具有事实上的垄断地位。
移动浏览器主要是Chrome、Safari,还有国内小程序提供商定制的一些浏览器引擎。换句话说,前端不仅要开发在浏览器和WebView中运行的网页,也要开发在小程序运行时上跑的小程序。
服务器
服务器的开发目前主要还是依托于Node.js,目前包括npm包管理平台已经成为世界最大的程序包管理平台,到目前为止已经超过130万。还有Express、Koa等Web开发框架。新的服务开发框架Deno也需要关注。
终端和跨端
这个应用领域通常是开发者工具,比如命令行工具里的Webpack、Babel、React、Vue都有CLl (Command-Line Interface)版,而桌面跨端主要有Electron和NW.js,移动跨端有React Native,Flutter等。目前世界上最流行的编码环境VSCode就是基于Electron的一个Web应用。
语言、框架、工具
在web之初只有html这一种语言能够构建网页结构,后来出现css和javascript,构成了浏览器运行的三门主要语言,2019出现webassembly,第四种语言,是一种低级的类似汇编的语言,可以与javascript进行互操作、共享内存,使得浏览器的运行速度达到接近原生的速度进行运行。
相关框架
了解框架时可以先了解框架的作者,更好地理解框架的应用和作用。
推荐文章:深入理解现代浏览器、An overview of HTTP
前端学习路线图
推荐网站: roadmap.sh,点开之后选择Fronend
02-关于web标准
了解web标准组织
W3C与Ecma会员
- W3C目前在全球有444家会员(link),其中北航总部(中国区)会员46家(link)
- Ecma的AM(Associate Member)会员目前有18家,中国公司有字节跳动、360、阿里、华为、腾讯等5家(link)中国除有5家AM会员,还有一家SPC (Small Private Company,小型私有公司)会员Sujitech。另外,大家可以关注一家西班牙的公司lgalia。
W3C流程
我们看一下W3C规范的生命周期,借以了解W3C规范的制定流程。
- WD: Working Draft,即工作草案
- -CR: Candiate Recommendation,即候选推荐
- -PR: Proposed Recommendation,即提议推荐
- REC: Recommendation,即推荐标准
- 推荐标准就是W3C的标准的最终形态,不是强制性标准。
一个规范从草案到正式发布,通常都涉及以下几个方面:
- Explainer:就是建议说明文档,比如要标准化某个领域的API,要先写一个建议文档,Slide上有个链接,里面包含相关示例:w3ctag.github.io/explainers;
- Find the right community/group:找到合适的社区或小组,把建议文档提交到社区或小组里充分讨论;-Web IDL for APls: IDL (Interface Description Language,接口描述语言),用于描述API的一种标准方式:heycam.github.io/webidl/ ;
- Step-by-step algorithms:分步算法,就是要把算法步骤描述清楚;- GitHub, Markdown, respec, bikeshed, etc:这些都是工具;
- -Get an early review w3ctag/design-review:事先请TAG(Technical Architecture Group,技术架构组)进行设计评审;- Write web-platform-tests (WPT) tests:编写WPT测试;
TC39流程
Ecma TC39规范制定流程:
2.4 Ecma TC39规范制定流程 负责制定ECMAScript规范的是TC39,TC是Technial Committee,技术委员会的意思。
- Stage 0: strawman,稻草人,以任何形式提交的想法
- Stage 1: proposal,提案,特性的正式建议
- Stage 2: draft,草案,具有语法和语义的描述
- Stage 3: candidate,候选,规范文本完备,有了两个实现
- Stage 4: finished,完成,可以成为标准,通过单元测试
如何参与———关注会议
W3C会议
年度大会
AC (Advisory Committee)
TPAC (Technical Plenary and Advisory Committee)
工作组会议
每月会议
各种研讨会link
W3C会议介绍
W3C Technical Plenary / Advisory Committee Meetings Week(简称TPAC)是w3C一年一度的全球技术大会,汇集W3C各工作小组成员(工作组、兴趣组、社区组等)、咨询委员会(AB)、技术架构组(TAG)、会员单位代表(AC)、公众特邀专家以及全球社区成员,通过为期1-2周的集中互动交流,深入探讨未来开放Web平台技术方向。
Eema会议
年度大会
GA(General Assembly)
TC39会议
每1-2个月