当前位置: 首页 > 编程笔记 >

PHP代码维护,重构变困难的4种原因分析

何烨华
2023-03-14
本文向大家介绍PHP代码维护,重构变困难的4种原因分析,包括了PHP代码维护,重构变困难的4种原因分析的使用技巧和注意事项,需要的朋友参考一下

本文分析讲述了PHP代码维护,重构变困难的4种原因。分享给大家供大家参考,具体如下:

代码维护,重构是件很令人不爽的一件事。以下几种情况,会让代码维护和重构变得很困难。

1. 项目开始时,大家规定好一些代码规范,在一定的规范下进行开发,但是人的思想是不一样的,也就是说每个功能不同的人实现的逻辑可能会有这样那样的不同,导致了一些人不愿意去看别人代码,要改别人代码,首先要了解这个人当时是怎么想的,他的逻辑是怎么样的。所以有很多人的想法是有那看别人代码的时间,我就重新做好了。这种想法不要有,看别人代码也能学到不少东西。如果都这样想,我想冗余代码会越来越多,后期重构会变的越来越困难。

2. 做程序的一般跳槽都比较频繁,项目开始的时候,是5个人(项目创始人)开发的,等项目上线了,可能有人离职了。人手不够,公司招人。项目创始人呢,对新招的人,不太信认,怕修改原代码会导致上线的功能出问题,所以就出了新规定,最好不要修改上线过的程序,如果需求变动,最好重新写class或者是function,这样的话,代码会变的越来越多。可能会出现几个class都差不多,或者多个function的功能差不多。

3. 数据库冗余字段,冗余表过多,也会让代码维护变的十分困难。因为功能优化,或者新需求,导致原有表结构根本不能满足新需求,这个时候,就会去表里添加字段,或者挂接另一个表,长期以往,数据库变的很臃肿,数据库一大,代码肯定就不用说了,程序都是围绕着数据来的,冗余字段,冗余表都要维护的,不然数据就不统一了。必要的冗余可以减少数据库查询,如果过多,只会事得其返。所以在修改数据库时更要考虑清楚,考虑将来数据库和代码要重构的情况。

4. 个人原因是最主要的原因,首先要有分块思想,也可以说是oop思想,这种思想是在实战中养成的,这个是要一定时间的。不要为了急着去实现功能而忽视了整体考虑。假如来了一个新需要,我会首先考虑怎么实现这个需求,有了思路后,我也不会急着去开发这个功能,我还会在考虑这个功能模块,会不会用在其他地方?如果其他地方用,怎么样让其他地方用着更方便。我会让所以调用这个功能模块的地方,接口只有一个。然后我才会着手去开发。还有一点,不要相信需求定下来就不会变了,不会的。人的想法很多,开发代码的时候,这一点也要考虑进去,所以统一的接口在需求变动时,我只要修改一个地方,其他地方都可以改掉。如果这样考虑了,前期开发时,时间会多一点,但是后期维护就快很多。

小结一下,有了上面4点,重构数据库,重构代码将是必然的

1. 人的思想不可能一样,大家都在尽量往一处想,但是总会有这样,那样的不同。
2. 急于要完成功能,而不深入了解别人代码。研究别人代码不如重新开发快,这种思想不好。
3. 数据库冗余,这个我个人觉得必然会出现的,一个项目做大,做强,一定是在不断的成长,成长过程中,数据库不可能是一成不变的。
4. 缺少分块思想,我觉得一个项目,就是很多功能独立的小块通过一定线串起来的,代码重构也就是把这些小块的重新组合,当然各个小块,在重构前后实现的功能会不一样,但它还是为了实现一定的功能,只不过由旧变新而已。

上面的几点是我在开发项目过程实际遇到的,欢迎大家补充。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基本语法入门教程》、《php面向对象程序设计入门教程》及《php优秀开发框架总结》

希望本文所述对大家PHP程序设计有所帮助。

 类似资料:
  • 我正在处理的代码有一些编码问题。接收到一个加密字符串,该字符串用ISO-8859-1解码。然后将该字符串放入具有UTF-8编码的DB中。检索该字符串时,它仍然是ISO-8859-1,没有问题。问题是,我还需要能够检索这个字符串作为UTF-8,但我还没有成功。 我尝试将字符串从ISO转换为UTF-8时,从DB检索使用此方法: 不幸的是,在这种情况下,特殊字符只是显示为问号。 原始字符串:测试从DB检

  • 问题内容: 不确定这是否是编程问题。我开始怀疑是这样的…但是后来我在Windows控制台而不是Cygwin控制台中运行了有问题的Java程序(可执行jar)…并且运行良好:输出重音很好,接受重音输入也很好。因此,以下内容仅适用于Cygwin控制台。 我正在处理一些法语文本。当打印带重音符号的字符()时,将打印一种“哈希框”。我在这里看到了另一个问题,但是没有给出解决方案或适当的解释。 当我输入带重

  • 阅读优秀开源项目源码是提高能力的重要手段,营造舒适、便利的阅读环境至关重要。 4.1 语法高亮 代码只有一种颜色的编辑器,就好像红绿灯只有一种颜色的路口,全然无指引。现在已是千禧年后的十年了,早已告别上世纪六、七十年代黑底白字的时代,即使在字符模式下编程(感谢伟大的 fbterm),我也需要语法高亮。所幸 vim 自身支持语法高亮,只需显式打开即可: " 开启语法高亮功能 syntax enabl

  • 问题内容: 我正在尝试使用递归和BigIntegers进行阶乘,但是eclipse抱怨BigInteger。我知道该程序应该很简单,但是却让我头疼。这是代码。 问题答案: 不支持使用比较和使用。相反,您必须调用类的适当方法(和)。 另请注意,存在和。 最后, 返回类型 你的方法应该是,不。是否要指定 参数 的类型或由您自己决定。

  • 本文向大家介绍让代码变得更易维护的7个Python库,包括了让代码变得更易维护的7个Python库的使用技巧和注意事项,需要的朋友参考一下 随着软件项目进入“维护模式”,对可读性和编码标准的要求很容易落空(甚至从一开始就没有建立过那些标准)。然而,在代码库中保持一致的代码风格和测试标准能够显著减轻维护的压力,也能确保新的开发者能够快速了解项目的情况,同时能更好地全程保持应用程序的质量。 使用外部库