烂代码是怎样炼成的?

Exercise

需求

烂代码是怎样炼成的?

Junior

  • 程序员缺乏经验
  • 糟糕的架构设计
  • 不合适的技术选型

Junior

Senior

Senior

Senior

多沟通,可以避免大部分的问题

 

然而,如果没能避免掉呢?

 

Refactoring

重构的定义

  • noun: 对软件内部结构的一种修改,在不改变软件外观行为的条件下,使之更易于理解和修改。
  • verb: 在不改变软件外观行为的条件下,通过运用一系列的重构技术重新组织软件的结构。

重构的理由

  1. 可以改进软件的设计
  2. 让软件变得易于理解
  3. 可以帮助你发现bug

重构的时机

  • 闻到bad smell时(e.g. DRY)
  • 添加新功能时
  • 需要修复bug时
  • 代码review时
  • 想更好地理解代码时

重构,bad smell和clean code的关系

  • 目的:clean code
  • 手段:重构
  • 信号:bad smell

对legacy系统的重构方法

Exercise

  • 对GildedRose重构并添加新功能

重构是否适用于所有场景?

什么时候不应该重构

  • Deadline
  • 推倒重写
  • 学术目的

Thanks

Q & A

Refactoring

By melonq

Refactoring

  • 344