Better

Ethan的博客,欢迎访问交流

阅读笔记:前端发展史与代码质量

了解下前端的发展历史和未来,还有一篇关于代码质量的话题,作者是反面入手,有点被说到心坎里去了的感觉

前端发展史

前端历史发展过程中,我们所能沉淀下来什么

  • 早期 Web1.0 时期的形态,纯静态展现,前端工作非常简单,职责偏向于 MVC 中的 View,页面交互需要整体刷新,体验很差
  • 动态 Web 2.0 时代,面向过程时代码大量增加,难以维护
  • 前端 MVC 时代,backbone.js 前端 MVC 分层尝试的先驱者
  • 性能问题:雅虎 35 条军规
  • 自动化工具:代码合并,压缩,CSS 预处理,雪碧图等(Grunt 为代表)
  • MVC/MVP 只是提供了职责的划分,并没有简化代码量,需要同时关注 Modal(data) 和 DOM 操作(view)
  • 如今工程化初具规模
    • webpack + babel
    • vue/ng/react
    • npm
    • eslint
    • Node + Express/Koa
    • git flow
  • 更多 SSR、GraphQL
  • Hybrid App(JS 和 Native 通信)
    • Cordova
    • React Native
    • NativeScript
    • Weex
    • Flutter

代码质量

今天看到一篇很清奇的文章,主要讲述代码质量相关,但作者是从反话入手,对于作者的观点和痛点,只能说深有感悟!

建议总结

  • 不要过于追求让代码尽可能的短一点,比如要保证易读性的前提,比如三元表达式不要盲目使用
  • 变量的命名,不要使用一个字母的变量,当然循环索引可以除外
  • 不要使用单词缩写,比如 browser -> brsr,那样只有你自己看得懂
  • 避免抽象的、通用的命名方式,比如
    • obj/data/value/item/elem
    • 根据变量类型命名:str/num,本质提供不了有价值的含义
    • 如果找不到更多的名字呢?追加一个数字,比如 item1、item2
  • 避免智能同义词,比如函数前缀 display、show、render、paint
  • 避免重用名字
    • 覆盖形参变量的值,会导致后来人不自己检查代码,根本不知道变量被修改过
    • 本地变量覆盖外部同名变量
  • 避免使用下划线
    • 代码变得更长降低了可读性
    • 其他伙伴可能会花费很长事件来弄清楚下划线是什么意思
  • 避免副作用和非标准结果
    • isXXX/checkXXX/findXXX 等函数看起来不会改变任何东西,也就是无副作用函数,因此一定不要产生去改变某些东西
    • 比如 isXXX/checkXXX 表意应该是返回 boolean,因此不要返回其他等不标准结果
  • 避免强大的函数,函数功能要单一
    • 如果你觉得函数名称不好取了,就该思考是不是他做的事情太多
    • 多个动作加到一个会导致代码难以宠用

来源



留言