这是我参与「第四届青训营 」笔记创作活动的的第8天。
你应该具有的研发素养
重视代码质量
代码中潜伏着的问题是会带来极大损失的,前有阿丽亚娜5型火箭爆炸损失千万,后有....有太多了
就拿我来说,我曾经在写渲染器的时候,做出来过这么一个东西,下方的反射的部分完全过曝了,上方颜色也错了。
我找了半天的Bug,发现是向量的逐分量相乘写成了点乘。
一个Bug就能花掉一个下午,甚至一天的时间。
这时候,提高代码质量是个最优的解答。
对于好的代码,需要具有明确的语义,能把代码当注释看是最好(所谓literal-programming哈哈哈)
有些条件必须得做到,比如说对于每个需求,都应该满足遍所有情况,测试边界需求;当需要功能变更时,好的代码不需要大的改动;出现异常时,报错应该简单易懂,方便定位,或者具有自我恢复的能力;甚至对于没有遇见的需求场景都应该能优雅的处理;更重要的,能够保障安全需求。
这样的代码构建出来的软件时值得信赖的。
可维护的代码
工程中应该具有统一的命名规范,代码格式,注释规范,比如都用驼峰命名法.....
工程目录应该清晰,代码应该模块化,组件化,具有良好的访问权限设置;任何代码都能轻松找到使用示例。文档应该齐全,可以运用自动化的测试手段。
对于使用的场景考虑充分,不至于每次都要推倒重来。
这里还有个圆圈复杂度的概念
Code Review
团队内应该开展代码评审,提前发现问题所在。
最好开展小型的代码评审,这样审查更快,适合快速返工。
被提评审意见也是学习的过程,需要正视。
代码重构
重构就是对软件内部结构的调整,提高可理解性,降低修改成本
对于重复代码,因该抽离出来,类型一般化
把一大段的函数改成多个小型的函数
把长调用链改成隐藏中间人调用
......