作为程序猿,大家都(曾经)有这样的感受,阅读别人的代码很困难。而事实上,阅读自己的可能也很困难,尤其时间相对久远的代码。 究其原因,无外乎注释少,代码"繁乱"。大多情况下并不影响程序运行,但一旦需要进行功能升级等涉及代码改动时,就会耗时耗力。所以,编写代码,尤其是可能会在后期不断进行迭代的。我们应该手写写人能(容易)看懂的代码,其次才是机器能运行的代码。
相信大多数程序猿都有“艺术家”的特质,都想成为更好的程序猿,但为什么会写出糟糕的代码呢?是想快点完成?赶时间?有可能。 可能手里的工作任务较多,总想完成手头的,马上去做下一个。想着程序先跑起来,之后再改。然而新的需求又来了,只能在无暇整理的代码上继续修修补补。永远记住:“修改无小事”。因为在很难理解设计者意图的情况下,修改会制造更多的混乱。`
如何才能写出整洁的代码呢?主要可以从以下几方面着手:
有意义的命名
- 除非是类似for循环内的计数器i,否则名称应该能表述其意义;
- 名称不要有歧义;
- 不要用大家不熟悉的缩略词,除非有相同的文化背景(公认)。
函数
- 第一规则:“短小”;
- 函数应该做一件事。 做好这件事,只做这件事;
- 好的函数命名,能较好的解释其意图;
- 参数尽量避免超过3个,除非有足够的理由。
注释
- 除非代码本身不足以解释其行为,才会有注释。
- 好的注释,包括对意图的解释、警示、TODO、强调重要性等
格式
- 格式化的代码更易于阅读
- IDE工具可以帮助程序员完成大多数格式化问题,同一开发组应使用同样的方式
- 相关性高的函数(或代码块)要尽量放在一起
对象和数据结构
- 对象暴露行为,隐藏数据
- 数据结构中不要掺杂业务行为
错误处理
- try-catch-finally
- 自定义业务异常,加强出错控制
类
- 类应该短小。 单一职责、内聚、
系统
- 防御式编程。任何调用者都是恶魔,不要指望它的输入都是合法的。
- 使用大概可工作的最简方案。 避免过度设计。