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

《精通.NET企业项目开发》 - 书摘精要

 
阅读更多
(P7) 处于任何逻辑层面上的类,对于同一层面上的其他类应该是可重用的;对于在同等范围内其他所有需要该数据的类而言,提供数据的类应该是可以被调用的;

(P9) 大多数企业系统都是用平台无关的技术构建的;

(P16) 良好设计的代码必须能进行分解,能够划分为独立的功能块;

(P17) 企业开发通常要求很强的松散耦合度;

(P19) 松散耦合类的真正评价标准是要看针对它编写单元测试的能力;

(P21) 抽象接口是类型解除关联的流行方法,当试图对需要交互的类实现松散耦合时,就需要用到这种方法;

(P35)

在创建软件时,针对可维护性进行设计是最重要的目标之一;

不易改变的最大阻力来自于依赖 —— 即系统中依赖于其他类的那些类。依赖可能出现在代码的各个方面 —— 高层类可能依赖于低层类,反之亦然;

(P46) 灵活性测度的是改变代码的难易程度;

(P47) 重用性测度的是代码的可移植性,以及在软件的其他地方可以重用到什么程度;

(P63)

依赖倒置准则(Dependency Inversion Principle, DIP)就是将类从具体的实现中分离出来,让这些类仅依赖于抽象类或接口;

Robert C. Martin 这样定义 DIP :
(1) 高层模块不应该依赖于低层模块。两者都应该依赖于抽象;
(2) 抽象不应该依赖于细节。细节应该依赖于抽象;

应用 DIP 的第一步是针对每种低层依赖提取接口;

(P65)
依赖注入实现方式:
(1) 构造函数注入 —— 构造函数注入通常应用于重构的最后阶段,它是通过类的构造函数提供依赖的过程;
(2) 设置函数注入 —— 设置函数注入通过设置函数(Setter)属性将依赖模块注入高层模块的过程;
(3) 方法注入 —— 方法注入要求依赖实现一个接口,高层模块会在运行时引用和注入这个接口;

(P68) 设置函数注入方法可能不如构造函数注入那么显而易见,但是,如果在构造函数中需要注入大量的其他依赖,那么将可选的依赖移到基于设置函数的方法可能更加明智,因为这样可以使该类的结构更易于理解;

(P83) 在编写让测试可以通过的代码之前,要先让测试失败;

(P91) 首先要知道基本准则,知道自己正在干什么,然后才能走捷径以提高速度;

(P149)

控制反转是一般准则,依赖注入是该准则的实现;

IoC容器只是一个包含类型和实现的字典;

(P153) 将所有的开发时间都花费在基础结构关注点上并不能更快地构建应用程序;

(P157) 自动连接依赖是使用IoC容器所能获得的最大好处;

(P169) 中间件 —— 是连接软件组件或应用程序的计算机软件;

(P189) 应用程序的主要目的和我们作为开发人员存在的唯一目的就是解决业务问题;

(P190)

业务逻辑层中存在的3种主要模式:事务脚本(Transaction Script)、活动记录(Active Record)和领域模型(Domain Model);

事务脚本是一种非常简单的业务设计模式,它遵循面向过程的开发方式,而不是面向对象的方法。它为每个业务事务创建一个过程,每个过程都包含完成业务事务所需的所有业务逻辑,包括工作流、业务规则和验证检查到在数据库中持久保存的所有内容;

(P191) 事务脚本模式的一个优点是,它非常简单,很易于理解,不需要任何关于该模式的前期知识就很容易明白它的作用。如果有新的业务用例需要处理,那么可以直接添加新方法来处理它,该方法将包含所有相关的业务逻辑;

(P192)

活动记录(Active Record)模式是一个非常流行的模式,当底层的数据库模型与您的业务模型相匹配时,这种模式尤其有效;

在活动记录模式中,每个业务对象都负责它自身的持久化和相关的业务逻辑;

(P194) 领域模型与活动记录模式之间的主要差异是,领域模型的业务实体存在于领域模型之中,它们不知道如何持久化自身,且数据模型和业务模型之间并不一定要存在一对一的映射关系;

(P198)

领域模型模式相比于事务脚本和活动记录模式的另一个优点是,因为领域模型不包含数据访问代码,所以可以容易地对其进行单元测试,而不必模拟和存根这类数据访问层的依赖;

领域模型最重要的一个强项就是处理复杂的业务逻辑,但是当应用程序中包含非常少的业务逻辑时,全面使用领域模型就有些使用过度;

(P200) 学习的最佳方式就是通过示例;

(P255)

数据访问层包括所有的CRUD(创建、读取、更新和删除)方法和查询机制,这使得业务逻辑层能够针对任何给定的条件检索对象;

数据访问层不应该包含任何业务逻辑,并且应该由业务逻辑层通过接口来访问数据访问层;通过接口进行通信能够轻易地替换数据访问层的实现,而不会对软件的合理性产生任何负面影响;

(P256) ORM的作用是在关系模型(数据库)和面向对象模型之间架起一座桥梁;

(P257) DataContext 类负责跟踪改变以及管理标识映射和并发关注点,它是所有进入数据库的入口点的管理器;

(P258) Linq To SQL 包含一个 DataContext 类,该类跟踪数据变化,并保持所有从数据库取出的对象的标识映射;

(P272) Entity Framework 的强大之处在于关系数据模型并不要求与业务模型存在一对一的映射;

(P273) Entity Framework 不仅仅限于数据库。在一个实体模型中可以从很多不同的数据源提取数据,包括对数据源使用服务;

(P288)

持久化透明(Persistence Ignorance)的思想是保持业务对象与数据访问层解除关联,这样业务对象就仅包含与业务逻辑相关的代码;

NHibernate 的一个最佳功能就是对持久化透明的支持 —— 这意味着业务对象不必继承任何基类或实现任何架构接口;

(P321) 对象关系映射器在数据库的关系数据模型与面向对象的领域模型之间架起了一座桥梁(更准确地讲是解决了不匹配问题);

(P324)

MVC将应用程序的前端分解为3个概念层 —— 模型(Model)代表应用程序的数据,视图(View)代表UI中的可见组件,而控制器(Controller)则处理模型和视图之间的数据通信和业务规则;

MVC的首要任务是尽可能地将数据从UI中分离出来,通过这种分离,开发人员可以更加方便地修改UI或数据和业务规则,同时又不会相互影响;

(P336) 我们的目标不是将开发领域统一为一种全功能的设计,我们的目标是建立应用程序,使它足够安全、可测试和灵活以适应功能的伸缩和增长;

(P340) MVP模式的核心在于模型,或者更准确地讲,在于代码的逻辑部分,这些部分处理业务规则和逻辑;

(P341)

在大多数情况下,表示器是作为对视图进行的一种可测试抽象;

ASP.NET页面的视图或UI部分是将信息提交到Web服务器或从Web服务器获取信息的主要入口点;

(P348) 表示器的目的是处理到视图的输入和来自视图的输出;

(P370) 表单是由动作和方法组成的;

(P371) Web MVC 将到达的请求与特定的输出进行了分离,将该请求路由至服务器端对象上的对应方法;

(P377) 系统中的每个概念实体通常都是由一个模型、一个控制器和n个视图组成;

(P380) Web MVC 的威力体现在它能够将正确的体系结构模式与快速应用程序开发相结合;

(P383) ASP.NET MVC 视图都有一个名为 Model 的引用,该引用是用作该页面所引用的模型对象的一个句柄;

(P394) 在领域驱动设计(Domain Driven Design)领域中,认识域模型对象的规则及其判断是否违背了这些规则通常都属于域模型对象本身的职责;
分享到:
评论

相关推荐

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

    本项目“swift-模仿书摘中心的展开按钮封装的一个控件”就是这样一个例子,它模仿了书摘中心的展开按钮效果,提供了一个轻量级且易于使用的解决方案。尽管该控件不支持通过CocoaPods进行集成,但可以直接下载源代码...

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

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

    《iOS6开发指南》精彩书摘

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

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

    曾经作为首席软件工程师和架构师开发过各种项目,包括许多网站、应用程序框架、编译器、自定义语言,自动化工厂和销售管理系统。他拥有音乐理论硕士学位,是一名优秀的钢琴家。 图书信息: 书名:精通CSS与HTML设计...

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

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

    初中语文文摘文苑微书摘

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

    多看kindle书摘导出工具

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

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

    这款应用采用Python编程语言,结合Tkinter图形用户界面库和Pmw扩展库进行开发,实现了对书摘的快速添加、编辑、删除以及搜索功能。 一、Python编程基础 Python是一种高级、通用的编程语言,以其简洁明了的语法和...

    书摘 创业所需的9项企业家精神 管理资料.doc

    一份优质的商业计划可以提升企业获得初始投资的可能性,推动创业项目的启动和发展。 【脱手战略(Exit strategy)】 在创业之初,企业家需要考虑企业的退出策略,即如何为投资者提供回报。这可能包括企业上市、被...

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

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

    WPF in action 书摘 (上)

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

    书摘_全新思维 ppt 文件

    全新思维的书摘,看看别人怎么解读这本书,希望能对您有点帮助

    测试驱动艺术.rar

    在《测试驱动开发的艺术》这本书中,作者深入探讨了TDD的原理、实践技巧以及如何在项目中有效实施。书中的内容可能涵盖以下几个方面: 1. **TDD的哲学**:理解TDD背后的基本思想,如“测试先行”、“红-绿-重构”...

    Xamarin in Action: Creating native cross-platform mobile apps

    此外,附带的文件中可能包含阅读指南、电子书的epub和pdf版本,以及可能的阅读笔记或书摘(如“LetMeRead.net.txt”)。这些资源有助于读者更方便地学习和理解书中的内容。 通过学习这本书,开发者不仅可以掌握...

    基于Android平台的手机电子书阅读器设计.zip

    4. 书摘与笔记:允许用户添加书摘和笔记,方便回顾和分享。 三、技术选型 1. 开发工具:使用Android Studio作为主要开发环境,利用其丰富的调试工具和集成开发环境。 2. 开源库:引入如Android Jetpack组件库,提升...

    初中语文文摘生活名人名言解读_书摘

    初中语文文摘生活名人名言解读_书摘

    韦尔奇新着《赢》经典书摘.EXE

    韦尔奇新着《赢》经典书摘.EXE

Global site tag (gtag.js) - Google Analytics