有一些官方的说法,但过于抽象不好理解。比如:
Bjarne Stroustrup,C++之父:
1. 逻辑应该是清晰的,bug难以隐藏;
2. 依赖最少,易于维护;
3. 错误处理完全根据一个明确的策略;
4. 性能接近最佳化,避免代码混乱和无原则的优化;
5. 整洁的代码只做一件事。
Grady Booch,《面向对象分析与设计》作者:
1. 整洁的代码是简单、直接的;
2. 整洁的代码,读起来像是一篇写得很好的散文;
3. 整洁的代码永远不会掩盖设计者的意图,而是具有少量的抽象和清晰的控制行。
而通俗的说法就是
1. 平时把各种代码堆砌在一起,出BUG时定位问题就像“大家来找茬”。
2. 为了一个小需求,要在无数地方小心翼翼各种微调,还被产品经理嫌弃改的慢。
3. 辛辛苦苦写好的代码,被别人在其他地方不经意地修改,给弄崩溃了。
4. 我喜欢的一名博主叫“海贼直译的老法师”,好多程序员做的是需求的直译,缺少抽象、缺少设计。
具体特征及解决方式
1. 复杂函数
特征:代码行多、分支嵌套深、复杂度高
影响:不易理解和维护,代码冗余
解决办法:有意识的去分解提炼小函数、独立的功能函数,甚至当感觉需要写注释来说明的时候,就代表该独立了。函数建议:代码行不超过24,if语句嵌套深度6,圈复杂度10
2. 数据泥团
特征:参数太多
影响:影响编译效率,难以阅读和理解
解决办法:将参数封装为对象
3. 不必要的引用
特征:未使用某个dll却添加了引用
影响:编译速度慢,不必要的报错