web开发简介
- web开发大部分基于应用层协议(http,https),几乎不关心底层实现问题,思考问题多处于架构高度(服务器和服务高度)。
- 移动端发展迅速,开发趋于快速化,迭代式开发。产品基本都是先上线第一版简单功能,再迭代开发剩余功能。
- web开发,分为前后两端。web前端的主要表现形式为网页,web后端的主要表现形式为网站开发。也就是说,通常意义上的web开发,就是网站开发。
- 移动端开发,尤其是H5的概念近几年比较火爆。但是H5的火爆有一部分是概念炒作,实际上H5仍然归类为web前端开发,单独拎出来的意义不大。
- 但是现在的web开发,由于业务复杂性提高,技术手段的成熟,可以完全进行分离。前端和后端可以仅仅约定好通信格式,而不用关心对方是怎么编写代码的。
web前端
-
前端基本技能:
技能名 | 用处 |
---|---|
html | 网页的基本组成语言,浏览器靠这个来把文本转换成网页 |
css | 网页的样式描述,用来美化网页 |
javascript | 前端真正意义上的编程语言,可以用来做很多很多事情。动态变化网页,收发请求,甚至可以写服务器和桌面软件。js的潜力正在被一步一步发掘。 |
-
前端扩展技能:
技能名 | 用处 |
---|---|
photoshop | 把设计人员的设计图转换为网页,进行简单的图片编辑和切图(切图就是把设计稿上的图片裁剪下来,放到网页中) |
前端样式 开发框架 |
人们把一系列样式综合起来,方便使用(一般还会包含部分js效果)。熟练使用这些框架,可以快速的进行样式编辑,并且有利于页面风格的统一。常见的有boostrap 框架,Weui ,jQuery UI 等 |
前端工具 开发包 |
Javascript可以实现dom操作,收发请求,操作数据等,但是编写代码时较为繁琐。这时候可以对方法进行封装,在使用时可以直接使用包内封装的方法,例如选择结点,ajax请求,处理声音等。 常见的js工具开发包包括: jQuery ,zepto.js ,'Socket.js',sound.js 等 |
前端数据 开发框架 |
涉及到数据流 MVC三层架构 这些概念,使用的是 MVVM(Model模型层和View视图层的双向绑定,双方相互影响) 设计理念,实现了数据和dom结点之间的数据传输,避免了原生javascript在数据处理上的短板。成熟的框架有: Vue.js ,Angular.js ,React.js 等 |
... | 更多 |
web后端(以PHP开发为例)
-
后端基本技能:
技能名 | 用处 |
---|---|
php | 脚本编程语言,实现用户访问逻辑控制,访问数据库等。是一个网站的基础。 |
关系型数据库(Mysql) | 保存用户数据,可以按照表 这一概念进行数据格式化,数据保存于硬盘,安全性较高。同时支持事务,视图和锁等安全性较高的 元,适合数据的长时间保存,也是中小型项目的多数选择。常见的有:Mysql ,Oracle ,SQL Server 等 |
-
后端扩展技能:
技能名 | 用处 |
---|---|
后端开发框架 | 涉及到数据流 MVC三层架构 这些概念,使用的是 MVC(Model模型层=>Controller控制器层=>View视图层的单向绑定,简化操作) 设计理念,片面实现了前后分离,使得用户请求的处理逻辑更清晰。同时框架内往往内置很多类,可以快速对数据进行编辑。使用框架,能够使得开发效率大大增加。较常用的框架有:Laravel ,Yii2 ,ThinkPHP 等 |
非关系型数据库(Nosql) | 保存用户数据,按照集合 这一概念进行数据格式化,数据大多数保存于内存中,读取速度非常快,但是有丢失风险。同时不支持事务,视图和锁等安全性较高的元素,适合数据的短时间保存,在大型项目中,经常担任缓存服务和日志服务的数据载体。常见的有:Mongodb ,redis 等 |
API编写及设计 | 完全的前后分离,后端使用Json ,XML 等文本数据格式,把数据发送给调用方,结果中不出现任何Html代码。前端通常使用ajax异步请求数据,将结点再补充到网页上。或者前端使用MVVM框架,处理数据。但是后端开发只注重于API的易用性和安全性设计,不关心前端的数据展示,更利于项目的开发和维护。 |
... | 更多 |
通用扩展技能(后端以PHP开发为例)
技能名 | 用处 |
---|---|
Linux操作系统及Shell编程 | 我们的web服务器往往运行于Unix操作系统上,例如Centos ,Ubuntu ,RedHat 等。这时候,能够懂得如何操作Linux系统,以及使用Shell实现自动化部署和监控,对于提升工作效率有非常大的帮助。 |
依赖管理工具 | 前端多使用npm ,后端多使用composer 。当我们的项目使用外部库时,使用依赖管理软件,能够大幅提升工作效率,减少出错 |
测试技能 | 为自己的代码编写基本的单元测试,能够有效发现代码BUG,增强代码的健壮性 |
GIT | 协同工作工具,能够针对团队的代码更好的进行管理和发布,同时使得团队成员的代码冲突减少到最低 |
... | 更多 |
总结
- web开发的技术迭代更新非常快,尤其是前端的技术更新。 web开发的知识点多,学习强度较大。
- web开发的全栈化较其他技术简单。开发者可以试着培养自己的另外一端技能,前后都通,才能更好的完成开发工作。
- web开发目前比较火爆,从业者的数量满足不了市场需求,所以薪资情况较好。但是未来几年,随着培训机构的发展,尤其是前端从业者的需求量应该会下滑。