2017年前端发展总结

本文笔记 总结至 饥人谷, 应该是我翻过的个人最有认同感一篇2017年前端总结

全文我将以一个前端新人的眼光,回顾这一年。

前端历史

作为新人,其实更多的需要了解前端发展的故事。

  1. 早期JS的唯一定位:提前验证表单字段,节约带宽
  2. AJAX的出现,局部刷新页面的开始
  3. JS的两大功能定位:DOM 和 AJAX
  4. jQuery 的出现,使DOM操作不再那么抽象,方便快捷,本质没有改变。VUE和React 利用虚拟DOM,根本上使得DOM操作无痛
  5. Promise和Fetch的出现,AJAX有了最佳实践
  6. 状态管理的提出。

为什么需要状态管理

目前三大框架(Vue、React、Angular)都非常关注状态管理,其实这也是2017年的一个前端关键词,也是目前各大前端团队在探寻的方向

  1. 虚拟DOM让状态管理直接反应到页面上
  2. 前端不再关心DOM,进而关心状态
  3. 状态越来越多,结构越来越复杂,异步操作越来越多,状态管理成为了必要

过时的那些技术

技术过时,原理和灵感不会过时。

  1. IE 兼容。 从各大流行框架的最新版本已不再支持IE 8可以看出,IE兼容的时代已经过去
  2. Seajs,后来的前端学者应该不曾听说过或不再使用这个东西了
  3. 模块定义,曾经的CMD和AMD。ES Modules的提出给模块定义下了定论
  4. Grunt和Gulp,这也应该是后来的学者不再能听说到的历史技术,Webpack的配置在一定程度上比Gulp简单。
  5. jQuery,早些时候,仅仅看单词的拼写就能知道对此框架的了解程度。Write Less, Do More 一直是一代程序员的代码理念。它的思想和原理对后来的开发者启发很大。在一些大公司,jQuery应该上一两年。
  6. AngularJS 1.X 了解到有些公司因为早先的项目兼容,至今还在使用1.X,当然抱怨也不会少。新产品的话,如果选择Ng,应该会用Angular了

展望

工具链整合

工具链整合时代即将过去,所谓分久必合合久必分,18年的前端应该是可以展望一下一个完整的框架出现
在2017年,是前端工具爆发后逐渐整合的一年,其中以下基本达到统一

  1. 标准库方面的工具基本统一:lodash、momentjs
  2. 构建工具基本统一:webpack
  3. DOM 操作基本统一:虚拟 DOM
  4. 工具开发平台基本统一:Node.js
  5. DOM 库基本统一:Vue 或 React
  6. 组件化方案基本统一:类似自定义标签的形式(但并不是自定义标签)
  7. CSS 布局方案基本统一:Flex & Grid

还有哪些没有统一呢?

  1. 设计思想没有统一:函数式与面向对象混用
  2. CSS 的组织形式没用统一:CSS in JS 怎么用才对,大家都无法说服对方
  3. 数据管理套路没有统一:要不要用 Redux 单向数据流、要不要用 Reactive 响应式编程
  4. 部署流程没有统一:目前前端的部署都是依附于后台系统,并没有自己的想法
  5. 单一入口还是多入口
  6. 用 webpack 配置长期缓存还得费一番功夫(这理应是默认配置)
  7. 没用到的 JS 代码要不要打包
  8. 要不要 HTTP/2.0

等上面几个东西基本统一了,前端的框架时代就会到来了。

这也是为什么后端喜欢 Angular,前端不喜欢 Angular。

因为后端开发人员早就进入了框架时代,无法适应目前前端的工具整合时代。而前端,还不知道框架应该长什么样子,可能未来框架就是类似 Angular 这样的,但是前端从业人员没有到那个地步就无法理解 Angular 的好处,现在用 Angular 就只能用一个「重」字来评价。

知识储备

这大概就是新人要写在简历里的内容了。

  1. 了解 ES6 的所有新特性
  2. 熟练使用命令行,包括 gulp、webpack、vue-cli、create-react-app、git
  3. 理解前端常用词汇,如闭包、面向对象、MVC、MVVM、单项数据流、路由、单元测试、意大利面条、模块化、组件化、函数式、纯函数、高阶函数、不可变数据
  4. 能熟练使用至少一种前端框架,如 vue、ng 或 react
  5. 熟悉 HTTP,了解请求、响应、缓存、代理、反向代理、HTTPS 等

谈谈在2017学习前端的理解

CSS的艺术,让它并不是那么代码化

谈到程序员,谈到代码,谈到入门代码界,更多新人,带来的则是恐惧,害怕自己不是科班出生,害怕自己没天分。 其实不然,刚开始学习前端的时候,从零开始,我们遇到了css,原来几行简单的css语义化描述,可以让页面呈现的如此多样化。 它更有一个UI工程师的亲和力,让你不会感受到代码界与生俱来的压力和不解。

对JS的要求,让它并不是那么难以入门

正如前面提到的,JS早期时候是用来检测表单的,至于到后来的AJAX。对于前端的新人来说,JS也大概停留在AJAX的位子,并不是太难以理解。一步一路的学习,会让新人觉得, CSS才是开发时间的大头,JS只是用来拿拿数据。 JS的简单入门,使得前端学习开起来并不是太难,可能更需要的是CSS的描述天赋。

后端程序员对前端的理解

经常会有后端程序员转到前端程序员,也正是我前面提到的两条,个人感觉前端是一个从旁门走入代码界的孩子。后端已经定势的程序开发思想,有些并不适用于前端,比如CSS。 所以个人常常认为,有些CSS只有科班前端才写的出来,后端程序员的开发思想反而成为了阻碍。

前后端分离,页面重构和JS分离

前后端分离这边就不谈了,新入门的小朋友大概不知道什么是前后端分离,但就已经在使用前后端分离了。
这边说说页面重构和JS分离,我目前所处公司前端人员较多,已经出现了页面重构和JS编写两大前端分支,很明显前者只写页面css,后者则专注于JS开发。这种开发思路,这个我暂时保持中立,毕竟CSS是前端出生的地方,而JS是前端的未来。抛弃两者之一,对个人来说,都不再能独立完成一个页面的开发。

所谓的正统程序员

所谓正统程序员,必然是设计思想,设计模式牢固于心的程序员。 使用套路的优势就是少走弯路,维护方便,在前端入门时,常常是面向过程变成,想一句写一句。虽然得出的效果可能是一样的。 我在这一年就经常吃了这样的亏。
想努力成为真正的程序员,其实可以接触接触后端,毕竟后端框架早已成型,设计模式和思想也很成熟。当然,今年以及明年的前端领域,也会更多的注重MVC /MVVM 等思想。 JS也不再是那个只写写AJAX的JS,我们开发出了Router和State, 硬生生的在前端造出了一个属于前端的MVC生态。 CSS in JS ,All in JS , 让JS变得无所不能。前端也不再是那个简单学学就可以入门的前端。

总结

2017年大概是一个前端学习的爆发年,各式各样的框架和技术,让前端学习没有方向。而恰恰是因为没有方向,导致市场对这个职业的需求也是没有方向的。

2018年的方向已经大致确定,PWA、TS、Redux甚至Rx.js,这些技术得到统一。学习成长考核的方向已然确定。对新技术的学习要求和适应能力依然要求非常高。未来的前端门槛也必定越来越高。

当然,最后一样希望大家乐在其中的对待任何新鲜的东西,享受其中是最好不过的结果。

你可能感兴趣的:(2017年前端发展总结)