30 | 理论四:如何通过封装、抽象、模块化、中间层等解耦代码?
29 | 理论三:什么是代码的可测试性?如何写出可测试性好的代码?
28 | 理论二:为了保证重构不出错,有哪些非常能落地的技术手段?
27 | 理论一:什么情况下要重构?到底重构什么?又该如何重构?
26 | 实战二(下):如何实现一个支持各种统计规则的性能计数器?
25 | 实战二(上):针对非业务的通用框架开发,如何做需求分析和设计?
24 | 实战一(下):如何实现一个遵从设计原则的积分兑换系统?
23 | 实战一(上):针对业务系统的开发,如何做需求分析和设计?
22 | 理论八:如何用迪米特法则(LOD)实现“高内聚、松耦合”?
21 | 理论七:重复的代码就一定违背DRY吗?如何提高代码的复用性?
20 | 理论六:我为何说KISS、YAGNI原则看似简单,却经常被用错?
19 | 理论五:控制反转、依赖反转、依赖注入,这三者有何区别和联系?
18 | 理论四:接口隔离原则有哪三种应用?原则中的“接口”该如何理解?
17 | 理论三:里式替换(LSP)跟多态有何区别?哪些代码违背了LSP?
16 | 理论二:如何做到“对扩展开放、修改关闭”?扩展和修改各指什么?
15 | 理论一:对于单一职责原则,如何判定某个类的职责是否够“单一”?
14 | 实战二(下):如何利用面向对象设计和编程开发接口鉴权功能?
13 | 实战二(上):如何对接口鉴权这样一个功能开发做面向对象分析?
加餐二 | 设计模式、重构、编程规范等相关书籍推荐
12 | 实战一(下):如何利用基于充血模型的DDD开发一个虚拟钱包系统?