上周给team做了关于cleancode的workshop。有同事问我,cleancode是不是就是编码规范。我说当然不是了。
要写出cleancode,我认为要从下面几个方面入手:
- 代码的微观方面,比如要有好的naming、代码的自注释性、足够小的函数等
- 宏观的代码结构,包括设计原则(SOLID设计原则等),设计模式等
- 人与代码的关系,如TDD、ATDD。。。
- 软件过程中的人与人的关系,比较scrum提倡的一些activity
当然Uncle Bob的cleancode主要在前三个点进行了描述。
说回编码规范,其实cleancode并没有明确定义编码规范。个人认为编码规范是一个team写代码的共同约定,而且应该是个动态的东西,随着技术的进步和team的成熟而不断变化。
如果team使用的编码环境(工具)比较智能,对应编码格式的要求就可以比较少;如果team的编码能力比较强,编码规范就可以比较有弹性。而且随着team的成熟,编码规范也要不断更新,剔除些比较‘死’的条条框框。