1 前端开发
1.1 起源
前端开发的背景是计算机诞生于上世纪六十年代,标志的通信协议是TCP/IP。随着互联网的发展,人们开始需要通过浏览器访问和使用网页,这就催生了前端开发的需求。
1.2 架构
前端开发涉及三大核心技术:HTML(超文本标记语言),CSS(层叠样式表)和JavaScript。HTML用于创建网页结构,CSS用于设计网页的样式,JavaScript用于实现网页的交互和动态效果。
1.3 变迁
从1989年到2004年,前端开发处于只读时代,网页主要是静态的,交互效果有限。
从2005年到2010年,前端开发进入体验时代,Ajax技术兴起,使得网页能够实现异步加载和动态更新。
从2011年到2021年,前端开发进入敏捷时代,出现了众多新的前端框架和工具,使得开发更加高效和灵活。
2 前端应用的领域
2.1 ToB,ToC,ToD
前端应用可以分为面向企业(ToB)、面向个人用户(ToC)和面向设备(ToD)三个领域。
- ToB的前端应用主要是企业内部或者商业合作伙伴之间的系统,
- ToC的前端应用主要是网上购物、社交媒体等,
- ToD的前端应用主要是智能设备上的应用程序。
2.2 浏览器
前端应用最常见的载体是浏览器,包括移动端的浏览器和电脑端的浏览器。移动端的浏览器开发需要考虑不同设备的适配和响应式布局,而电脑端的浏览器开发则注重用户界面和交互设计。
2.3 服务器
前端开发也涉及与服务器的交互,常用的服务器端开发框架包括Node.js、Express.js和Koa等,它们使得前后端的数据通信更加便捷和高效。
2.4 终端和跨端
终端指的是各种设备,如PC、手机、平板等。前端开发需要考虑不同终端的适配和响应式布局。跨端开发则是指在多个终端上运行的开发过程,可以使用跨平台框架如React Native、Flutter来进行开发。
3 语言、框架、工具
3.1 语言
前端开发的核心语言包括JavaScript、CSS和HTML。JavaScript是一种脚本语言,用于实现网页的交互和动态效果;CSS用于设计网页的样式;HTML用于创建网页的结构。
3.2 框架
前端开发有许多优秀的框架可供选择,如React、Vue和Angular等。这些框架提供了更高级的抽象和便捷的开发方式,能够提升开发效率和代码质量。
3.3 工具
前端开发中常用的工具包括代码编辑器(如Visual Studio Code)、版本控制工具(如Git)、构建工具(如Webpack)和调试工具(如Chrome开发者工具)。这些工具可以帮助开发者提高工作效率并改善代码质量。
4 前端学习路线
-
HTML和CSS基础:学习HTML的标签和结构,以及CSS的样式和布局。
-
JavaScript基础:了解JavaScript的语法、变量、函数、DOM操作等。
-
版本控制:学习Git,掌握代码版本控制、分支管理、合并等操作。
-
基本终端使用:熟悉命令行界面,掌握常用的文件操作、目录导航命令等。
-
数据结构和算法:理解常见数据结构如数组、链表、栈、队列,掌握常用算法的实现和应用。
-
GitHub:熟悉GitHub的使用,了解开源项目、协作开发、代码托管等。
-
许可证:理解软件许可证的种类和相关法律知识,了解不同许可证对代码使用的限制和要求。
-
语义版本:了解语义化版本控制规范,能够正确管理和发布代码版本。
-
SSH:学习SSH协议,掌握远程登录、文件传输等安全网络协议的使用。
-
HTTP/HTTPS和API:了解HTTP和HTTPS协议,掌握前后端数据交互的基本原理和请求方式,学习使用API进行数据交互和开发。
-
设计模式:了解常见的设计模式,如单例模式、工厂模式、观察者模式等,掌握代码架构和重用的优化思路。
-
字符编码:了解字符编码的概念和常见编码方式,如UTF-8、GBK等,避免出现乱码和字符转换问题。
5 web标准
5.1 W3C
W3C(World Wide Web Consortium)是一个制定Web标准的组织,负责制定HTML、CSS、XML等相关技术的规范。
5.2 ECMA
ECMA(European Computer Manufacturers Association)是一个制定JavaScript语言标准的组织,负责制定JavaScript的规范,使其成为一种通用的脚本语言。
5.3 WHATWG
WHATWG(Web Hypertext Application Technology Working Group)是一个由苹果、谷歌和Mozilla等公司组成的组织,致力于推动Web技术的发展,尤其是HTML和相关技术标准的制定。
5.4 IETF
IETF(Internet Engineering Task Force)是一个全球性的组织,负责制定互联网相关的技术标准和协议,例如HTTP协议就是由IETF制定的。