长方法之恶在于以下几点:
- 它们难以理解
- 它们难以更改
- 它们难以重用
- 它们难以测试
- 它们的内聚性低
- 它们可能有高耦合度
- 它们往往过于复杂
如何说服你的同事编写短小的方法?(禁止使用武器 =)
问题来自敏捷开发者
长方法之恶在于以下几点:
如何说服你的同事编写短小的方法?(禁止使用武器 =)
问题来自敏捷开发者
请让他们为这些方法编写单元测试。
当我听到有人说“编写简短的方法”时,我会立刻反感,因为我遇到过太多由认为理想方法只有两行长的人编写的意大利面条式代码:一行执行最小可能的工作单位,然后一行调用另一个方法。(你说长方法不好理解?试着走进一个每个琐碎操作都生成50层方法调用堆栈的项目,并试图弄清楚哪一层是需要更改的...)
另一方面,如果你所谓的“短”,指的是“自包含且限于单一概念函数”,那我完全支持。但请记住,这不能仅通过代码行数来衡量。
此外,正如tydok所指出的,用蜜糖比用醋更能吸引人。试着告诉他们为什么你的方式是好的,而不是告诉他们为什么他们的方式不好。如果你能做到这一点,而不做任何明显的比较或提到他们或他们的做法(除非他们特别问你的想法如何与他们正在做的事情相关),那效果会更好。
你已经列出了缺点清单。试着列出使用简短方法可以获得什么。给出具体的例子。然后再次尝试说服他。
编写代码时,要像维护它的人是一个暴力精神病患者,他知道你住在哪里。
根据我的经验,说服同行的最好方式是以身作则。只需找到机会展示你的代码,并与他们讨论短函数和长函数的优点。最终,他们会自然而然地意识到什么更好,而不需要让他们感觉自己是“糟糕”的程序员。
代码审查!
建议您尝试进行一些代码审查,这样您可以开展一个小型讲习班,分享最佳实践以及公司所遵循的格式规范。通过这种方式,可以更好地理解短方法是如何使代码更易读、更易理解,并且符合单一职责原则。
不确定这句伟大的名言出自哪里,但是:
“调试比一开始编写代码难两倍。因此,如果你尽可能聪明地编写代码,那么按照定义,你就不够聪明去调试它。”