Rom*_*man 3 refactoring coding-style
我发现自己重新审视了我的项目区域并再次对它们进行了改进.这通常发生在我从头开始的时候,因为我理解它更好,我的代码和技术变得更好,因此我回过头来做我已经完成的事情并使其更强大.这是正常的还是我只是缺乏经验?您多久重访一次代码?好的程序员写一次而不需要改变东西吗?
我同意其他人的答案,但这也取决于你编写代码的原因.如果这是截止日期的特定项目,您可能没有太多机会.如果它可能被其他人重用,请确保重构不会破坏他们正在使用的任何东西.如果它是一个长期项目,特别是一个公共项目,那么几乎可以肯定它需要大量的重构.
我已经写了一个公共图书馆大约13年了,经历了5个半修订(我正在经历的那个).在许多情况下,这是因为技术已经改进,我为自己做的事情我现在可以使用标准库.多年来,我学到了很多更好的策略.
一般来说,良好的重构通常意味着抛弃旧代码.
更新现代工具可以轻松自动执行大量操作(例如更改名称,包).专家建议方法很短,所以当你发现你的方法扩展到两页时,将它重构为较短的方法.但有些时候工具不会有帮助,你必须创建暂时被破解的代码.在这种情况下,请确保您(a)在工作版本上运行单元测试(b)提交它.很容易进入一个复杂的重构操作,并意识到你已经严重破坏它需要回溯.如果您的用户依赖您的代码,请确保继续提供他们知道的API.例如,假设您有一个名为的例程
Date date = getLastUpdate();
Run Code Online (Sandbox Code Playgroud)
and you decide (as I and many others have done) that java.util.Date is desperately broken. You decide to change to Joda DateTime it but during the process it will be tough. You probably need to set aside a time to complete it in a single pass. Do not change the API to
DateTime date = getLastUpdate();
Run Code Online (Sandbox Code Playgroud)
Create a new interface such as
DateTime date = getLastDateTimeUpdate();
Run Code Online (Sandbox Code Playgroud)
Then mark the original one as @Deprecated
You should not remove the earlier version until you decide to make a new release (changing APIs on a dynamic basis loses friends)
| 归档时间: |
|
| 查看次数: |
224 次 |
| 最近记录: |