我从高级开发者身上学到的19条编码原则

编辑:陈萍
在代码中用一堆嵌套 , 花大量时间写出漂亮的代码但最后才发现无法运行 , 不给任务留缓冲时间…… 这是很多新手程序员都踩过的雷 。 在这篇文章中 , 一位全栈首席开发者总结了高级开发人员的 19 个编码原则 , 可以帮助新手少踩些坑 。
进行软件开发 , 整天敲代码、好不容易调试成功 , 但是代码的质量堪忧 , 可读性不是很高 , 反过头来还得对代码进行完善 。 也许这不是你的编码能力问题 , 很有可能在你进行代码编写时 , 一些看似不重要的编码注意事项没有遵守 。 这有一份高级开发人员经常遵循的 19 条原则 , 其中很多与实际编码无关 , 而是与流程以及如何处理任务有关 , 可能对你有帮助 。
我从高级开发者身上学到的19条编码原则文章插图
1. Rule Of Three 原则
这是一条代码重构的经验法则 , 用于决定何时将复制的代码段替换为新的代码 / 过程 / 方法 。
它的含义是 , 第一次用到某个功能时 , 你写一个特定的解决方法;第二次又用到的时候 , 你拷贝上一次的代码;第三次出现的时候 , 你要着手「抽象化」 , 写出通用的解决方法 。
该原则的主要思想是使代码 / 过程 / 方法更加通用 , 从而保证在其他地方可以重复使用 。
2. 应用程序结构与编码方式保持一致
应用程序结构与编码方式保持一致有助于提高其可读性和可维护性 。
尝试制定编码标准 , 这有助于保持编码一致性 。 编码标准应该与变量的命名规则一样少 。 另一大问题是应用程序的结构 , 开发人员进行更改或添加新内容的地方应该很明显 。
3. 减少程序嵌套
if 里面嵌套 if 会使得程序很混乱 , 代码很难读 。 在编写代码时可能无法绕开这些问题 , 但你需要经常查看代码结构 。
else if 同样如此 , 因此需要尽量避免嵌套 。
一种有效的解决方法是卫语句:卫语句把复杂的条件表达式拆分成多个条件表达式 。
不使用卫语句的编码方式:
使用卫语句的编码方式:
4. 了解全局很重要
了解全局有助处理较小的细节 。 一旦了解了全局 , 你就不会花很长的时间在小细节上 。
5. 程序中的命名
在编程中进行命名是最困难的事情之一 , 包括为一个类、一个方法命名 , 甚至是为变量命名 。 优秀的开发人员会花时间考虑相关的命名方式 , 这样会增加程序的可读性 。
6. 减少技术负债
技术负债指开发人员为了加速软件开发 , 在应该采用最佳方案时进行了妥协 , 改用了短期内能加速软件开发的方案 , 从而在未来给自己带来的额外开发负担 。 这种技术上的选择就像一笔债务一样 , 虽然眼前看起来可以得到好处 , 但必须在未来偿还 。 软件工程师必须付出额外的时间和精力持续修复之前的妥协所造成的问题及副作用 , 或是进行重构 , 把架构改善为最佳实现方式 。
对于技术负债问题 , 提高预估时间有助于解决这类问题 。 尽自己最大的努力写好代码 , 否则你将不断地进行代码完善 。
7. 提高预估时间
你会看到 , 高级开发人员总是给任务预留更多的时间 , 因为他们知道完成任务所需的时间总是高于预期 , 而且在评估阶段增加一个缓冲时间可以真正帮助你把事情做好 。
这确实有助于解决技术负债问题 。 如果你低估了任务完成时间 , 你就可能会因为时间不够而写出仅仅可以运行的代码 , 简洁性、可维护性就顾不上了 。
8. 文档和代码注释
文档和代码注释有助于保存上下文和共享知识 。 你会听到有经验的人一直在说 , 我们是否可以记录这个过程 , 或者代码审查失败 , 因为对接口之类的内容没有任何注释 。
9. 删除不需要的代码
许多缺乏自信的开发人员会注释掉大量的代码块 , 而不是选择删除 。 但是代码版本控制是有目的的!优秀的开发人员会删除应用程序中不好的代码 。
10. 花时间进行代码评审
优秀的开发人员会花更多的时间在代码评审上 , 代码评审的重要性包括:
更早地发现错误;
提高开发人员的技能 , 并让团队的其他成员参与到良好的实践中;
共享知识;
一致的设计和实现 。
最好的代码评审过程是:
【我从高级开发者身上学到的19条编码原则】对于一个风险较小的任务 , 1 名开发人员评审就可以;
中型 / 大型更改或者是有风险的更改 , 应由 3 名开发人员进行评审 , 其中须有一位是高级开发人员;
风险极高的更改或者是正在开发的应用程序的新部分 , 应该安排一次会议 , 3 名开发人员中至少有一位是首席开发人员 , 他们一起完成每条线并提出观点 。