Maslow的代码审查金字塔

2021-04-06 23:55:25

如在Maslow' S金字塔中,每层都需要前一个。对于为错误的客户提供可读的代码是无用的。

正确:代码是否会做它的&#39所应该是什么?它处理边缘案例吗?它是否充分测试,以确保它即使在其他工程师修改它时也保持正确吗?这对这个用例是足够的吗?

安全:代码是否有漏洞?数据是否安全地存储?是否正确处理个人识别信息(PII)?代码可以用来诱导DOS吗?输入验证是否足够全面?

可读:代码是否易于阅读和理解?它是否明确了业务需求是什么(代码被写入人类,而不是计算机)?测试简洁吗?是否适当命名的变量,函数和类?域模型是否齐全地映射现实世界以减少认知负荷?它是否使用了一致的编码约定?

优雅:代码是否利用了众所周知的模式?如果没有牺牲简单性和简洁的情况,它是否需要做什么?你会在这个代码中工作吗?你会为这个代码感到骄傲吗?

altruist:代码会比它更好地离开码段吗?它是否激发了其他工程师的代码?它是清理未使用的代码,改进文档,通过小规模重构引入更好的模式吗?

更新18日:有关Reddit的一些很好的评论。我删除了大重构的概念,因为我认为小的重构具有更高的成功概率。我还添加了关于为什么分层事项的评论。