提示 #0) 现有代码真的很糟糕,还是不符合您的个人喜好?如果是前者,请继续阅读此列表。如果是后者,请深呼吸几次,至少花一两个月时间了解情况,然后再决定是否需要重新做。
提示 #1) 编码时,如果发现有问题,请修复它。这将花费更长的时间,但随着系统变得更加“固定”,它最终会给您带来生产力提升。如果您真的没有时间修复它,请帮自己一个忙并添加如下评论: //TODO: rejig thing so it does x 稍后,当您有时间时,只需在您的代码中搜索“TODO:”即可获取您需要做的事情的清单。你也可以给他们一些等级,比如“TODO-High”、“TODO-Medium”、“TODO-Low”。如果您使用 Eclipse 或 Zend Studio for Eclipse 作为您的编辑器/IDE,您可以在 Preferences->Tasks 中将其设置为自动查找和标记这些内容。
提示 #2) 如果您希望(最终)转换到 MVC,那么要做的一件重要事情就是将 HTML 与逻辑分开。这意味着使用模板。此任务可能需要很长时间,但一旦完成,您的其余过渡会容易得多。
提示 #3) 尝试建立约定。
示例:控制器和视图名称必须与 URL 对应,并且位于与 URL 对应的目录中。
编辑地点 1234 的 URL:/places/edit/1234
控制器文件:/htdocs/sitename/controllers/placesController.php
模板文件:/htdocs/sitename/views/places/edit.tpl
提示 #4) 阅读主要框架的“入门”教程:Zend、CakePHP、CodeIgniter/Kohana、Symfony。看看一个在你看来是否比另一个更好。问问自己为什么喜欢它。它对您有用吗,还是您需要推出自己的框架(值得怀疑)。如果可能,请使用现有框架。它已经过数百或数千人的错误测试,您可以节省时间!我自己喜欢 Zend Framework,它特别适合像你这样的“过渡项目”,因为你可以一次接受或留下它。我的意思是,你可以选择只使用 Zend 的 View 对象,或者只使用它的 DbTable 对象。您可以随意省略它。这意味着您可以按照自己的节奏逐渐过渡到 Zend 世界。 EZ-Components 的工作方式相同。
提示 #5) 通过扩展它们来包装你使用的类。例如,我使用 Zend_Acl,但实际上使用的是我自己的扩展 Zend_Acl 的 Acl 类。这有两个关键含义:
a) 我可以在不更改代码的情况下将 Zend_Acl 换成其他东西,因为它都指的是普通的旧 'Acl'
b) 我可以修改 Zend_Acl 的工作方式以满足我的特定需求,因为我可以在我的“Acl”类中覆盖我喜欢的任何方法。
提示 #6) 尝试获得管理层的支持。向他们解释重构实际上会为他们省钱,因为它会提高代码的一致性和可理解性,这有助于减少缺陷的数量,并使它们更容易被发现和修复。
提示 #7)尝试阅读有关该主题的书籍,例如 Martin Fowler 的“重构:改进现有代码的设计”