1
4
然而,每当您需要对系统的某个部分进行重大修改时,从面向对象的角度来看这一点,并在适用的情况下移动现有代码可能是值得的。 |
2
3
在我正在进行的一个项目中(几乎相同的情况,甚至更多——大多数代码都非常糟糕),我使用了我称之为“wave风格”的技术。我使用的一般想法如下:
为什么要“挥手”?在一个大项目中,我不能坐着重写所有与客户相关的代码。所以我必须一步一步地做到。例如,我必须处理客户注册,用很少的属性扩展它。我已经创建了基本组件,将验证表单(检查登录名、电子邮件等)和添加客户的方法移到了那个里,所以这个页面以新的样式工作。我需要改进invoice页面,在这里我需要获得invoice owner的详细信息:我只需将方法添加到customer manager中,而不用直接查询。稍后编辑客户页面。。。它也可以称为“按需重构”或smth。 根据您当前的项目状态,可能会有其他内容。但这对我帮助很大。希望你会发现这些提示很有用。 |
3
3
在您更改任何内容之前: 创建一整套回归测试! 重构时,目标必须是首先保留功能,这样才不会直接影响客户机。
但是不管你有什么方法,你能创建的回归测试越多越好——这确实是你能确认你没有无意中改变某些东西的唯一方法。 |
4
1
在不知道任何代码的情况下,要回答这个问题是非常困难的(几乎是不可能的)。
|
5
1
我的建议是首先将业务逻辑封装到CFC中,而不是担心站点的整个表示层。 通过专注于业务逻辑,您将能够将最重要的功能引入CFC,并减轻维护的噩梦。在你现有的网站上“加入”这些氟氯化碳也不会太难。 在将尽可能多的业务逻辑引入CFC之后,您会注意到这个巨大的怪物已经被缩小到了一定的规模。此时,您可以决定如何处理站点的表示层。现在,您可以自由选择多种可用框架(CFWheels、FuseBox、ColdBox、Mode Glue)在表示层上进行移植。 或者你可以说“见鬼去吧”,然后从一开始就用CFWheels重写整个过程:) |
6
1
如果您不使用版本控制,请在执行任何其他操作之前先进行设置。能够从中断的重构中恢复过来是一个重要的救命稻草。在此之后,我同意已经发布的内容。你会想一次处理一小块——分而治之。 |
Glory Raj · 有什么方法可以使这两个块具有共同的功能吗 2 年前 |
Justin · Python自属性重命名 6 年前 |
Sabutobi · 长dict属性行的重构 6 年前 |
Falco Alexander · 简单LINQ重构/样式 6 年前 |
05bs001 · Euler 12需要优化 6 年前 |
slartidan · 如何将lambda表达式重构为方法引用? 7 年前 |
Alex · 在Java类中频繁使用与映射键相同的字符串[已关闭] 7 年前 |