这些年,前端开发已然今非昔比

2023-05-24 0 794

(点选上方

作者:郑武江(@OAuth_v2)

邮箱:http://seejs.me/2016/03/14/%E3%80%90%E5%8E%9F%E5%88%9B%E3%80%91%E8%BF%99%E4%BA%9B%E5%B9%B4%EF%BC%8C%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91%E5%B7%B2%E7%84%B6%E4%BB%8A%E9%9D%9E%E6%98%94%E6%AF%94/

多年前,有知名品牌后端后辈谈道:后端是做什么的?在一个网页上你看到的是后端技师做的。也有人说:后端是雕塑家在UED最亲密无间的合作方。很或许,那些概念放之今日都显得太狭隘。

总而言之,让穿越时空几年,回到div+css刚刚统治网页结构设计后端应用领域的黄金时代,将雕塑家制作的结构设计稿用html+css的形式高效率的还原成,并最终呈现给网络采用者,这几乎是后端技师的全部。如果还能用Javascript(后简称:JS)给网页减少一些动画电影或其他可视化效果(如:点对点慢速、工具栏等),那简直可说是天神了。所以那个年代,后端开发人员并没有大放异彩的条件,话语权或许还较低,而那时IE6还是事实上得标准。

随著历史的发展,时值GoogleGmail网页版电子邮件服务面世,Web富应用应用领域黄金时代渐渐到来。Gmail采用的触发器创下(Ajax)模式,为网页后端开发迈入了新世纪。Ajax控制技术可以让同一网页中的文本在彼此之间影响的情况下分批号的在必要的时候展开预览。这极大程度上减少了网页CM3时间,在采用者下载的同时展开文本预览而不创下网页,保证了采用者出访的反应速度,减少了采用者等候生产成本。因此,这段时间Ajax被大范围应用应用领域到网页应用应用领域中,而后端技师也Soleymieux,纷纷投身于JS触发器程式设计。Ajax的采用让许多企业尝到发迹,后端技师的话语权渐渐得到了提升,许多开发人员渐渐在这一应用领域大放异彩,各式各样触发器架构(Prototype、jQuery等),各式各样触发器实现方案(网页懒读取、延后读取等)不断涌现。

然而,Ajax招来的大潮不止于此。随著Ajax控制技术渐趋成熟,越来越多的后端开发人员已经深入了解了它。开发人员们发现传统Web技术,由于网页结构和数据的装配都在伺服器端完成,而在允诺积极响应过程中通过网络数据传输的是唱词完整的html短片,甚至整个网页。这给伺服器带来了很大的负担,也节约了许多的频宽资源,也间接地减少了采用者等候生产成本,并且在后端模板(例如:针对PHP的Smarty、面向JAVA的Velocity等)的复用上会存在麻烦。为了解决那些问题,优化体验,数据与结构分离,前后端分离的呼声渐渐高涨。伺服器端只负责数据的计算与存取,而数据在网络中以JSON格式的纯文本字符串的形式传递,大部分网页结构的拼装工作由后端完成。这样的控制技术方案优势是很明显的:前后端职责明确,相互独立,工作上几乎彼此之间干扰;单个允诺数据传输文本上减少了大量的html短片,只保留数据,并且JSON对前后端友好,减少频宽节约;结构与样式完全由后端自己控制,减少前后端耦合等等!在这样形势的驱动下,后端技师们也交出了傲人的成绩,诸多优秀的后端模板引擎(Mustache、artTemplate、xTemplate等)应运而生。当然,这也给新黄金时代的后端技师们提出了更高的要求:了解网页渲染原理、HTTP工作原理、算法及数据结构等等。无可厚非,此时的后端技师早已不可或缺。

任何事物都具备两面性,后端开发渐趋重要的同时也伴随著诸多负面问题。大量的后端业务逻辑大大减少了后端JS代码量,后端代码的模块化、按需读取、依赖管理势在必行。大量的业务逻辑也意味着大量后端bug的降临,新旧版本代码的独立性、版本升级与代码回滚问题必须重视。一时间sea.js、require.js等模块管理库风生水起,后端架构概念渐渐成型,svn、git等版本控制工具也渐渐进入后端应用领域,后端已不再是单纯的网页仔,不再是单纯的html、css和js。

后端代码量的剧增,一方面单个js文件代码量过多,导致代码维护生产成本减少,问题定位难度增大,给开发调试造成了一定困难。另一方面同样伴随著网络数据传输时间长的问题,使网页读取性能受损。因此,开发人员们不得不将文件拆分成多个文件,充分利用下载器的并发能力以节省这一生产成本,也让那些可复用的公共资源得以独立管理和维护。但是,文件越拆越多终究让网页的HTTP允诺数量给网页性能带来了压力。静态资源的压缩、允诺的合并被推上了后端舞台。从早期的YUI Compressor,到如今基于Node.js的grunt、gulp等,不断推陈出新,静态资源压缩也已经历了几世变化。而在允诺合并方面,恐怕由阿里系推出的nginx-concat模块当仁不让成为了最优选择。而这一切也要求我们后端开发技师来完成。

正当开发人员们忙于处理如何减少HTTP允诺数,如何提升采用者体验的时候, Web后端开发技师又迎来了新的挑战。在移动网络行业如日中天的今天,如何实现离线存储,理想状态是在没有网络的环境中也能让我们的WebApp能够正常的运作,当然至少要能保证部分文本能够正常出访。这兴许是在传统网络中无法想象的事情,但是随著HTML5标准的一步步确定,现代网络后端拥有了localStorage、sessionStorage等本地存储控制技术,甚至拥有了建立本地数据库,通过JS调用API完成CURD操作的能力,这一切让离线存储成为了可能,但这也意味着我们的后端技师需要掌握更多更复杂的技能。

行文至此,我们看到了JS在后端开发中由最初的跑龙套,到现在大放异彩的主角光环。当然这远远不够,新近推出的ES2015标准(包括Promise+、Generator、Set、Map等等)为JS的未来发展开拓了广阔的空间。不仅如此,在表现(css)方面,后端的变化同样是一日千里。从最初的固定布局,到后来的栅格系统,再到自适应、积极响应式布局,一步一步见证着css结构设计的日渐强大。为了更加灵活简便的展开css结构设计,各式各样css预处理控制技术(LESS、SASS、Stylus)日渐流行,从此后端开发技师也可以像写程序一样编写css样式了。

此外,css3的出现,让网页更小更美。圆角、阴影、背景渐变,以及font-face配合网页图标字体,让网页中图标资源的采用得到了有效控制。过渡、动画电影,带给网页飞一般的流畅体验,将界面层面的动画电影交给css实现,让JS可以更专注的完成业务逻辑处理。其良好采用者体验却不兼容陈旧下载器(例如:IE6等)的特性,也间接地成为了陈旧下载器淡出舞台的催化剂。

最近刚了解到一个“合久必分,分久必合”的后端问题。记得以前为了高效利用下载器并发,许多大公司选择提供多个图片资源域名(诸如:img1.alicdn.com、img2.alicdn.com等),但是,如今移动Web肆虐,无线性能优化又提出了“域名收敛”的概念,现在淘宝的图片似乎只剩下了gw.alicdn.com一个图片域名,这也许归功于HTTPDNS。谁知道多年以后又会是什么样。

何止那些,当今的后端开发技师们可谓无所不能。虽然Node.js尚不算后端必备技能,但却也成为每场后端面试必问的话题。虽然PHP/JAVA等属于后端程式设计语言,但却在每一份后端招聘信息中总会加上一条“至少熟悉一门后端语言(Node.js/PHP/JAVA等)”。此外,还有诸如Angular、React等新兴新型后端架构各领风骚。所以,越来越多的高级后端开发技师在渐渐演变成全栈技师,然而我们也不能忽视一些后端开发人员转做后端从而踏上全栈之路的事实。

最后,我还想说说时下热门话题:Google高级测试技师——李世乭与Google智能机器人AlphaGo的围棋人机大战正在如火如荼的展开。然而,李世乭的落后也证明人工智能必将在未来掀起波涛。那么未来的后端如何与人工智能结合,这值得我们思考。

【今日微信公号推荐↓】

这些年,前端开发已然今非昔比

更多推荐请看

其中推荐了包括控制技术结构设计极客 和 IT相亲a、安卓、iOS、PHP、C/C++、.NET、Linux、数据库、运维、大数据、算法、IT职场等。点选《》,发现精彩!

这些年,前端开发已然今非昔比

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务