读完《重构——改善既有代码的设计》,感觉写得真是非常得好,非常的细腻而且深入,建议还没有读过的找时间读一读,肯定受益良多。
之前写程序也总是不停的重构、重构,读完这本书之后才发现对于重构的理解以前是很肤浅的,很不成体系的。《重构》真是一本好书!
下面粗略地概括一下对重构的理解,也整理一下之前不是很清楚的概念。
1、《重构》有一个很好的动机,也可以说是价值观,就是程序第一是写给人看的,而不是写给机器看的。
根据这一价值观,其他多种利益纷至沓来,比如当程序有了良好的可读性和可理解性,程序中隐藏的Bug便很容易浮出水面,开发进度也更加顺畅,并且对于系统将来的结构变更和扩展,程序也更加具有灵活性。
2、《重构》与《设计模式》的关系,在《设计模式》和《重构》中都有提出“设计模式为重构提供了目标”,在之前对这句话的理解总是朦朦胧胧,觉得有道理但又不是很深刻,现在觉得有两个词非常的关键:目标和目的。
设计模式为重构提供了目标,但不是目的。
设计模式是经过证实的在一定场景下解决一般设计问题的解决方案的核心,通过设计模式我们很好得解决了某种问题,并且便于我们思考和交流,降低沟通之间的理解误差,此外同样重要的,设计模式增强了可复用性,便于将来扩展和维护。
而重构是对程序内部结构的一种调整,其目的是在不改变“软件之可察行为”的前提下,提高其可理解性,降低其修改成本(《重构》的名词性定义)。
所以如果我们把软件开发比作在大海中航行,设计模式就是遍布在大海中的航标,他可以引导我们驶向目的地——高可读性、可理解性、可扩展性、可维护性。所以设计模式是重构的目标(航标)而不是目的,设计模式可以帮助我们更好更快的抵达目的地(准确地说是无止境的),而避免触礁或偏离航向
3、重构和优化,在之前的开发中,优化的意识要比现在(看完《重构》之后)强的多,如果遇到在一个循环中可以做多个事情的时候,决定把每件事情分开放到单独的循环中是要鼓起很大的勇气的,而现在便可以轻松的决定,因为清晰的代码在需要性能优化时有更宽的道路可以选择,并且往往这种决定不会造成真正的性能影响。
分享到:
相关推荐
《重构-改善既有代码的设计》是一本经典的软件开发著作,由Martin Fowler著述,旨在指导开发者如何通过重构来提升代码质量、可读性和维护性。重构是软件开发过程中的一个关键环节,它不是简单的修改代码,而是系统地...
《重构-改善既有代码的设计》是一本经典的软件开发著作,由Martin Fowler撰写,它深入探讨了重构这一关键的软件工程实践。重构是提高代码质量、可读性和维护性的重要手段,通过对现有代码进行一系列微小的改进,而不...
【美】马丁福勒 著 是国际著名的面向对象分析设计、UML、模式等方面的专家,敏捷开发方法的创始人之一 重构_改善既有代码设计 软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄
重构 改善既有代码的设计笔记 网络转载,分享快乐
《重构:改善既有代码的设计》是由马丁·福勒(Martin Fowler)所著的一本经典IT著作,由侯捷翻译成中文。这本书详细阐述了重构这一关键的软件开发实践,旨在提高代码的质量、可读性和可维护性。在编程领域,重构是...
《重构:改善既有代码的设计(第2版)》是一本由马丁·福勒(Martin Fowler)编著的经典软件工程书籍,主要关注的是如何通过一系列微小的改变来逐步改进现有代码的质量,提升软件设计的可读性、可维护性和可扩展性。...
第5章 重构列表5.1 重构的记录格式每个重构方法都有如下五个部分:概要(summary)简单介绍此重构方法的适用情景,以及它所做的事情。动机(motivati
根据《重构 改善既有代码结构》一书,摘录重点整理分析得出的一个PPT,希望对大家有点帮助
重构:改善既有代码的设计 第一版以OOP为主 针对书本的核心部分6-11章做了思维导图可视化。 突然发现第二版上个月上市,直接下单了精装版,把这个坑填完我就自己去读第二版了哈哈 Link 第二版安利 为什么决定再版...
重构改善既有代码设计.pdf 是关于代码优化的重要资料。重构是提升代码质量的过程,通过改进代码结构,而不改变其外在行为。常见的重构技术包括提取函数、替换魔术数字、引入参数对象等,目的是提高代码可读性、可...
改善既有代码的设计。 参考 编写可读代码的艺术。 Google 开源项目的代码风格规范。 :memo: 后记 About 本仓库主要是总结的学习笔记。 笔记不是从网上到处拼凑而来,除了少部分引用书上和技术文档的原文,其余都是...
【计算机基础1】这个主题包含了四本非常重要的书籍,它们分别是《编程珠玑》、《编码:隐匿在计算机软硬件背后的语言》、《程序员思维修炼》和《改善既有代码的设计》。这些书籍覆盖了计算机科学的基础知识,编程...
- 《重构:改善既有代码的设计》:帮助程序员学会如何改进现有代码结构而不改变其功能。 2. **前端开发**: - 《HTML与CSS设计与构建网站》:适合初学者学习网页布局的基础知识。 - 《JavaScript高级程序设计》...
- 编码实践部分可以参考《重构:改善既有代码的设计》和《编写可读代码的艺术》。 - 代码风格规范建议参考Google开源项目的风格。 这份宝典不仅提供了复习的知识点,也强调了编码实践和正则表达式等实用技能的掌握...
例如,可能讨论了《重构:改善既有代码的设计》如何帮助开发者提升代码质量,或者《设计模式:可复用面向对象软件的基础》如何指导团队实现模块化设计。 课程中可能包含的PPT部分,会系统地梳理这些书籍的核心观点...