|
现代互联网技术的成熟导致了技术分工的极度细化,一个技术团队往往会包括前端、后端、安全、运维、架构、测试等各种职责,尤其是前后端分离的技术实现,像关老爷手中一把锋利无匹的大偃月刀,彻底切断了前后端程序员的联系,只剩下了 HTTP。
在2000年左右编程的时候可不是这样,从来没有前后端分离这回事。如果你自己不能扛起一个项目,不仅是会被淘汰,而且会被嘲笑。我最开始用 Perl 写 CGI 程序,后来陆续学了 JavaScritp、Java、C#、Python、Objective C、Go 等,早期的项目或产品基本上都是从前做到后,除了设计之外,从切图、前端页面到业务逻辑、持久化、连接池、异常、缓存、日志、集群等等,基本上都要自己参与编程或独立实现,在那个年代,你很难以专业细分的方式运作项目,因为根本找不到那么多程序员。
现在的情况完全不一样了,互联网的高速发展需要技术上更为专业、更为精深的编程人员,所以前后端技术体系的分离,就成了大势所趋,形成了一种「反模式」。
早期开发更多是把前端当做一个展示层,大部分业务逻辑都放在服务端实现。前端很轻,因为前端很弱,没有 AJAX 技术,没有 JQuery,没有框架,浏览器引擎和规范都不完善。可谓「通讯基本靠喊,下雨基本靠伞」,最多弄个 XML 数据岛进行页面渲染,没什么重型武器。
随着前端技术的突飞猛进,前端终于从轻量级的小姑娘,变成了矫健的女侠客,依然妩媚多姿,但是前端开始承担更多更重要的职责和角色。这里的「反模式」并不是一种贬义,而是指前端的强大,导致一部分业务逻辑从服务器端转移到了前端去做,后来逐步形成了前后端分离的开发方式,前端负责界面上的大部分业务逻辑,然后通过 Rest 服务与后端进行交互。原来业务系统看重的事务问题,要么一次 Rest 算一个事务,要么做成幂等服务,要么通过事务补偿的方式实现,要么交给异步消息队列处理,这样就形成了一套更为轻量级的开发模式。
现在大部分互联网公司里已经看不到 Java 和 HTML、JS 混在一起的 JSP 文件,也看不到 PHP 和 CSS 混在一起的 PHP 文件,前端程序员们更多的是和 HTML、CSS、JavaScript、JSON 以及满浏览器的 Dom 元素打交道。
不止于此
前端技术的脚步似乎没有停歇的意思,它们有了离线存储,有了画布,可以在画布上做出精妙的动画和展示效果,有了移动端开发框架,也有了服务器端编程框架。Node.js、Meteor.js 的出现让前端程序员大大出了一口恶气,他们昂首阔步闯入了服务端开发的领地,并开始进行全栈开发。对于这个新的闯入者, C 程序员、Java 程序员、Go 程序员们纷纷表示:兔子尾巴长不了,看你们还能火几天。说完以后就继续去嵌入式、大数据、高并发、多核编程去了。
但是前端不管不顾,依然很火。如果你问我现在最火的程序员职位是什么?我不得不告诉你,是前端,优秀的前端!前端已经取代了前几年红得发紫的移动开发者,成为程序员新贵!
前端技术日新月异,技术的更新换代,必然引发业务架构的调整,这里面就会牵扯出一个传统网站的改造问题。
Rest 的路由表可以在后端控制,也可以在前端控制,我们最早都是在服务器端的框架里维护的,现在前端框架 AngularJS,Backbone 等,都有路由模块,放到前端更灵活。
上线的页面应该进行预处理,比如代码压缩、JS 混淆,替换静态资源的链接为 CDN 的链接等。前端也是有自动化构建工具的,推荐 Gulp。能自动化的事情,一定要让机器去做。
所有页面的静态资源比如图片,CSS,JS 等,没有特殊要求,一定要放到 CDN 上。
移动端页面怎么处理?布局和逻辑简单的页面,采用响应式设计可以搞定。复杂页面,最好还是维护两套代码,成本更低。
前端技术的更新如此迅速,在这样的大环境下,前端工程师保持自学能力就显得尤其重要了。因此,“学什么”“怎么学”就是我们要迫切解决的问题。自己是从事了五年的前端工程师,整理了一份2019最全面前端学习资料,需要的伙伴可以私信我,发送“前端”等3秒后就可以获取领取地址,对于学习web前端有任何问题(学习方法,学习效率,如何就业)都可以问我。 SEO 问题、浏览器兼容问题,需要根据业务需求提前设定好,不要等开发人员都搞完了再做标准上的变化,这会带来很大的麻烦。
每到一个阶段,都会有一个「最火的技术职位」,比如 C 程序员,Java 程序员,iOS 程序员,Android 程序员,现在是前端程序员,数据科学家。要不要追,要不要转,我觉得不重要,这些技术很快就会沉淀成传统的成熟的技术,到了那个阶段,真正的技术专家才会显山露水,拔剑四顾,一战功成!
声明:以上内容来源于网络,如有侵权请联系我们(123@shiyan.com)删除! |
|