我们正在将我们的旧系统转换为更可管理的系统。
我们以某种方式设法转换为松散的基于mvc zend 2的系统的大多数东西,但很少......怪物仍然潜伏着。 例如,我们有一个功能,它基本上是一个巨大的html / php混乱。这是订单详细信息的最基本的一页。
代码结构就像这样
function(){
php alters
php inserts
html code
php code
htm/js code
php code...
html snipets in php variables...
pick a nightmare....
x 5000 times of 8000 lines of code
}
我知道我知道,杀了它,用火烧它...但我们不能。我们必须一步一步地清理它。
问题是:
有人有一个想法我们怎样才能把它作为一个渐进的过程而不是每个月发布一次该死的东西(scrum yaaay)并且不会在过程中杀死我自己?
我们使用smarty为控制器生成html输出和zend2模块。
我在考虑将整个该死的东西包含在输出缓冲区中并将其粘贴在一个聪明的变量中并逐渐将其从中拉出来。
任何输入都是欢迎或任何文献指针拉动spagety php / html分开(我发现了一些文档,但他们永远不会处理模板)
提前感谢您的任何建议:)
答案 0 :(得分:1)
首先,这个问题太宽泛了,你无法获得一个独特的好答案。地球上的开发人员有很多好的答案。他们每个人都会提出一个建议,一个指示,但你可能不会选择倾听他们,这可能只是向你保证你做出的决定。
对我来说(而且我的位置比你更复杂)。我做了另一个与我的旧代码通信的应用程序。他们之间有一座桥梁。我的旧代码继续按预期工作,我的新代码添加了一些功能或在它完成后替换它们。
我建议您将旧代码与新应用程序隔离,因为您不知道新代码在开发过程中会花多少时间。您无法承担风险,无法通过新的开发来破坏生产代码或引入新的错误。
我可以继续,并谈谈我的经验,但这不是StackOverflow的目的,就像我说你的问题太广泛了。
修改: 来自评论我引用
"我有很少的重构方法,但它们有点混乱。"
你明白我的观点。为了尊重标准,并避免在已经凌乱的应用程序中引入更多混乱,您必须分离您的开发。没有奇迹。它就像Zend Framework 2这样的框架的新版本。为什么我们使用semver?为什么我们使用版本控制和Break兼容性等...我们确实使用这些概念,因为我们不能以可维护的方式将过程应用程序或旧架构重构为尊重OOP方法,设计模式,MVC等等
我只询问一般指针
" Too broad"。
的定义但我同意你的意见,这需要5年,甚至更多......但你有工作!