本帖最后由 Shaman_s 于 2014-5-16 10:20 编辑
活动日期 : 2014.1.7
活动名称 : 重构工作坊
活动地点 : Odd-e办公室
G+ : https://plus.google.com/events/c860h3hmh7v9g3d26sm0smqq958
一月七日举办了2014年GDG的第一场活动——“重构工作坊”,活动中两位教练带着我们学习了 1. 什么是代码重构 2. 什么时候需要重构 3. 怎么重构,有哪些代码异味 4. 怎么解决代码异味
重构
不影响现有接口
让代码更漂亮
小步进行
基于现有代码
持续重构
小范围
重写
没有测试来保证
会出现生产问题
学习很少
代码异味
代码太长 (10行)
长方法
重复代码
神奇数字
数据簇
lazy class
原生类型迷恋
死亡代码
调试信息
看不懂的名字
抽象干扰
如何破解
内联变量
提取方法
提取变量
产生领域对象
移动代码
修改方法签名
在解释定义重构以后,教练带着我们我们重构了一个大约三十行左右的一个方法,耗时近三个半小时。 该方法出自Github上面一个开源的项目。 (其中master是重构之后的代码,如果从原来的代码开始重构请checkout那个叫 start_point的tag)
接下来做Dojo练习 大家一起去重构一段代码,两人一组,每组5分钟,轮流重构。
地址为https://github.com/JosephYao/Kata-Tic-Tac-Toe(master就是没有重构过的代码)
最后学习了代码的设计原则遵循SOLID原则。
Single responsibility principle 一种变化的可能性
Open close principle 扩展开放 修改封闭
Liscov substitution principle
Interface separation principle
Dependency inversion principle 依赖反转原则
活动中被重构的代码
file:///C:/Users/FENGXI~1/AppData/Local/Temp/enhtmlclip/Image.jpg file:///C:/Users/FENGXI~1/AppData/Local/Temp/enhtmlclip/Image(1).jpg file:///C:/Users/FENGXI~1/AppData/Local/Temp/enhtmlclip/Image(2).jpg file:///C:/Users/FENGXI~1/AppData/Local/Temp/enhtmlclip/Image(3).jpg file:///C:/Users/FENGXI~1/AppData/Local/Temp/enhtmlclip/Image(4).jpg file:///C:/Users/FENGXI~1/AppData/Local/Temp/enhtmlclip/Image(5).jpg
|