烂代码是怎样炼成的?
Exercise
需求
https://github.com/melonq/gildedRose-java
烂代码是怎样炼成的?
Junior
程序员缺乏经验
糟糕的架构设计
不合适的技术选型
Junior
Senior
Senior
Senior
多沟通,可以避免大部分的问题
然而,如果没能避免掉呢?
Refactoring
重构的定义
noun: 对软件内部结构的一种修改,在不改变软件外观行为的条件下,使之更易于理解和修改。
verb: 在不改变软件外观行为的条件下,通过运用一系列的重构技术重新组织软件的结构。
重构的理由
可以改进软件的设计
让软件变得易于理解
可以帮助你发现bug
重构的时机
闻到bad smell时(e.g. DRY)
添加新功能时
需要修复bug时
代码review时
想更好地理解代码时
重构,bad smell和clean code的关系
目的:clean code
手段:重构
信号:bad smell
对legacy系统的重构方法
Exercise
对GildedRose重构并添加新功能
重构是否适用于所有场景?
什么时候不应该重构
Deadline
推倒重写
学术目的
Thanks
Q & A
Made with Slides.com