非原创
在实际开发中严格使用 ESLint 做编码约束
在这些基础之上让自己做更优秀的工程师:
创建子程序的正当理由
- 降低代码的复杂性(将复杂业务抽离出去)
- 避免代码重复
- 方便类化、覆盖
- 提高可移植性
- 简化复杂的布尔判断
- 改善性能(集中优化区域代码)
设计一个子程序
- 功能具有内聚性
- 顺序的内聚性
- 逻辑的内聚性
- 一个好的子程序名字
- 描述子程序的所有事情
- 避免使用无意义、表述不清的动词
- 不要通过数字来区分名字一个好的子程序名字的长度是9-15
- 子程序控制在50行之内
- 子程序的参数
- 按照输入、修改、输出顺序排列
- 所有参数都要被使用
- 把状态和配置放到最后
- 子程序的参数控制在7个以内
- 区分什么时候使用函数和过程(函数有参数、过程没有参数)
- 把异常处理单独包在一个子程序中
重构
- 重构的理由
- 代码重复
- 冗长的子程序
- 循环嵌套过长或过深
- 拥有太多的参数列表
- 变化导致多个类都要进行修改
- 子程序命名不恰当
- 程序的一些代码似乎是在将来的某个时候才能用到
- 数据级的重构
- 用具名常量代替神秘数值
- 使变量的名字更为清晰
- 用函数代替表达式
- 用多个单一用途变量代替某个多用途变量
- 将一组类型转化为枚举类型
- 语句级的重构
- 分解复杂的布尔表达式
- 将复杂的布尔表达式转化为布尔函数
- 在嵌套的if-else中一旦知道答案就立刻返回
- 子程序级的重构
- 将子程序的代码内联化
- 将冗长的子程序转化为类
- 使用简单的算法取代复杂的算法
- 将查询从修改操作中独立出来
- 合并相似的子程序,通过参数进行区分功能
- 将行为取决于参数的子程序拆分开
工程师的性格
- 聪明和谦逊
- 将系统分解是为了易于理解
- 进行复查是为了减少失误
- 将子程序编写的短小,以便逻辑更加清晰
- 通过规范,将思路从复杂的编程中解放出来
- 越是谦逊,进步就越快
- 充满求知欲
- 在开发过程中建立自我意识
- 多试验
- 行动前做分析和计划
- 学习成功项目的开发经验
- 诚实
- 不是高手时不要假装是高手
- 乐于承认错误
- 透彻理解自己的程序
- 提供现实的方案
- 交流与合作
- 首先和人交流,其次和机器交流
- 彼此信任,相互帮助
- 创造力和纪律
- 标准和规范不是约束
- 懂得纪律的人更值得尊重
严格要求,精益求精,才能做的更好,加油。