大家好,又见面了,我是你们的朋友全栈君。
本文主要分析web开发的相关方向及技术,为想投入web开发的同学提供下参考。
什么是WEB开发
说到WEB开发就不得不提两种架构模式,B/S架构和C/S架构。
互联网发展初期,大多数系统都是C/S架构,C代表客户端,S代表服务器,常见的软件,比如QQ(WEB版的不算),都是采用这种架构模式。这种架构模式通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。B/S架构(浏览器/服务器)是随着Internet技术的兴起而出现的,它是C/S架构的改进。在这种架构下,用户界面完全通过浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier(三层架构)架构。B/S架构利用不断成熟和普及的浏览器技术,实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。
C/S架构的特点很适合单机或局域网范围使用的系统,对于开发跨越整个互联网的分布式系统非常困难,而且由于需要安装客户端,系统更新与组件版本控制就成了一个大问题。此外,不象B/S架构中只需考虑服务器端的问题,在C/S架构由于多用户同时访问服务器,各组件间的调用和依赖关系复杂,在处理多线程访问共享资源,事务处理等方面必须同时考虑客户端与服务器端,吞吐量受到很大的限制。所以现在的软件首选B/S架构,也就是浏览器/服务器模式。浏览器显示的内容是网页,所以web开发可以简单的理解为网页或网站的开发。
WEB开发分类与区别
人们通常将WEB分为前端和后端,前端相关的职位有前端设计师(UI/UE),前端开发工程师,后端相关的有后端开发工程师。这里我们只讨论前端开发工程师和后端开发工程师(欢迎对设计感兴趣的同学补充)的区别。
- 技术栈区别
看各大招聘网站上,公司对前端开发工程师的要求莫过于精通HTML,CSS,JS,有良好的交互设计能力等。再看公司对后端开发工程师的要求,比如Java开发工程师,要求精通Java,熟练掌握Java网络编程;熟练运用SSH等开源框架;熟悉互联网开发模式,清晰理解缓存,缓存设计和模式;精通TCP/IP、HTTP等网络协议,精通socket网络编程,有用Java做大访问量高压力网络应用的经验;熟悉Linux/Nginx,熟练配置维护Apache,Tomcat,Resin等应用服务器,掌握shell/awk/python等系统脚本工具;熟练掌握SQL语句,熟练使用数据库(MySQL,Oracle);掌握Html/Javascript/Css/Ajax 等页面技术;熟练使用Eclipse/Maven/Ant/SVN等软件开发工具;WEB架构的性质决定服务端开发的复杂性,服务端的复杂性决定后端开发人员要掌握的技术。
- 学习成本区别
用3年时间学习前端开发,多数同学都能够成为一个优秀的前端开发工程师,同样,用3年时间学习后端开发,多数同学只能算是入门。前端开发人员需要掌握HTML,CSS,JS,对于其他框架的学习也只是熟悉下框架的用法。这三种语言本身也很简单,很容易上手。对于后台开发人员来说,开发语言的多样化,技术框架的选择,平台性能的了解都是需要经验积累的。比如java,你需要精通Java语言,熟悉jdk源码,熟悉JVM性能优化,熟悉SSH框架,熟悉Mysql,熟悉各种技术,这些都不是短时间就能上手的。
前端开发入门门槛低,学习曲线跟服务端开发语言先慢后快相比,趋势是先快后慢。注:后慢是因为后期的学习已经超过前端开发的范围,比如SEO,服务器端知识,HTTP协议,这些学习本身就是慢的过程。
- 钱景&前景
由于互联网行业的极速扩张,各大公司对前端工程师的需求非常旺盛,自然钱景旺旺。加上HTML5规范的最终定稿,必定引起web的热潮。NodeJS在服务器端的延伸也使JS大放光彩。反观后端工程师,培训机构输出一批批Java,PHP工程师,即使跟不上企业的需求,也基本能满足后端工程师市场的需求(不过,高端的,有经验的后端工程师是非常抢手的)。刚出道的前端工程师钱景和前景远好于后端工程师。
总结
对于想短期内进入互联网行业,想有个不错的钱景和前景,跟后端开发相比,前端开发是个不错的切入点。
理由如下:
- 前端开发入门门槛低,但需求旺盛,特别是有经验的前端开发人员。
- 前端开发短期可以积累足够的经验,比如3年,而后端开发想要积累同等程度的经验至少需要5年。
- 前端开发技术变化慢,HTML5定稿都需要8年!而后端开发技术更新很快,各种框架,架构模式变更迅速,需要时刻学习。
- 前端开发技术发展越来越成熟,且适用范围更广。比如HTML5可以替代原生APP(性能方面有待考究),JavaScript能够用于数据库操作(MongoDB等NoSQL支持JS语法),NodeJS能够让JavaScript在服务器端运行,只要会Js语法不用后端开发语言照样开发服务端程序。
- 前端开发技术支持全栈式开发,不需要后端开发语言的支持。
还有什么不去学习前端开发的理由?NO!
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128185.html原文链接:https://javaforall.cn