这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天
Web开发概述
起源、 架构、变迁
Tim Berners-Lee 《Information Management: A Proposal》1989
- 1989Web的三种技术:HTML,HTTP,URL
- web的三个时代
Web应用领域
- to Business, to Customer, to Developer
- 浏览器
- Desktop: Chrome (Edge, Opera),Safari, Firefox
- Mobile: IOS, Android
- 服务器:Node.js (deno), Express.js, koa
- 终端和跨端
- 命令行/终端(CLI):Webpack, Babel, React, Vue
- 桌面跨端:Electron, NW.js
- 移动跨端:React Native, Flutter
- 语言、框架、工具
- HTML, CSS, JavaScript, WebAssembly (WASM)
- 框架:关注作者(开发目的、初衷…)
Web开发标准
标准组织
- W3C: World Wide Web Consortium 万维网联盟
- 全球457家会员,其中北航总部(中国区)会员47家
- Ecma: Ecma International
- 5种会员 (OM, AM, SME, SPC, NFP)
- WHATWG: Web Hypertext Application Technology Working Group
- IETF: Internet Engineering Task Force
制定流程
- W3C
- Ecma TC39
W3C会议
- 年度大会
- AC (Advisory Committee)
- TPAC (Technical Plenary and Advisory Committee) 一年一度的全球技术大会
- 工作组会议:每月例会,研讨会
Ecma会议
- 年度大会:GA (General Assembly)
- TC39会议
设计模式
什么是设计模式?
- 软件设计中常见问题的解决方案模型
- 是历史经验的总结
- 与特定语言无关
设计模式的类别
- 创建型:如何创建一个对象
- 结构型:如何灵活地将对象组装成较大的结构
- 行为型:负责对象间的高效通信和职责划分
浏览器中的设计模式
- 单例模式
- 定义:全局唯一访问对象(如window)
- 应用场景:缓存、全局状态
- 发布订阅模式/观察者模式
- 定义:一种订阅机制,在订阅对象发生变化时通知订阅者
- 应用场景:业务中、系统架构解耦等(如邮件订阅、上线订阅等)
JS中的设计模式
原型模式
- 定义:复制已有对象来创建新的对象
- 应用场景:对象创建的基本对象
代理模式
- 定义:可自定义控制原对象的访问模式,允许在更新前后做额外处理
- 应用场景:监控、代理工具、前端框架实现等
迭代器模式
- 定义:在不暴露数据类型的情况下访问集合中的数据
- 应用场景:提供通用操作接口
组合模式
- 定义:多个对象组合使用,也可以作为单个对象独立使用
- 应用场景:DOM、前端组件、文件目录
设计模式并不能解决所有问题
- 总结出抽象的模式相对简单,但是将其套用到应用场景中非常困难
- 现代编程语言的多编程范式为设计模式带来更多的可能性