(题图:from unsplash)
摸索前端工程化时,针对群友作了个简单的问卷,参与人数不多,但也能表征一部分现象,统计结果如下,从中也可见些许端倪。
写这篇也是忐忐忑忑,一个后端聊前端的话题,总显得那么不专业,见识所限,仅供参考。此文的来由也是由前篇文章引申出来的,详见前端工程化的个人思考+前端工程化的个人思考-续。
独立的前端团队早已经不是什么新鲜事,在那些大厂大寨子里早已经存在,前端的发展可谓如日中天,一片从未有过的繁荣。前端三大件:HTML,CSS,JavaScript,这几年都有质的飞跃。HTML5的兼容性提升,多媒体支持,表单验证等等。CSS开发中加入的编程能力,JS领域内各种场景下基于Node的大规模应用,各种框架的推陈出新......
前端技术的融合更加紧密,应用的领域也更加广泛,大前端时代,也可以称为泛GUI时代,人机交互时代。前端领域的内容呈现多样化,手机App开发,考虑到生态的不同,还会涉及到Android、iOS、WP等,电视App应用,桌面端开发,微信公众号,微信/支付宝的小程序,数据展现(各种图表),虚拟现实增强现实(VR,AR),JS已成为IoT开发的四大语言之一,区块链智能合约的开发中也有JS的身影,人工智能中前端开发也起着举足轻重的作用,诸如此类。
举两个不常见的栗子:d3.js可以呈现更复杂更多样的图形展现,ar.js可以实现360度环绕透视、路径导航。
React Native早已渗透到Android、iOS的原生开发,效果效率都很接近,更关键的的多终端适配、升级更简单。Weex等一大批UI框架的出现使的前端开发开发更规范统一的界面变的轻松容易。
掌握单一的技术栈,在一个大前端团队中似乎不足以立足,这也对当下的前端人员有了更高的要求。前后端分离,使前、后的耦合性大大降低,具体体现在设计、开发、测试、发布、维护各个领域,都可以脱离后端独立进行,职则更加清晰明了。举个栗子,后端可以提供细粒度的服务,而不提供聚合服务,这个聚合服务可以有前端开发承担,在展现和后台服务中间增加一层完成,也就是常说的BFF,全称是Backends For Frontends(服务于前端的后端),当然BFF的场景还不止于此,在面对的多终端的数据展现方面,也可以提供类似于API GATEWAY的功效。有兴趣的朋友可以再深入下BFF。
Node的出现,再加上后端存储易于使用的Mongodb等NOSQL数据库,在某些项目中,确实不需要后端人员(服务端语言开发者,如C#,Java等)就可以完成,比如MEAN框架组合,一度有种声音:前端已无所不能。当然,这只是一厢情愿的想法,软件也远非这么简单就能解决问题,很多复杂的场景下它是应付不来的,每一种语言都有自己的局限性,这是我们应当看到的,陷入语言之争毫无意义。
说了这么多,大前端的”大”,具体体现在什么地方?面向终端更多,承担的任务更多,功能更强大更复杂,技术形态更多,更趋向于工程化自动化,与后端解耦独立开发测试。类JavasScript语言的应用,如TypeScript,CoffeeScript,让后端开发人员以更习惯的开发风格上手前端的开发,打破割裂的局面。
前端开发已经有自己的一套工程化思路,且与后台工程化不相耦合。前端生态也更加繁荣,后端工程化相对发展略为成熟。大前端,小前台,大中后台,目标都是应对更复杂的软件应用,更好的服务于软件开发者、软件应用者,提高效率,降低成本,提升体验。
融合是趋势,即便分工越来越细,但对外的服务能力是统一的,集大成者才能走的更远,你说呢?
扩展阅读:
长按2秒,识别二维码,关注我。