我已经分配了识别重构项目的任务。目的是查看表示层代码并确定是否存在任何业务逻辑编码。然后确定需要转移到服务/业务层以及剩余的演示文稿。 我在设计中看到的代码似乎没有使用任何设计模式;有几乎没有任何或无用的评论的单片块代码。对于我如何能够完成这项任务有什么建议 - 哪些方法有效?重构 - 开始的地方
目前我正在尝试反向工程,并了解哪些似乎是实现此任务的难办法。 此活动的目的是重用业务逻辑。
我已经分配了识别重构项目的任务。目的是查看表示层代码并确定是否存在任何业务逻辑编码。然后确定需要转移到服务/业务层以及剩余的演示文稿。 我在设计中看到的代码似乎没有使用任何设计模式;有几乎没有任何或无用的评论的单片块代码。对于我如何能够完成这项任务有什么建议 - 哪些方法有效?重构 - 开始的地方
目前我正在尝试反向工程,并了解哪些似乎是实现此任务的难办法。 此活动的目的是重用业务逻辑。
从构建安全网开始 - 为现有类和方法编写单元测试,以证明它们的正确运行。如果你成功了,你可以一次重构一次,并且仍然可以随时通过单元测试。
单元测试需要对你的部分有深入的理解,当你重构某些东西的时候它会派上用场。
做一小步:重构,测试,重复。
另一个想法是尝试和介绍接口,你可以。如果您能隔离客户,这些将作为更改的火灾时段。
获得一个支持重构的好IDE。如果你正在编写Java,我建议使用IntelliJ。这是最好的IDE,它支持重构。
这个答案的更多信息在这里http://en.wikipedia.org/wiki/Characterization_test – PeskyGnat 2012-04-17 12:28:24
从桑德罗·曼库索[1]
开始建设从最短测试这个漂亮的视频最深的分支提取。
开始重构从最深到最短分支,
[1] http://www.youtube.com/watch?feature=player_embedded&v=_NnElPO5BU0#!
而且,为了指导您重构的地方,请考虑一下责任:“此代码是否负责执行/知道另一段代码”?
我的第一个念头 - 从Steve Mcconnell读取“代码完成” – 2012-04-17 12:25:58
@LudwigWensauer,毫无疑问,*代码完整*是推荐阅读的一般内容,但这里特别需要的是[*有效地使用遗留代码*](http ://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052)Michael Feathers。 – 2012-04-17 12:30:02
@PéterTörök:你说得对。我把它们混合起来 – 2012-04-17 12:33:03