Php 是否值得尝试为世界上耦合最紧密的站点编写测试?
想象一下,你90%的工作仅仅是在一个非常庞大、非常破碎的网站上对问题进行分类。想象一下,这个网站是用你见过的最紧密耦合、最缺乏内聚性的PHP代码编写的,这种代码会将原始开发人员添加到你的“一目了然”列表中。想象一下,这个web应用程序由4个完全不同的部分(1个商业部分、2个“重新调整用途”部分和1个自定义部分)以及大量虚拟管道胶带和垫片组成。想象一下,它包含一种编程实践,在这种实践中,网站的主要组件实际上依赖于工作不正常的东西,而修复这些坏东西通常会破坏其他东西。想象一下,你从太多糟糕的经历中了解到,改变网站的一个看似无害的部分,例如将“名称”字段拆分为两个单独的“第一个”和“最后一个”字段,将使网站崩溃,需要数小时的回滚、合并和修补。想象一下,多年来恳求客户放弃代码,重新开始,但却遭遇了企业级的绝望和绝望。然后想象一下,在任何其他网站上,获得ASAP/紧急通知单来实现新功能都需要4个小时,但你对这个网站更了解,所以你引用40个小时,然后就这样做了,并支付80个小时的费用,但这没关系,因为客户已经习惯了他们的网站 这里还有一些你也应该想象的事情:Php 是否值得尝试为世界上耦合最紧密的站点编写测试?,php,testing,cohesion,tightly-coupled-code,Php,Testing,Cohesion,Tightly Coupled Code,想象一下,你90%的工作仅仅是在一个非常庞大、非常破碎的网站上对问题进行分类。想象一下,这个网站是用你见过的最紧密耦合、最缺乏内聚性的PHP代码编写的,这种代码会将原始开发人员添加到你的“一目了然”列表中。想象一下,这个web应用程序由4个完全不同的部分(1个商业部分、2个“重新调整用途”部分和1个自定义部分)以及大量虚拟管道胶带和垫片组成。想象一下,它包含一种编程实践,在这种实践中,网站的主要组件实际上依赖于工作不正常的东西,而修复这些坏东西通常会破坏其他东西。想象一下,你从太多糟糕的经历中了
- 现在根本没有测试
- 谷歌有不同层次的登录。有些客户实际上在网站的不同部分拥有3个不同的帐户
- 当我说“紧密耦合”时,我的意思是include/require语句的循环可能会像凯尔特结一样映射出来
- 当我说“最不内聚”时,我的意思是有些东西是有组织的,有点像MVC,但它不是真正的MVC。在某些情况下,您可能需要几个小时才能找到URI A是如何映射到文件B的
- 用户界面写得像“突兀”和“不可访问”是当时的流行语
祝你好运 这听起来像是为了使其完全可测试,您必须从头开始重写系统的某些部分-在这个过程中不可避免地导致大量的错误 从你描述的情况来看,旧系统不值得投入这种努力 在任何情况下,我都不会尝试为此引入测试,但会尝试尽快获得重写的许可
如果你的客户没有看到光,考虑重构这个项目是否值得你自己花些时间:用干净的代码工作对你的幸福来说是更好的……维护过程中的耦合越紧密、bug越多,测试就越重要。在实践中,走开,过上新的一天
您可能在一段时间内无法获得全面保险。但您可以为实现的新代码/功能编写测试。从小处做起。不要试图同时做所有的事情 也许这本书值得一读 编辑 我还建议您观察哪些内容涉及到这个场景,以及如何使用“渐进式加宽”将一个糟糕的代码库转换为一个好的代码库 编辑2 首先查找任何自包含函数。只引用传入的参数的函数。将它们移动并组织到帮助器类中。这很可能只是暂时的,因为许多人最终会陷入困境