title | date | categories | tags | toc | ||
---|---|---|---|---|---|---|
代码整洁与洁癖 |
2019-05-01 |
|
|
true |
我司强执行力,很容易把事情做得极致,但有时过于极致反而带来不好的意外结果。我参与了公司C/Java等编程规范的评审,但让我受不了的是编程规范中条款事无巨细。连运算符或关键字之间几个空格都要写入规范,太多关于格式、命名等条款。这种在代码格式上的洁癖,可能是见仁见智。但我司的特点是一旦形成规范,就会强行执行,先是考试,再是落入到项目中,像有几个空格这种拿来考试不是折磨人吗,能使用工具解决的为什么不去开发一个工具来提升效率,而不是死记硬背的规范。
Robert C. Martin
的《Clean Code》书是本非常接地气的多年开发经验总结,他告诉我们什么是好的代码,怎么去消除代码中“坏的味道”。如何才能写出整洁代码呢?总的原则无非是KISS(Keep It Simple Stupid):让代码简单直接,让阅读者可以很容易地看出设计者的意图。本书谈到了大量的小技巧和规则,遵循这些规则可以帮你写出更加的整洁代码。整洁代码力求集中,每个函数、每个类和每个模块都全神贯注于一件事。整洁代码简单直接,从不隐藏设计者的意图。
写出整洁代码并不是一定像处女座一样强迫,陷入代码洁癖症。代码洁癖与整洁相比,他们最终的目的可能不同,代码洁癖者往往多有强迫症,自我欣赏,它关注是代码的格式上的清洁,追求代码视觉上的感受,而不是追求代码逻辑上、可读性与可维护性上整洁。什么是洁癖症表现:
- 多余的空格、空行,见一个删一个
- 什么情况下应该留空格、空行,就会去增加
- 凡是没有注释,非得加上一个注释,连增删改查不例外,不管有没有意义
- 纠结字符串统一采用单引号或双引号
- 连常用无歧义的0或1数字等也得定义一个常量
- 局部变量命名也非常长,看起来非常明确的样子
- ......
整洁代码是为了代码更好的阅读与维护,做到代码表义上精确无二义性,逻辑上简洁高效;但切不要陷入一些可以通过工具自动化的感观上干净,以及一些无意义的风格上统一。