最近读了 A Philosophy of Software Design,看到它提出 strategic programming 和 tactical programming 的区别,联想到了自己最近两个月大战 legacy codebase 的感受。

开发新 feature 时接触的代码几乎都可以重构,其中几个 module 甚至到了不重构就无法继续维护的地步;而打开 commit history 一看,满满的都是 tactical programming 的痕迹:不去解决源自 design 或是需求变化的问题,而试图写出五花八门的 workaround,「能用就行了」。

从个人经验来看,很少有 deadline 是真的一刻不能延误的。我们还是应该尽量 strategic 一点,不仅对之后的开发者更友好,许多时候其实也能提高自己的开发效率。

Comments

Be the first to add a comment