前端技术的一些思考

随着技术的革新,浏览器(包括移动端浏览器)性能越来越强劲,网页所能呈现的内容也越来越丰富,从最早的只能展示静态的文本和图片,到通过 Js 语言和 AJAX 技术动态修改页面元素,再到 HTML5 标准所支持的 Canvas 绘图画布,在浏览器里已经几乎可以实现以前桌面软件所做的任何事情,虽然距完全替代原生语言开发软件还有一段路程,但是就像现在的新媒体替代报纸、杂志、电视似的,这是迟早的事情。

对于目前前段技术领域所存在的问题,进行一些思考。

1、编程语言的特性: Javascript 这门语言确实存在各种问题,据说发明这个语言的哥们当时只花了一个星期的时间来完成,在编程的时候只图一时爽快,很多东西没有考虑到位,比如“面向对象”,采用了与传统的基于“类”截然不同的一种方式,使用起来有些蹩脚,缺少语言层面的“模块”化支持,导致相当长的一段时间里,前段代码混乱不堪,全局变量到处飞。不过随着新标准(ES6)的定稿,以及以谷歌浏览器为首的新兴浏览器对于标准的快速推进,相信这一局面会在三年内得以改善,对于有志于前端开发的技术人员,现在就应该开始使用 ES6 的标准编写代码了(支持 class、import 等关键字)。

2、浏览器兼容的问题: 浏览器兼容一直以来都是前端工程师的噩梦,每年因为兼容性问题而导致的工作量浪费不计其数。这里面最大的问题是老旧的 IE 浏览器没有退役导致的,而老旧的 IE 浏览器没有退役是因为相当多的人在目前还坚持使用 WindowsXP 系统,这个问题目前连微软都头疼,不过从我的观察来看,身边使用 XP 系统的越来越少了,所以我们再做新系统的时候,不妨直接抛弃那些老版本浏览器,用更好的产品体验吸引那些坚持用老旧 IE 浏览器的去升级。这是对新标准的最好推动。

3、大型应用的架构: 无论是传统桌面程序还是后台程序,都有多年的发展所积累起来的成熟架构和可复用框架,对于模块化、插件式、分层等设计思想都有着良好的最佳实践。但对于前段编程来说,这些目前仍处于战国时代,各种不成熟的框架和构建技术在混战,而且发展迅猛,几乎每天都有新的框架和工具出现,对于新手来说往往纠结到底该加入到什么阵营中去。但是实质上目前不需要纠结这个层面的问题,正因为都不成熟,所以尽可以快速选择一个,然后基于一套体系去实践,等跳过各种坑之后,你会发现殊途同归,大家的思路都是一致的,无非就是“数据与界面分离”、“自动化构建”、“组件式开发”。

不过我目前看好 Facebook 阵营的 webpack、reactjs 等技术未来的实质标准很可能在此阵营产生

4、何时替代原生开发: 移动端的程序尤其是游戏,短期内难以替代,因为性能问题还存在差距,但是管理类应用程序会很快被前端技术取代,PC 上的桌面软件除了那些专业的生产力软件比如 CAD、PS 等和大型游戏,其他的也很快被前端技术取代。所以我们以后再进行技术路线选型时,需要考虑技术的发展,认清趋势,属于前端工程师的时代已经到来。

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计