工作代码是不够的:战略编程与战术编程的区别
1 引言
在软件开发的世界里,编写能够正常运行的代码只是第一步。真正优秀的软件设计不仅仅是为了让功能尽快上线,还需要考虑到代码的可维护性和可扩展性。本文将探讨两种常见的编程思维方式:战术编程与战略编程,并分析它们对软件设计的影响。
2 战术编程
大多数程序员在日常工作中倾向于采用一种称为“战术编程”的思维方式。在这种方法中,开发人员的主要目标是尽快让新功能或错误修复生效。乍一看,这似乎是非常合理的做法,毕竟,还有什么比编写能工作的代码更重要的呢?
然而,战术编程的问题在于它的短视性。开发人员为了尽快完成任务,往往会牺牲代码的质量。例如,他们可能会选择一种简单的解决方案,而不去寻找最优的设计。这种做法虽然在短期内看起来合理,但长远来看却会给系统带来诸多问题。
2.1 复杂性的积累
复杂性并不是由单一的重大错误引起的,而是由许多小的依赖性和不明确性逐渐积累而成。如果每个编程任务都引入一点点复杂性,这些复杂性会迅速累积,尤其是当所有开发人员都采取战术性编程时。以下是复杂性积累的一些典型表现:
- 依赖性增加 :代码之间相互依赖的关系变得更加复杂,导致修改一处代码可能会影响到多个模块。
- 不