本站已关停,现有内容仅作科研等非赢利用途使用。特此声明。
查看: 1552|回复: 0
打印 上一主题 下一主题

【上海】重构工作坊

[复制链接]
跳转到指定楼层
1#
发表于 2014-1-12 14:58:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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


ChinaGDG.com
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表