现代 Web 开发基础

简介: 现代 Web 开发基础

原文链接: github.com

Copyright © 2017 王下邀月熊

现代 Web 开发基础是笔者对于 HTML、CSS、DOM 等 Web 开发中涉及的基础知识与理念的总结介绍。


前言

这是一个最好的时代,也是最坏的时代,我们亲身经历着激动人心的变革,也往往会陷入选择的迷茫。随着浏览器版本的革新与硬件性能的提升,Web 前端开发进入了高歌猛进,日新月异的时代,无数的前端开发框架、技术体系争妍斗艳,让开发者们陷入困惑,乃至于无所适从。特别是随着现代 Web 前端框架(Angular、React、Vue.js)的出现,JavaScript、CSS、HTML 等语言特性的提升,工程化、跨平台、大前端等理论概念的提出,Web 前端开发的技术栈、社区也是不断丰富完善。

任何一个编程生态都会经历三个阶段,首先是原始时期,由于需要在语言与基础的 API 上进行扩充,这个阶段会催生大量的辅助工具。第二个阶段,随着做的东西的复杂化,需要更多的组织,会引入大量的设计模式啊,架构模式的概念,这个阶段会催生大量的框架。第三个阶段,随着需求的进一步复杂与团队的扩充,就进入了工程化的阶段,各类分层 MVC,MVP,MVVM 之类,可视化开发,自动化测试,团队协同系统;这个阶段会出现大量的小而美的库。

Web 前端开发可以追溯于 1991 年蒂姆·伯纳斯-李公开提及 HTML 描述,而后 1999 年 W3C 发布 HTML4 标准,这个阶段主要是 B/S 架构,没有所谓的前端开发概念,网页只不过是后端工程师的顺手之作,服务端渲染是主要的数据传递方式。接下来的几年间随着互联网的发展与 REST 等架构标准的提出,前后端分离与富客户端的概念日渐为人认同,我们需要在语言与基础的 API 上进行扩充,这个阶段出现了以 jQuery 为代表的一系列前端辅助工具。

2009 年以来,智能手机开发普及,移动端大浪潮势不可挡,SPA 单页应用的设计理念也大行其道,相关联的前端模块化、组件化、响应式开发、混合式开发等等技术需求甚为迫切。这个阶段催生了 Angular 1、Ionic 等一系列优秀的框架以及 AMD、CMD、UMD 与RequireJS、SeaJS 等模块标准与加载工具,前端工程师也成为了专门的开发领域,拥有独立于后端的技术体系与架构模式。 而近两年间随着 Web 应用复杂度的提升、团队人员的扩充、用户对于页面交互友好与性能优化的需求,我们需要更加优秀灵活的开发框架来协助我们更好的完成前端开发。这个阶段涌现出了很多关注点相对集中、设计理念更为优秀的框架,譬如 React、Vue.js、Angular 2 等组件框架允许我们以声明式编程来替代以 DOM 操作为核心的命令式编程,加快了组件的开发速度,并且增强了组件的可复用性与可组合性。而遵循函数式编程的 Redux 与借鉴了响应式编程理念的MobX都是非常不错的状态管理辅助框架,辅助开发者将业务逻辑与视图渲染剥离,更为合理地划分项目结构,更好地贯彻单一职责原则与提升代码的可维护性。在项目构建工具上,以 Grunt、Gulp 为代表的任务运行管理与以 Webpack、Rollup、JSPM 为代表的项目打包工具各领风骚,帮助开发者更好的搭建前端构建流程,自动化地进行预处理、异步加载、Polyfill、压缩等操作。


参考

版权

笔者所有文章遵循 知识共享 署名-非商业性使用-禁止演绎 4.0 国际许可协议,欢迎转载,尊重版权。如果觉得本系列对你有所帮助,欢迎给我家布丁买点狗粮(支付宝扫码)~


目录


目录
相关文章
|
8月前
|
存储 安全 数据库
python Web开发基础
python Web开发基础
88 2
|
9月前
|
XML JSON 前端开发
Flask | Web开发基础提要
Flask | Web开发基础提要
|
10月前
|
Java 应用服务中间件
JavaWeb第五章课后题 Web开发基础
JavaWeb第五章课后题 Web开发基础
59 0
|
11月前
|
存储 PHP
【web 开发基础】PHP 变量的作用范围 (29)
变量的作用范围也就是他的生效范围。大部分的PHP变量只有一个单独的使用范围,也包含了include和require引入的文件。当一个变量执行赋值的动作后,会随着声明区域的位置差异而有不同的使用范围。大致上说,变量会依据声明的位置分为局部变量和全局变量两种。
65 1
|
11月前
|
PHP
【web 开发基础】PHP 的函数工作原理 (28)
仅当函数被调用后,函数中的语句才会被执行,目的是根据需求完成一些特定的任务。而函数执行完毕后,控制权将返回到调用函数的地方。也就是当代码运行到函数调用的时候,程序的执行就会进入被调用的函数中,执行被调用函数中的代码语句,函数就能够以返回值的方式将信息返回给程序。通过在程序中使用函数,可以进行结构化编程。在结构化编程中,各个任务是由独立的程序代码段完成的。而函数正是实现“独立程序代码段”最理想的方式,所以函数和结构化编程的关系非常的紧密。结构化编程不仅在PHP中很重要,在其他的编程语言中一样占有重要地位,结构化编程之所以卓越且重要
60 0
|
11月前
|
PHP
【web 开发基础】PHP 自定义函数之函数的返回值-PHP 快速入门 (27)
在定义函数时,函数名后面括号中的参数列表是用户在调用函数时用来将数据传递到函数内部的接口,而函数的返回值则将函数执行后的结果返回给调用者。如果函数没有返回值,就只能算一个执行过程。只依靠函数做一些事情还不够,有时更需要在程序脚本中使用函数执行后的结果。由于变量的作用域的差异,调用函数的脚本程序不能直接使用函数体里面的信息,但可以通过关键字return向调用者传递数据。return语句在函数体中使用时,有以下两个作用: 1. return语句可以向函数调用者返回在函数体中任意确定的值。 2. 将程序控制权返回到调用者的作用域,即退出函数。在函数体中如果执行了return语句,它后面的语句就不会被
74 0
|
11月前
|
PHP
【web 开发基础】通过模拟地铁售票系统介绍PHP 自定义函数之函数的参数-PHP 快速入门 (26)
参数列表是由0个,一个或多个参数组成的。每个参数是一个表达式,用逗号分隔。对于有参函数,在PHP脚本程序中和被调用函数之间有数据传递关系。定义函数时,函数名后面括号内的表达式称为形式参数(简称“形参”),被调用函数名后面括号中的表达式称为实际参数(简称:实参),实参和形参需要按顺序对应传递数据。如果函数没有参数列表,则函数执行的任务就是固定的,用户在调用函数时不能改变函数内部的一些执行行为。例如:前面介绍的九九乘法表multiplicationTable()函数就是没有参数列表函数,每次调用multiplicationTable()函数时都会输出固定的格式,用户连最基本的输出行数都不能改变。
63 0
|
11月前
|
人工智能 机器人 PHP
【web 开发基础】PHP 自定义函数之函数的调用 -PHP 快速入门 (25)
从上一篇文章《【web 开发基础】PHP 自定义函数之函数声明 -PHP 快速入门 (24)》中我们了解到函数是由一些语句组织在一起的一种形式,定义函数是为了将程序按功能划分,方便程序的使用、管理以及维护等等。函数确实给我们的开发带来了很多便利,那函数写好之后,我们该如何调用呢?比如,我们现在定义了一个与机器人相关的函数,例如:对话,行走,搬运。。。等等。就像现在的一些人工智能音箱,我们呼唤他的时候,它能够回应我,给我反馈,我呼唤它,相当于我在调用对话这个函数,我呼唤的内容就是传入的参数,智能机器人的反馈就相当于函数中的返回值。我们接着继续看看在PHP中,函数具体该如何调用?
157 1
|
11月前
|
PHP
【web 开发基础】PHP 自定义函数之函数声明 -PHP 快速入门 (24)
函数就是由一定的功能的一些语句组织在一起的一种形式,定义函数的目的就是将程序按功能分块,方便程序的使用、管理、阅读和调试。函数有两种,一种是别人写好的或是系统内部提供的函数,即是内置函数,你只要知道这个函数是干什么的,自己会用就可以,不用管里面究竟是怎么实现的。另一种函数就是自定函数,顾名思义就是需要我们根据自己的需求自己实现的函数。函数的概念比较抽象,会有一些读者难以理解
90 0
|
11月前
|
Java 程序员 PHP
【web 开发基础】PHP 中的goto语句的使用 -PHP 快速入门 (23)
在所有的开发语言中不是都能使用goto语句,因为对goto的应用一直有争议。很多编程goto也只是作为保留关键字,比如java。支持goto的人认为goto语句使用起来比较灵活,而且有些情形能提高程序的效率。如果完全删去goto语句,有些情形反而会使程序变得过于复杂,增加一些不必要的计算量。持反对意见的人认为,goto语句是程序的静态结构和动态结构不一致,从而使程序难以理解、难以查错。去掉goto语句后,可直接从从程序上反映程序运行的过程,程序结构清晰、便于理解、方便查错。其实错误是程序员自己造成的,只是从实际的理解和处理上的不便造成,不是goto的过错。PHP从5.3以后的版本增加了goto
116 0