我正在开发一个由另一个不再在这里工作的程序员开发的相当大的系统。
而且因为我是一个狂躁的连环杀手,他正在维护它并且知道他住在哪里。
但除了有趣的事情之外,该系统有点像一个类系统开发,有点不是,我已经设置了一个开发者版本并且可以很快地部署新版本。
- 您有关于部分迁移到新模型的任何提示(我无法进行完全转换,只是没有时间)
- 你推荐我可以留在系统中的任何类名(看起来不像黑客)但不会与当前类名(用户、数据、日志记录等)冲突
谢谢。
我正在开发一个由另一个不再在这里工作的程序员开发的相当大的系统。
而且因为我是一个狂躁的连环杀手,他正在维护它并且知道他住在哪里。
但除了有趣的事情之外,该系统有点像一个类系统开发,有点不是,我已经设置了一个开发者版本并且可以很快地部署新版本。
谢谢。
提示 #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 的“重构:改进现有代码的设计”
zend 有很好的命名约定: http: //framework.zend.com/manual/en/coding-standard.naming-conventions.html
他们为所有的类添加了 Zend_ 前缀,这就是他们避免与第三方类发生冲突的方式。
在我看来,每个大型项目都应该实现类似的命名约定,至少对于核心类是这样。