前端最佳实践整理

这里整理了下个人认为的当下前端最佳实践,这也算是个人在前端领域的沉淀。
这些最佳实践会不定期整理,一些工具可能会被逐渐替换掉。

添加于2020:如今,互联网以及应用开发领域已经有很大的变化,纯WAP的生命力越来越弱。
因此做了一些小小的更新,但是文章的价值已经大不如前,不久的将来,我可能会全新重写这篇文章。

代码库:

  • git: https://www.gitbook.com/book/bingohuang/progit2/details
    毫无意外的打败了所有版本库控制工具,不愧是大师作品。
  • git-flow: https://ihower.tw/blog/archives/5140
    实践中git-flow流程已经融入血液,设计相当科学。

基础工具

  • node.js: https://nodejs.org/zh-cn/
    node.js让前端开发有了革命性改变。
  • npm: https://www.npmjs.com/
    npm暂时有不可替代的地位,但是目前比较大的问题是其解释性语法灵活性,有比较大的问题,因此有不少工具想替换他。个人认为,NPM可以单纯作为包管理工具,其他职责可以交给其他的工程化工具。网络上,可以使用taobao源解决(taobao确实在技术领域做了不少贡献)。
  • yarn: https://yarnpkg.com/en/
    个人认为只是解决中国用户网络上的问题,设计上还算优雅,但是新的NPM 发布后,Yarn的优势也不是特别明显,有可能会在以后放弃使用。

工程化

  • webpack: https://doc.webpack-china.org/
    webpack已经快成为前端标配了,但是设计上也不是没有什么问题。插件语法过于封闭,插件之间职责交叉比较多,过多集成会引起混乱。工程化,个人认为,首先要区分状态,编译时,开发时,调试时,测试时,生产环境时,然后将这几个状态合理关联起来。在规范性上来讲,可以设计标准模板,提供标准接口,让所有开放框架安装规范集成。
    目前开发中面临的比较大的问题是,编译时间过长,执行了过多重复的编译,导致开发效率变低。就拿Vue来说,一次构建差不多要消耗1分钟的时间,这个时长显然是个瓶颈。
  • vuecli: https://cli.vuejs.org/
    替代以上,相比webpack,易用性极大增强,完全可以放弃webpack了。
  • quasar: http://www.quasarchs.com/
    如今,应用开发的生产力已经发生了质的变化,纯WAP的生命力已经不够强大。quasar是目前个人认为最为成熟的全平台前端框架,虽然不完美,但是从工业角度,可以算作是目前的最佳实践。因为目前混合架构技术的短板还是比较明显,所以为了一定会出现替代品,尽请期待吧。目前我已经不在前端领域活跃,因此这项技术的推进者,肯定不会是我。

前端框架:

  • vue:https://cn.vuejs.org/index.html
    目前可以算是前端的标准了。

控件库

  • 目前的控件库问题都比较大,包括quasar的封装也是一样,我再期待一个新的控件库的出现。

css框架

  • less http://lesscss.org/
    自从有了sass,less,写css有了革命性改变。但是个人认为,这本应该就是css职责,html/css发展到现在,一直把开发者当成敌人,不知道这场战争什么时候能结束。我相信基于dom解析的浏览器将很快被替代,届时富客户端开发将很简单,操作系统也将被弱化。

工具类

  • moment: http://momentjs.com/docs/
    日期时间处理,js的Date对象简直无法忍受,有了这个会轻松很多
  • twix: http://isaaccambron.com/twix.js/docs.html
    这个是对moment的补充
  • lodash: https://lodash.com
    js是世界上最优雅的语言,但是在基础api设计上偏弱,后期的演进过程中又被强类型语言带到了沟里。好在一直保持着优雅的特性,因此,有个好用的第三方类库,能很好弥补基础API上的设计缺陷。lodash设计上虽然不是最优秀的,但是好在都还算精炼,能解决80%的基础需求。

报表

  • highcharts: https://www.highcharts.com/
    相当棒,数据结构设计上比较合适,弹性比较大,方法API设计上不太够用。

mock

  • facker.js https://github.com/marak/Faker.js/
    设计上,非常优雅。本土化做的不太行,api接口设计上,有很严重的问题。

你可能感兴趣的:(前端最佳实践整理)