`
0428loveyu
  • 浏览: 30887 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

《敏捷软件开发 原则、模式与实践 C#版》 - 书摘精要

 
阅读更多
(译者序) Robert C. Martin - <<UML for Java Programmers>>

(P29)
每一个软件模块都具有三个职责:
1. 运行起来所完成的功能;
2. 应对变化;
3. 能够使其阅读者理解;

(P76) “在准备战役时,我发现计划本身总是无用的,但是做计划却是绝对必要的。” —— 艾森豪威尔;

(P83) 当同样的代码以稍有不同的形式一再出现时,就表示开发人员忽视了抽象;

(P87) 我们生活在一个需求不断变化的世界中,我们的工作是要保证我们的软件能够经受得住那些变化;

(P92) SRP是所有原则中最简单的原则之一,也是最难正确运用的原则之一;

(P94)
OCP - 使用“抽象”来实现;

模块可能对抽象体进行操作。由于模块依赖于一个固定的抽象体,所以它对于更改可以是封闭的。同时,通过从这个抽象体派生,可以扩展此模块的行为;

(P101)
OCP是面向对象设计的核心所在。遵循这个原则可以带来面向对象技术所声称的巨大好处:灵活性、可重用性以及可维护性;

开发人员应该仅仅对程序中呈现出频繁变化的那些部分做出抽象;

拒绝不成熟的抽象和抽象本身一样重要;

(P114)
OCP是OOD中很多说话的核心;
LSP是使OCP成为可能的主要原则之一;

(P115) DIP是框架设计的核心原则;

(P116) 每个较高层次都为它所需要的服务声明一个抽象接口。较低的层次实现了这些抽象接口。每个高层类都通过该抽象接口使用下一层。这样高层就不依赖于低层,低层反而依赖于在高层中声明的抽象服务接口;

(P117)
“依赖于抽象”:
1. 任何变量都不应该持有一个指向具体类的引用;
2. 任何类都不应该从具体类派生;
3. 任何方法都不应该重写它的任何基类中已经实现了的方法;

(P138) 构建模型就是为了弄清楚某些东西是否可行;

(P139) 当模型比要构建的真实实体便宜地多时,我们就会使用模型来研究设计;

(P179) UML中的所有箭头都指向源代码依赖的方向;

(P229) “优先使用对象组合而不是类继承”;

(P230)
Template Method - 使用继承来解决问题;
Strategy - 使用委托来解决问题;

(P323) 任何一行使用了new关键字的代码都违反了DIP;
分享到:
评论

相关推荐

    《精通CSS与HTML设计模式》(Pro CSS and HTML Design Patterns)中文版高清扫描版[PDF](part08)

    本书结构清晰,示例丰富,实践性强,适用于所有Web 开发和设计人员。 编辑推荐 Amazon盛誉图书,业界专家十余年功力结晶,参透CSS与HTML,350多种可以立刻用于实战的设计模式,Web设计与开发人员的必备参考书。 ...

    《iOS6开发指南》精彩书摘

    21. **iOS敏捷开发项目实战**:介绍了iOS应用的分析设计、编程、测试和发布全过程,采用敏捷开发方法,并讨论了分层设计架构的重要性。 综上所述,《iOS6开发指南》为读者提供了一套全面且详细的iOS开发知识体系,...

    swift-模仿书摘中心的展开按钮封装的一个控件

    在Swift编程语言中,开发UI界面时,我们经常需要创建自定义控件来满足特定的设计需求。本项目“swift-模仿书摘中心的展开按钮封装的一个控件”就是这样一个例子,它模仿了书摘中心的展开按钮效果,提供了一个轻量级...

    编写高质量代码 Web前端开发修炼之道 书摘精要

    《编写高质量代码 Web前端开发修炼之道》是一本深入探讨前端开发实践与技巧的书籍,旨在提升Web应用的质量和可维护性。书中强调了遵循Web标准的重要性,这些标准主要分为结构、样式和行为三大部分。 结构标准包括...

    Agile Web Development with Rails.pdf(英文)

    敏捷开发是一种以用户需求为中心、迭代增量的软件开发模式。其核心价值观包括个体与互动高于流程和工具、可用的软件高于详尽的文档、客户合作高于合同谈判、响应变化高于遵循计划。在敏捷开发中,项目被细分为一系列...

    《iOS网络编程与云端应用最佳实践》精彩书摘

    在iOS开发中,网络编程是不可或缺的一部分,尤其是在构建与云端应用交互的移动应用时。《iOS网络编程与云端应用最佳实践》这本书深入探讨了这一领域,提供了宝贵的实战经验和最佳实践。以下是一些关键知识点的概述:...

    《JavaScript语言精髓与编程实践》精选版

    《JavaScript语言精髓与编程实践》精选版 作者 周爱民 《JavaScript语言精髓与编程实践》这本书,最初的名字是叫《动态函数式语言精髓与编程实践》,这是作者写本书的原意。确切地说,作者并非是想讨论JavaScript...

    多看kindle书摘导出工具

    【多看Kindle书摘导出工具】是一种实用的软件工具,专为用户设计,用于从多看Kindle系统中提取书摘,并将其导出为易于管理的TXT文本格式。这款工具极大地提升了阅读爱好者整理和回顾笔记的效率,使得珍贵的阅读心得...

    一款很棒的书摘软件 微信小程序 中山大学软件创新大赛十强参赛项目.zip

    【标题】中山大学软件创新大赛十强参赛项目:一款很棒的书摘软件微信小程序 【描述】这款软件是中山大学软件创新大赛中的优秀作品,它以其出色的功能和用户体验,成功进入了大赛的十强行列。作为一款书摘软件,它...

    初中语文文摘文苑微书摘

    【标题】:“初中语文文摘文苑微书摘”与我们探讨的是人生哲理与科学思考,虽然表面上看似与IT技术无关,但其中蕴含的思维方式和观察问题的角度对IT从业者同样具有启示作用。 【描述】:“初中语文文摘文摘”暗示了...

    BookSnippets:更快地存储书摘!-开源

    总结,BookSnippets结合了Python、Tkinter和Pmw的力量,打造出一个实用的书摘管理应用,其开源特性更是鼓励了用户参与开发,共同提升软件的性能和实用性。通过学习和使用这样的工具,不仅可以提升技术能力,也能提升...

    WPF in action 书摘 (上)

    ### WPF in Action 书摘知识点总结 #### 资源(Resource)的使用与查找路径 **资源**是WPF应用程序中的一个核心概念,它允许开发者以一种灵活且可复用的方式管理各种UI元素,如颜色、字体、图像等。 ##### 查找路径...

    微软研发探秘系列课程(6):微软研发揭秘之贺岁版——2006年程序员书籍畅谈 (思想篇)

    2006年的书籍涵盖了各种编程语言、设计模式、软件工程、敏捷开发等主题,这些都是构建高效、可维护软件的基础。例如,可能讨论了《重构:改善既有代码的设计》如何帮助开发者提升代码质量,或者《设计模式:可复用...

    2021年读书-《心智、知识与道德》书摘:社会主义计算大论战.docx

    2021年读书-《心智、知识与道德》书摘:社会主义计算大论战.docx

    初中语文文摘文苑微言与书摘

    而《初中语文文摘文苑微言与书摘》正是一本为青少年精心挑选的文章集合,它不仅涵盖了生活的方方面面,也反映出作者们对世界深刻的洞察和感悟。通过阅读这些文摘,初中生能够对人生的多样性和复杂性有一个初步的理解...

    2022小学语文研修总结10篇.docx

    通过以上知识点的总结,我们可以看出,该教师不仅注重个人的专业成长和发展,而且积极投身于教学实践与教育科研活动中,力求通过不断学习和反思,提升自身的教学能力和研究水平,以更好地服务于学生的发展。

Global site tag (gtag.js) - Google Analytics