c# - visualstudio - vscode cvs
重构代码:什么时候做? (7)
有效地使用遗留代码是我在这个主题上看到的最好的书籍之一。
不要把这本书的标题放在一边 - 这本书不是将重构作为一种正式的概念(有它的位置),而是有很多很简单的“为什么我没有想到”的提示。 诸如“通过一个类并删除任何不直接在该类中实现并将它们放在另一个类中的方法”之类的事情。
例如,您有一个网格和一些代码来保持该网格的布局文件。 您可以安全地将布局持久代码移出到另一个类。
在http://www.refactoring.com/有一个专门用于重构的http://www.refactoring.com/ 。 它提供了许多关于重构代码主题的更多资源的参考,以及讨论重构相关问题的邮件列表。
最后但并非最不重要的是,有一个很大(并且仍在增长)的重构目录,它远远超出了Martin Fowler在(非常推荐的)重构书中所写的内容。
我刚收到Code Complete的副本,发现有一节关于此。
虽然我仍然会阅读已接受的答案书,但Code Complete教给我的内容大大改善了我对设计课程的思考方式。
在今天之前,我不知道ADT是什么(抽象数据类型),现在我知道如何开发遵循封装的类。
我推荐Domain Driven Design 。 我认为YAGNI和AlwaysRefactor原则都是两个简单化的。 关于这个问题的古老问题是我将“if(someArgument == someValue)”重构为函数还是将其保留为内联?
没有是或否答案。 如果测试代表商业规则,DDD建议重构它。 重构不仅(仅)关于重用,而是关于使意图明确。
杰夫阿特伍德撰写了一篇关于重构和代码味道的精彩博文 ,你可能想要检查一下。
在.NET中重构代码需要一些时间来解决。 您需要了解一些面向对象的设计原则 (或设计技术 )才能有效和mercilessly 重构 。
简而言之,您重构代码以消除代码气味并使更改更容易。 另外,不要过度。
查看Martin Fowler对Refactoring 的评论和书籍
- 在代码导致问题时重新考虑代码。 任何问题都会出现:性能,scallabillity,集成,维护 - 任何让你在应该花费更多时间的事情。 即使您不相信它是干净的或符合现代标准,它也不会破坏它。
- 不要花太多时间使代码完美。 你永远不会达到完美,但你可以花很多时间尝试这样做。 记住收益递减规律。
- 在实际处理依赖于它的功能时,项目内部只会重新考虑代码。 即如果您有用于迭代的用户故事调用“更改上载机制”或“修复文件上载中的错误”,您可以重新考虑文件上载代码。 但是,如果您的用户故事是关于“整理文件上传UI设计”,请不要进入业务逻辑。