专栏名称: 逸言
文学与软件,诗意地想念。
目录
相关文章推荐
程序员的那些事  ·  大翻车!特朗普手机吹 “美国造” 卖 ... ·  昨天  
程序员的那些事  ·  GitHub 第 10 ... ·  3 天前  
程序猿  ·  有了这些 VS Code 的 ... ·  2 天前  
玉伯  ·  感谢使用 ... ·  昨天  
51好读  ›  专栏  ›  逸言

重构的道法术器:探讨AI智能对工具的影响

逸言  · 公众号  · 程序员  · 2025-01-23 08:30

正文

请到「今天看啥」查看全文


本专栏讨论的重构内容都属于代码重构,因此它的优化和改进目标就是让代码变得“更容易理解,更容易复用,更容易扩展”,即提升代码的可读性、可复用性与可扩展性。
法是在探求“道”的过程中经过实践思考、归纳总结出的规则体系和方法原则。法以立本 ,是实现重构目标的规则和方法。Martin Fowler在《重构》一书中总结的重构手法(不含重构手法的具体操作步骤)是“法”的一部分;我在第4章总结的重构三要素,也可以认为是“法”的一部分;如果重构的代码使用了如Java、C#这样的面向对象语言,则基本的面向对象设计原则和设计模式,也可以称之为是“法”的一部分;由于重构需要单元测试做保护,为单元测试规定的FIRST原则也可以认为是“法”的一部分。
通过前面各章对案例实践的讲解,可以看出这些“法”是正确进行重构的基础,也是对具体操作的指导。例如,第5章和第6章先后介绍的迪米特法则与信息专家模式,很好地指导了类的职责分配,从而决定采用提取方法和移动方法等重构手法;又例如在第10章提到的“关注点分离”原则,它指导开发人员学会分辨关注点,将其分离为不同的职责,并采用提取方法、提取委派等重构手法;再例如第23章提到的“差异式编程”,它决定了继承的设计思路,指导我们在重构时,需要将和PriceCode有关的职责分离到单独的继承体系。
至于具体该如何运用这些“法”,就属于“术”的层次了。 术是在规则体系指导下的具体操作技术,只要“道、法”不变,“术”可千变万化。术以立策 ,如果不通过“术”将抽象的方法和法则转化为实际操作的过程,代码重构就无法落地。除了具体的重构步骤之外,第22章提出的“深度优先”与“广度优先”的结合策略,多种重构手法结合的策略,如内联与提取成员之间的配合,这些内容都是在“法”的指导下实施的具体方法,属于“术”的范围。






请到「今天看啥」查看全文