看名字就知道这本书写的是重构和设计模式的关系,是连接两者的桥梁。
书一共不到300页,两周左右肯定能看完(每天看半个小时)
设计模式很早就看过,当初看的时候很激动,觉得代码太漂亮了,想怎么改就怎么改。
也尝试按照书中的例子写了一些代码,感觉很好。
曾经把它当成了“银弹”,正好又开始写框架,所以到处都是。。。。
然而,在使用的过程中确没有经受住实践的考验:
1)有些开始认为会频繁改的东西偏偏后来没怎么改动---导致有一些废功能和废设计,也就是“过度设计”
2)经常改动的偏偏是一些没想到的东西,虽然开始的时候客户信誓旦旦的说不会改。。。
3)有一些设计的很好,经常改动,改动起来很简单----但是 比例小,并且我自己心里清楚:完全是模式用得太多蒙上的,设计的时候没想这么多
这让我很沮丧,这么好的东西怎么用不上呢?
难道真要一个简单的hello也要用设计模式么?那如果后期不改怎么办?开始开发的时间浪费了可以忍受,但是看代码的人很痛苦啊。。。。
怎么办?自己这种水平连基本业务都理解的不深,怎么能知道哪容易变?即使业务了解的很深,也不能完全预知吧?
后来学习了重构,看了那本最经典的《重构-改善既有代码的设计》,开始没事就重构自己的代码--但通常局限于改名、抽方法或类。
也只是把这当成打扫代码的方式--清除一些表面的问题。
曾经也考虑过两个结合:
大体设计+持续重构
但设计到什么程度?是不是不设计,直接重构呢?答案当然是否定的。
其实最难的就是不知道设计到什么程度?
如何知道 重构的工作量/风险和设计的关系呢。
我个人认为的公式是 总工作量 = 设计阶段*设计程度+维护阶段*重构难度 (个人目前的想法)
而重构难度又和设计程度相关。
这就比较复杂了,而实际作业中的复杂度更高,不是一个公式就能解决的
希望这本书能够起到一个指导作用,或者给个思路也可以。
这本书和重构那本书都是讲重构的,区别或者说侧重点有什么不同呢?
以目前的理解来看:
重构一书讲的是使用工具等来去除代码的坏味道。而这本书侧重讲的是用设计模式+重构手段来改善代码,并且改善最初的设计--也就是书中所说的“趋向性设计”。
关于设计模式,本书中提出的一点很值得思考:
团队的水平参差不齐,有些人可能看用设计模式写出的代码比那种直接的代码更困难,怎么办?
书中的说法和我的比较一致----提高团队人员的水平。
很多事情都是这样的,短期看引入一种新的东西可能还不如旧有的方式来的更直接,更有效率,但从长期看肯定更好。
这就需要平衡学习成本和带来的收益之间的关系。
能循序渐进,旧有的新的东西共存,慢慢转化是最好的,但如果不行,就需要衡量和判断了。
把握这个度是困难的,但这也是作为管理者和架构师最重要的能力。
作为执行者来说,迅速接受和转化的能力是最重要的,我想这就是“学习能力”吧。
关于重构的意义,DDD里面的一张图很能说明问题(下面的是我自己画的。。。)
红点是一个突破,而要达到这个红点,需要前面不断的小的重构。也就是量变引起质变。
到达红点后,回头看领域模型,会让模型更完善,得到所谓的“深层模型”。
趋向性设计是一种新的思路,主要是避免“过度设计”
对于那些不知道设计到什么程度的认来说,这么书非常值得看,强烈推荐。
当然,这里记得都是一些思想了,具体的步骤书里非常详细,自己看问题不大(当然要对设计模式和重构都比较熟悉)
实际上,看完这本书,开始的问题“设计到什么程度就够了”,还是没有清晰的答案。。。
但已经感觉隐约间抓到了什么。。。好像和DDD里的东西有些关系,但是由于DDD理解的不深(应该是水平不够吧),没有抓住什么实质性的东西
希望以后的实践中可以自己给出答案。。。
- 大小: 13.8 KB
分享到:
相关推荐
《重构商业:产业互联网时代的商业模式重构》读书笔记模板.pptx
在《JAVA与模式读书笔记》中,我们探讨的是Java编程语言与设计模式的结合应用,这对于深入理解面向对象编程和提升软件开发能力至关重要。设计模式是软件工程中的最佳实践,它们是解决常见问题的模板,可以提高代码的...
下面将详细解读这个领域的核心知识点,并基于"代码质量-读书笔记"的内容展开讨论。 首先,我们要理解什么是代码质量。代码质量不仅仅关乎代码的正确性,更包括其可读性、可维护性、可扩展性等多个方面。良好的代码...
在第三章中,作者详细列举了多种"代码的坏味道",也就是代码中常见的问题和反模式,旨在帮助开发者识别这些问题并进行有效的重构。 "源码"标签表明我们将关注代码的实际结构和质量,而"工具"标签则暗示可能涉及到...
《重构-向范式前进》是一本深入探讨软件开发中重构与设计模式融合的重要书籍。在编程领域,重构是优化代码结构、提升可读性和可维护性的重要手段,而设计模式则是解决常见问题的成熟解决方案。这本书的核心在于指导...
总之,这个C++读书笔记程序及源码资源为学习者提供了宝贵的实践材料,通过阅读和理解源码,不仅可以深化对C++语言的理解,还能掌握数据库和界面编程的核心技能。同时,它还提醒我们,理论知识与实际项目相结合是提升...
这些设计模式的学习通常需要结合具体的代码示例和实际项目经验,通过阅读笔记中的源码分析,可以帮助我们更好地理解和掌握这些模式的应用场景和实现方式。同时,利用相关的开发工具,如IDEA的重构功能,可以方便地...
9. **超星版**:超星版通常指的是电子版,可能包含了一些电子阅读特有的标记或格式,方便读者在线阅读或做笔记,便于随时随地学习和查阅。 总之,《重构:改善既有代码的设计》是一本对于任何软件开发者都极具价值...
《数字化转型:塑造企业未来》读书笔记模板x.pptx 本书的主要内容是对数字化转型的介绍和解读,旨在帮助企业人员和数字经济研究者更好地理解和掌握数字化转型的设计技能。以下是本书的知识点摘要: 一、数字化转型...
敏捷开发的核心是一系列原则、模式和实践,这些内容在《敏捷软件开发:原则、模式与实践》这本书中得到了详细的阐述。 首先,敏捷开发的基石是“敏捷宣言”,它提出了四个核心价值观: 1. 个体和互动高于流程和...
【美】马丁福勒 著 是国际著名的面向对象分析设计、UML、模式等方面的专家,敏捷开发方法的创始人之一 重构_改善既有代码设计 软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄
### ANTLR4读书笔记七八章详解 #### 第七章:从特定于应用程序的代码解耦语法 在学习了如何使用ANTLR定义语言语法后,我们了解到语法本身虽然能够验证一个输入句子是否符合语言规范,但对于实际开发语言应用程序来...
重构阶段则强调数据与业务的深度融合,形成循环的数据闭环。 数据中台的建设模式多样,包括数据治理驱动、业务能力驱动、软件能力驱动、业务服务化驱动和数据中台驱动等,每个模式都有其侧重点。建设的特点在于业务...
《从零开始学架构》精华笔记 《从零开始学架构》这本书的内容主要包含以下几部分:1) 架构设计基础,包括架构设计相关概念、历史、原则、基本方法,让架构设计不再神秘;2) 架构设计流程,通过一个虚拟的案例,...
总的来说,《移动物联网:商业模式+案例分析+应用实战》是一本结合理论与实践,深入浅出地讲解物联网如何重塑各行各业的著作。它不仅介绍了物联网的基本概念,还通过丰富的案例分析展示了物联网的实际应用效果,对于...
7. **重构与设计模式**:设计模式是重构过程中的重要工具,通过合理应用模式,可以改善代码结构,提高代码可读性和可维护性,从而降低维护成本。 8. **测试驱动开发(TDD)与模式**:TDD强调先编写测试用例,然后编写...
书中列举了许多重构模式,这些模式提供了针对各种常见问题的解决方案,如消除重复代码、改进类和对象的设计、简化条件表达式等。通过这些重构模式,开发者可以系统地识别并解决代码中的坏味道,使代码结构更加清晰,...
《变革社会中的政治秩序》是美国政治学家塞缪尔·亨廷顿的著作,该书深入探讨了在社会变革过程中,政治秩序如何受到挑战、如何重构以及如何保持稳定。读书笔记主要围绕三个主题展开:现代化进程中的革命手段、东西方...
《再战农村电商:“互联网+”时代的下一个新战场》读书笔记模板 这本书主要讲述了农村电商在“互联网+”时代的发展前景和挑战,对于农村电商的发展现状、发展趋势、发展战略和发展机遇进行了深入的分析和讨论。 ...