博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP旧系统基于命名空间重构经验
阅读量:7073 次
发布时间:2019-06-28

本文共 575 字,大约阅读时间需要 1 分钟。

命名空间其实只是一个形式,最终目的是重构代码,但这个过程想要一蹴而就是不可能的。

一开始给了一个伪命题:基于ThinkPHP的重构(不要问为什么)。经过一段的实践,发现这是一个大错特错的思维方式,其中遇到的坑在此略过不表。

首先,不要想着全盘基于命名空间重写,而应该是基于局部的。

最终思考后的结果,是以Model层基于命名空间改造为目标,这样可以在新的框架下重用系统中Model层资源。因为理论上Model层只与数据打交道,耦合度最低。

但改造过程也发现一些问题,原来的Model层耦合了业务逻辑,甚至与session、cache等系统环境挂钩,不是纯粹的Db操作,而是含有很多业务代码,这意味着这一部分的代码在初步改造完成后,是无法在新框架中重用的。

这些存在问题的地方,也间接证明了一些基础编程思想的正确性:OOP的本质是代码重用;PSR系列规范对于提高代码重用度的直接作用;代码分层合理性对于代码维护性的影响等;全局变量对代码重用性的极度负面影响。

什么是逐步重构?

逐步重构的基本原则是兼容,不是推翻重来,只要事情变成了推到重来,就不是重构,简直就是重写了。在创业小团队,推到重写,are u kidding me?

兼容是重构的起点和过程,重用是结果;新的功能可以基于新的框架开发,但同时可以在平台内部重用已有功能代码,所以这是一个过程。

转载地址:http://uiuml.baihongyu.com/

你可能感兴趣的文章
mac 终端 常用命令
查看>>
2016年人工智能产业梳理:一朝引爆,稳步前进(下篇)
查看>>
django 1.8 官方文档翻译:5-1-2 表单API
查看>>
区块链将会怎样颠覆Google、Amazon、Facebook和Apple?
查看>>
VR直播很火,但能取代传统电视直播吗?
查看>>
[转]区块链代码快速学习实践
查看>>
QuickBI助你成为分析师——计算字段功能
查看>>
《王牌特工2》情景再现,Youbionic推出可穿戴式机械手
查看>>
雪城大学信息安全讲义 五、竞态条件
查看>>
干货分享:MySQL之化险为夷的【钻石】抢购风暴
查看>>
量子通信能否跨越“死亡之谷”?2017年市场化的量子通信产品可能产生
查看>>
有序顺序表合并
查看>>
设计模式-观察者模式
查看>>
Spring4-自动装配Beans-按属性名称自动装配
查看>>
精通比特币系列---挖矿与共识
查看>>
to use extended Windows dialogs
查看>>
3A级VR游戏将至?汪丛青力挺G胖正在开发的三款VR游戏
查看>>
Mongodb 3.2 Manual阅读笔记:CH9 存储
查看>>
关于同一线程两次调用EnterCriticalSection的测试
查看>>
说说网络通信模型
查看>>