周五,对一个模块的代码做重构,这部分的代码,是采用Ext4以MVC的方式实现的,在修改代码的过程中,经历了两个阶段,从混乱到清晰,而从混乱到清晰的转变的关键是静下心,思考一下,画出代码的结构草图,整个过程,我使用下面的一个草图来表达
1.混乱
从图的上半部,可以看到 A、B两个Panel中分别拥有属于自己的Record, 而A和B属于同一个命名空间,所有对于record的处理,特别命名时,出现混淆、逻辑不清的现象,越改越乱, 这时候,我停了下来,静静地思考了一下!
对我自己说, 我应该跳出来,上升到一个新的高度。于是在旁边的笔记本上,画出这张图的下半部。
2.清晰
2.1 我在A和B的平级,建立package,名字为record
2.2 从A中,复制出record的文件,并在record的package中,复制新建Record文件
2.3 修改A中的record的所有引用到record的package中,当然也包括A中的Controller中对Record的引用
2.4 部署并测试A部分的功能
2.5 对于B,重复2.2至2.4的步骤
2.6 移除A和B中旧的record文件
2.7 重新部署并测试A和B的功能
2.8 最后提交代码
我认为,站在一个高度上,思考并画出结构草图,然后再使用正确的方法实现,是一种能够培养的高效的思维习惯!
知识的源泉是英文版《实现模式》,英文评注版《测试驱动开发》,英文版《重构》,由衷地感谢诸位大师!
![](https://i-blog.csdnimg.cn/blog_migrate/8f0fbc0876b2107f154350cd6f67c727.png)
1.混乱
从图的上半部,可以看到 A、B两个Panel中分别拥有属于自己的Record, 而A和B属于同一个命名空间,所有对于record的处理,特别命名时,出现混淆、逻辑不清的现象,越改越乱, 这时候,我停了下来,静静地思考了一下!
对我自己说, 我应该跳出来,上升到一个新的高度。于是在旁边的笔记本上,画出这张图的下半部。
2.清晰
2.1 我在A和B的平级,建立package,名字为record
2.2 从A中,复制出record的文件,并在record的package中,复制新建Record文件
2.3 修改A中的record的所有引用到record的package中,当然也包括A中的Controller中对Record的引用
2.4 部署并测试A部分的功能
2.5 对于B,重复2.2至2.4的步骤
2.6 移除A和B中旧的record文件
2.7 重新部署并测试A和B的功能
2.8 最后提交代码
我认为,站在一个高度上,思考并画出结构草图,然后再使用正确的方法实现,是一种能够培养的高效的思维习惯!
知识的源泉是英文版《实现模式》,英文评注版《测试驱动开发》,英文版《重构》,由衷地感谢诸位大师!