在过去的一周左右,我一直阅读马丁·福勒的《重构》,它主要讲的是如何对大型代码库进行彻底的更改,而不会导致所有东西都崩溃。我之所以提到这一点,是因为这本书中有很多非常好的笔记,它们挑战了我最近对审计和 大量 CSS 的重构 的方法。很多建议都很小,有点显而易见,但我意识到,最近我对于这些小而显而易见的建议在类似这样的项目中被忽略的程度感到懒惰。
马丁写道
…如果我不能立即看到并修复问题,我会恢复到我上次良好的提交,并以更小的步骤重新做我刚刚做的工作。这是有效的,因为我经常提交,而且因为小步骤是快速前进的关键,特别是在处理困难的代码时。
所以:经常提交,并且在每次提交中只做一件事。此外,在编码过程中不断测试这些更改。
另一件我开始更加注意的事情(感谢这本书)是,提交消息是宝贵的,因为它们帮助其他人理解更改工作的含义。我们都见过看似简单的提交消息,比如“重构排版”,结果却长达数千行,我们都会翻白眼。这只会导致错误被引入,视觉回归发生。更小的提交应该防止这种情况发生。一串好的提交消息应该感觉像你在与某人结对编程,就像你在一步一步地引导他们进行更改。

虽然我在这方面正在变得更好,但我发现这种工作方法极其困难,因为它感觉比进行大范围的更改并寄希望于最好要慢得多。马丁在他的书中鼓励我们克服这种感觉。当我们重构代码库的大部分时,他认为我们应该始终缓慢而稳定,耐心而自律。
你是否推荐这本书?对于大部分业务逻辑都在 php 中的人来说呢?
《重构》第二版有 JavaScript 示例,但所介绍的原则具有普遍性。它是我最珍贵的财产之一。它帮助我写出了更好的 JavaScript、CSS、Java 等。
这是一个很好的建议:以小增量提交。这不仅对重构有益,对构建大型复杂功能也有益。我经常会陷入不够频繁提交的陷阱,但只需要一次失去几个小时工作的经历,就会意识到缓慢而稳定才是前进的道路。