我的开发世界-聊聊前端(二)

来源:互联网 发布:java equals方法代码 编辑:程序博客网 时间:2024/05/17 22:47

        我并不是一个纯粹的前端开发,但又想面面俱到,很多人会跟我一样去学习各种语言,最后搞的身心疲惫。越学越觉得自己会的越少。其实这是一个很正常的现象,每个人都是,不能在心理上出现障碍,知识不够就慢慢学,身体不好就慢慢锻炼。
        前端这几年的技术膨胀的很快,我以前都只是会jQuery,也只去了解jQuery衍生出来的库,导致我现在学的东西很多,有时感觉自己很累,有时觉得迷茫,开始怀疑接受转变的必要性。我现在都还在进步和怀疑的道路上。
        怀疑归怀疑,学习还是得学的,不学怎么知道答案。我在网上了解了一些关于前端的发展史,最明显的大概如下面这张图:
这里写图片描述
        通过这张图可以看出前后端分离是一个很明显的趋势。前后端分离是一个很陈旧的概念,但是在国内推广的很慢,因为国内写html、css、js的大都是后端开发人员,因为有jQuery。很出名的bootstrap就是基于jQuery的,它让后端开发人员写一些关于前端的东西很容易,说白了就是复制粘贴,不过的确能解决大部分业务需求。所以大概是11年之前,在国内招一个前端工程师非常难,因为很多人觉得前端是一个小儿科的东西,随便找个程序员都会写一些,这样也导致很多培训机构及学校不会去专门地去教前端。同时前端工程师在当时的工资也很低,导致很多想在前端发展的工程师望而却步。
        随着技术的发展,前端攻城狮的春来慢慢来临,我觉得应该是智能手机的兴起。移动端用户的膨胀急需大量的前端工程师,同时也带领了PC端的前端发展,致使前端攻城狮的薪资越来越高,当然难度也越来越高,前端攻城狮的压力也越来越大。前端已经不再是后端攻城狮不屑的技术。
        前端攻城狮的重要性,我觉得引用知乎大神朴灵的话比较合适:

他们也许不懂交互设计,但是没人比他们懂交互设计的实现,和每一个细节。
他们也许不懂视觉设计,但是没人比他们懂视觉设计如何变为现实。
他们也许不懂后台数据库,但是他们其实才是数据的第一消费者。
他们也许不是产品经理,但是产品的质量几乎都是由他们来决定。

        不光只因为手机端的缘故,还有业务的复杂度。随着业务复杂的项目越来越多,前端的技术需要变化,于是出现了知名的Angularjs、react.js、vue.js等。同时也出现了前后端分离。
        前后端分离不只是前端攻城狮负责能在浏览器中执行的代码、后端攻城狮负责能在服务器中执行的代码,而是代码的分离、工程的分离、服务的分离。分离后主要依赖ajax进行交互,主要是http和websocket协议,restful风格的api,json格式的数据,jwt方式的token。
        前后端分离后开发的转变:

以前:

项目经理:“我要这个功能”
开发工程师:“这个我先在前端做个模板”
开发工程师:“模板做完了”
开发工程师:“我去写个接口”
开发工程师:“接口写完了,我来对接这个模板”
开发工程师:“样式有点问题,我来修改下”
开发工程师:“我改完了,功能交付”

现在:

项目经理:“我要这个功能”
前端:“我要接口”
后端:“接口完成了”
前端:“我来对接下,功能交付”

        这样还有一个好处,降低了维护成本,以前很多web项目是用jsp或者其他模板引擎实现了,里面既包含后端语言代码也包含前端语言代码,而且对于一个不怎么考虑以后维护他代码的人的开发工程师写出来的代码,维护难度可想而知。
        前后端分离还有一个好处,可以分担一些后端的性能问题。服务器上也可以使用Nginx,我猜的没错的话,很多项目之前用Nginx也只是把它作为反向代理,而忽略了它做为静态文件服务器的强大优势。