Web开发基本情况&标准笔记

170 阅读10分钟

Web开发基本情况&标准

基本情况

1.关于前端开发

1.1基本背景概述

起源

前端开发指的是在网页、移动应用等客户端技术方向进行开发的工作。起初,前端开发主要关注网页的内容和样式,使用 HTML、CSS 和 JavaScript 这些基本的前端技术来构建网页。随着互联网的发展,前端开发变得越来越重要,需要更多的技术和工具来实现更丰富的用户体验。

架构

在过去,前端开发主要采用的是传统的三层架构(Presentation-Business-Data),将前端作为用户界面展示层进行开发。随着技术的发展,前端开发开始采用更复杂的架构和模式,如 MVC(Model-View-Controller)、MVVM(Model-View-ViewModel)等,以更好地组织和管理前端代码。

变迁

只读时代:HTML/CSS/JavaScript

体验时代:Ajax/Web API/JQuery

敏捷时代:Fetch/Node.js/Webpack

1.2前端应用领域

  1. 网站开发:前端开发在网站开发中起着至关重要的作用。前端开发人员负责实现网站的用户界面,包括网页的布局、样式和交互效果。他们使用 HTML、CSS 和 JavaScript 技术来构建网页,并确保网站的兼容性和响应式设计。
  2. 移动应用开发:移动应用的发展促使了前端开发在移动端的应用。前端开发人员使用框架和技术,如 React Native、Flutter 或 Ionic,来开发跨平台的移动应用。他们使用类似于网站开发的技术来构建移动应用的用户界面,并与后端 API 进行交互。
  3. 数据可视化:随着大数据时代的来临,数据可视化成为了重要的需求。前端开发人员利用可视化库和工具,如 D3.js、Chart.js 或 Highcharts,将数据以直观、交互的方式呈现给用户。他们通过绘制图表、地图或其他的数据可视化方式,帮助用户更好地理解和分析数据。
  4. 游戏开发:前端开发人员也在游戏开发领域发挥着重要的作用。使用 HTML5、CSS 和 JavaScript 技术,前端开发人员可以创建简单的网页游戏或基于 Canvas 和 WebGL 的复杂的3D游戏。他们可以利用各种游戏引擎和库,如 Phaser、Pixi.js 或 Three.js,来实现游戏逻辑和图形效果。
  5. 嵌入式系统界面:前端开发人员还可以参与嵌入式系统的开发,为各种设备和硬件设计用户界面。他们使用 HTML、CSS 和 JavaScript 技术,结合框架如 Electron 或 NW.js,可以将网站应用打包成桌面应用,并在嵌入式环境中运行。

1.3前端的语言框架与工具

  1. HTML:HTML (Hypertext Markup Language)是构建网页结构的基本语言。它定义了网页的各种元素和标签,用于组织和呈现内容。
  2. CSS:CSS(Cascading Style Sheets)用于控制网页的样式和布局。通过定义样式规则和选择器,可以实现对文本、图像和其他元素的样式控制。
  3. JavaScript:JavaScript 是一种广泛采用的脚本语言,用于为网页添加交互和动态效果。它可以操作网页的 DOM(文档对象模型)结构,响应用户的事件,以及与服务器进行数据交互。
  4. Angular:Angular 是一个由 Google 开发的前端 JavaScript 框架。它通过使用 TypeScript,提供了一套强大的工具和特性,用于构建复杂的单页应用(SPA)。
  5. React:React 是由 Facebook 开发的一个用于构建用户界面的 JavaScript 库。它采用组件化的开发模式,使得构建可维护和高效的 UI。
  6. Vue.js:Vue.js 是一个轻量级的前端 JavaScript 框架,也用于构建用户界面。它与 React 类似,采用组件化的开发方式,但具有更简单的 API 和学习曲线。
  7. jQuery:jQuery 是一个流行的 JavaScript 库,提供了简化操作 DOM、处理事件、执行动画等功能的函数和方法。它简化了 JavaScript 编程,使开发人员更容易操作和控制网页元素。
  8. Webpack:Webpack 是一个模块打包工具,用于将多个 JavaScript、CSS、图像等文件打包成一个或多个静态资源文件。它提供了许多功能,如代码分割、压缩、热模块替换等,以增加开发效率和优化性能。
  9. Babel:Babel 是一个 JavaScript 编译器,主要用于将新版本的 JavaScript 代码转换为向后兼容的旧版本。它可以将最新的 ECMAScript 代码转换为浏览器可以理解的版本,以确保代码在各种环境中的兼容性。
  10. Git:Git 是一个分布式版本控制系统,广泛用于项目代码的版本管理和协作开发。前端开发人员可以使用 Git 来跟踪代码的变更、管理分支、处理合并冲突等。
  11. NPM:NPM(Node Package Manager)是 Node.js 的包管理工具,也是前端开发中常用的工具之一。开发人员可以使用 NPM 来安装、管理和发布 JavaScript 包,以便在项目中引入和使用。
  12. Gulp:Gulp 是一个基于流的构建工具,用于自动化任务。通过编写简洁的代码,开发人员可以定义各种任务,如文件压缩、编译、拷贝和测试等,以提高开发效率。
  13. Sass/Less:Sass 和 Less 是两种流行的 CSS 预处理器,它们提供了更强大和灵活的 CSS 编写方式。开发人员可以使用变量、嵌套、函数等功能来简化和优化 CSS 的编写过程,并通过编译将其转换为普通的 CSS 文件。

1.4学习路线

  1. HTML 和 CSS:学习 HTML 和 CSS 是前端开发的基础。掌握 HTML 的结构和标签,学习 CSS 的选择器、样式和布局等基本概念。
  2. JavaScript:深入学习 JavaScript 语言的核心概念,包括变量、数据类型、函数、条件语句、循环等。了解 JavaScript 的面向对象编程和函数式编程等高级概念。
  3. DOM 和事件:学习使用 JavaScript 操作网页的 Document Object Model(DOM),理解 DOM 的树状结构和节点操作。掌握事件处理机制,以及如何响应用户的交互行为。
  4. 前端框架:学习流行的前端框架,如 React、Vue.js 或 Angular。掌握框架的基本概念和使用方法,以及组件化开发的理念。
  5. 数据交互和 API:学习通过 AJAX 或 Fetch API 等技术与后端服务器进行数据交互。了解 RESTful API 的设计原则,学习如何发送请求、处理响应和处理异步操作。
  6. 响应式设计:学习如何使用响应式设计来适应不同设备和屏幕尺寸。掌握媒体查询、flexbox 和 grid 等技术,以实现网页在不同设备上的适配和优化。
  7. 浏览器开发工具:掌握现代浏览器提供的开发工具,如 Chrome 开发者工具。学会使用这些工具来调试代码、分析性能和进行页面优化。
  8. 构建工具和模块化:学习使用构建工具如 Webpack 或 Parcel 来打包、压缩和优化前端资源。掌握模块化开发的概念,使用工具如 Babel 来处理 ES6+ 语法以提高浏览器兼容性。
  9. 安全性和性能优化:学习前端安全性的基本知识,了解常见的安全漏洞和防御措施。学习性能优化技巧,如减少网络请求、代码压缩和懒加载等,以提高网页加载速度和用户体验

Web标准

了解Web标准组织

W3C(World Wide Web Consortium):W3C 是一个国际标准化组织,致力于推动并制定 Web 技术的标准。它由互联网领域的相关公司、组织和个人组成,通过合作和共识来推动 Web 发展。W3C 负责制定HTML、CSS、XML 等技术的标准,以及相关的规范和指南,以确保不同浏览器和设备间的互操作性和一致性。

Ecma(Ecma International):Ecma 是一个国际标准化组织,负责制定技术标准和规范。在 Web 开发中,Ecma 通过制定 JavaScript 的标准(ECMAScript)来确保不同浏览器对 JavaScript 解释和执行的一致性。

WHATWG(Web Hypertext Application Technology Working Group):WHATWG 是一个开放的 Web 标准组织,致力于推动和发展 Web 技术。它成立于 2004 年,主要专注于 HTML 和相关技术的发展。WHATWG 参与制定了 HTML5 的规范,通过持续的讨论和协作来推动 Web 平台的标准化

IETF(Internet Engineering Task Force):IETF 是一个以推动互联网标准化为目标的组织。它由工程师、科学家和研究人员组成,致力于制定互联网协议和相关标准。IETF 负责制定一系列的互联网协议,如 HTTP、SMTP、DNS 等,以确保 Internet 的互操作性和可扩展性。

W3C与Ecma会员

W3C目前在全球有457家会员,其中北航总部会员47家。

Ecma的AM会员目前有18家,中国公司有字节跳动、360、阿里、华为、腾讯等五家

W3C流程

  1. 工作组成立:当一个新的标准项目被确定后,W3C 将会成立一个专门的工作组来负责制定和开发该标准。工作组通常由来自不同组织和领域的专家组成。
  2. 草案阶段(Draft Stage):工作组开始制定技术规范的草案,并在内部进行讨论和审查。一旦草案的初稿完成,它将被提交给 W3C,开始进入公开讨论的阶段。
  3. 候选推荐阶段(Candidate Recommendation Stage):在这个阶段,草案将成为候选推荐,公开向社区、行业和用户寻求评论和建议。工作组会与相关的利益相关者进行合作,收集和考虑各方的反馈意见。
  4. 提议推荐阶段(Proposed Recommendation Stage):在候选推荐阶段收集和解决了大部分问题后,草案将转变为提议推荐。这一阶段的标准将被视为准备好通过最终的技术评审。
  5. 最终推荐阶段(Final Recommendation Stage):在进行最终技术评审后,如果被评审委员会认可,标准将提升为最终推荐,并被广泛推广。最终推荐的标准将成为正式的 W3C 标准,被广泛接受和采纳。

TC39流程

  1. 提案(Proposal):一个新的 JavaScript 功能提案由 TC39 的成员或贡献者提交。提案需要包含对功能的详细描述、示例代码、语法规范和语义规范等信息。
  2. 阶段 0 - 孵化(Stage 0 - Strawman):在这个阶段,提案还很初步,TC39 成员会讨论和提出反馈意见,以确保提案值得进一步研究和探索。
  3. 阶段 1 - 候选 (Stage 1 - Proposal):在这个阶段,提案经过初步讨论和调整后,被认为有潜力成为标准的一部分。在这个阶段,提案需要提供更详细和完善的规范文档,并解答一些在评审过程中提出的问题。
  4. 阶段 2 - 初始草案 (Stage 2 - Draft):在这个阶段,提案已经过初步的设计和实现,并经过 TC39 成员的更深入审议和讨论。提案需要提供准确的语法和语义规范,并且在实现中有初步的测试和验证。
  5. 阶段 3 - 候选草案 (Stage 3 - Candidate):在这个阶段,提案已经达到了可投入实际使用的状态,并且有多个独立的实现进行了测试和验证。在这个阶段,提案还需要遵循额外的性能、稳定性和安全性等方面的考虑。
  6. 阶段 4 - 正式标准(Stage 4 - Finished):在这个阶段,提案已经经过完整的审议、实现和测试,并由 TC39 成员投票通过。提案成为正式的 JavaScript 标准的一部分,并可以被浏览器和 JavaScript 引擎开发者实现。