• 2016年前端技术展望


    回顾过去,继续前行

    编程技术及生态发展的三个阶段
    
    1 补全API,完善语言和底层基础设施
    2 开发语言模式,简化工程组织,开发工具
    3 MVC MVVM工程架构,自动化测试,团队协作,达到工程化 

    观念的变化

    1 现在前端开发面向更多的是Web App而不是Web Page,以至于逐渐趋同于过去的传统模式客户端开发,再加上一些前端独有的特性(免安装、Write Once Use More),前端工程更趋于复杂。

    框架和类库的变化

    1 React + Redux + React Router + React Native(Android & iOS)
    2 优点:基于虚拟DOM,整体驱动更新。同整个生态系统非常完全,支持强大。
    3 Vue + Vuex + Vue Router + Weex(Vue Native)
    4 优点:轻量精巧,易学易用,优异的性能,组件化开发。
    5 Angular2 

    标准&语言的变化

    ES6带了许多革命性的新语法,具备了开发大型应用的基本要素:原生的模块加载,引入Class类。从目前es的进化速度来看,es后面应该会变成一个个的feature发布而不是像以前那样大版本号的方式,所以现在官方推荐 ES+年份这种叫法而不是 ES+版本。

    2015年11月,ES标准委员会宣布将历时3年研究的Object.observe从草案中移除,官方的解释是,前端变化太快,React引入的Immutable Object盛行,这让基于可变对象变得尴尬,而且性能上还存在一定问题。

    ES2016的相关草案中值得期待的两个Features,目前转译器Babel对ES2015/ES2016支持非常良好。

    1 async/await:协程,同步的写法写异步
    2 decorator:装饰器

    WebAssembly

    V8中引入JIT(即时编译,即在程序运行前一刹那,偷偷编译)技术,JIT技术的问题:

    1. JIT 基于运行期分析编译,而 Javascript 是一个没有类型的语言,大部分时间,JIT 编译器其实是在猜测 Javascript 中的类型.
    2. 有很多的情况下,JIT 编译器都无法生成代码,比如异常, 比如 for in , 这个基本上是实现难度引起的.

    虽然大大提升了JS性能,但是对于性能的要求总是无尽的。

    继续提升的思路:

    1 一种是 Typescript, Dart, JSX 为代表的,基本思想:语言是强类型的.
    2 另一种是火狐的 Asm.js 为代表的, 做一个 javascript 子集, 同时试图利用标注的方法,加上变量类型.

    WebAssembly是一种更激进的方案,编译过程前移(AOT),提供工具将各种语言转换成特定的字节码,浏览器直接面向字节码编译程序。

    技术选型和架构

    1 组件化:在工程上会大大提升项目的可维护性及拓展性,以及可复用性。组件化的指导策略一定是分治而不是复用,分治的目的是为了使得组件之间解耦,而如果以复用为指导原则,代码将变得臃肿庞大,不易维护。
    2 工程化:合理开发流程和规范,自动化检测,系统部署,性能优化。

    工具链的变化

    构建工具 Gulp Webpack browserify
    面向未来的包管理 Jspm(Http2.0已发布)

    总之,近年前端发展太快,影响了新产品的技术选型,谁也说不准,现在的最佳实践是否是以后的反模式。前端的乱世也意味着更多的挑战和更多的可能,希望自己迎风而上,不落潮巅,加油。

    此文为读点击这里有感整理.

  • 相关阅读:
    面向对象高级
    面向对象基础总结
    面向对象基础剩余
    组合和封装
    继承与派生
    面向对象
    4.10
    4.9
    常用模块
    【转】CentOS: 开放80、22、3306端口操作
  • 原文地址:https://www.cnblogs.com/liutie1030/p/5649991.html
Copyright © 2020-2023  润新知