第号 2019-06-30
领域逻辑复杂度较低时,选择事物脚本;
如果开发环境拥有大量基于记录集的工具(.Net和VS),可以选择表模块;
开发小组经验丰富时,选择领域模型;
3种模式并不互相排斥,可以同时使用
1)服务层是从领域层分离出来的,用于置于底层的领域模型或表模块之上
2)服务层用于放置事物控制和安全等功能
3)如果确实需要,服务层尽可能最小化(充当于一个Facade层)
1.客户会话状态
运行机制使用时机例:领域层与数据层数据映射器2.悲观离线锁
1.1运行机制1.2使用时机2.数据传输对象
模型-视图-控制器页面控制器前端控制器模板试图转换试图两步试图应用控制器
1.标识域(Identity Field)。2.外键映射(Foreign Key Mapping)。3.关联表映射(Association Table Mapping)。4.依赖映射(Dependent Mapping)。5.嵌入值(Embedded Va
1)运行机制:关键:是提交时,决定要做什么。它打开一个事务,做所有的并发检查并向数据库写入所做的修改。工作单元控制器:工作单元控制所有数据库的读操作,一旦对象被读取,将将它注册为“干净”的对象。
表数据入口可以和表模块一起使用,它产生一个记录集数据结构由表模块处理。 更新数据库并将活动记录中的数据插入数据库; 获取或设置域; 实现部分业务逻辑。3)实例: 其中,DataMapper实现了IPersonFinde
2)脚本处理:每个事务都有自己的事务脚本,尽管事务间的公共子任务可以被分解成多个子程序。3)运行机制:a.事务脚本应该置于与其他处理表现层和数据源层的类相独立的类中,把事务脚本组织成类的两种方法:。a. 将数个事务脚本放在一个类中,每个类围绕一个主题将相关
思考三个方面的技术实践:持续集成、驱动测试开发和重构1. 从领域层开始1)事务脚本模式最简单,适合于在关系数据库之上构建;领域模型需要非常专业的技术,还有鱼数据库的连接;表模块模式折中,在.Net这类有非常强大记录集支持的环境非常合适。可供选择的数据库模式
3)分布对象设计第一定律:不要分布使用对象!4)怎样有效利用多处理器资源:使用集群系统。3)web服务器和应用服务器(指的是web service么?
与记录数据信息的区别:记录数据时长期保存在数据库中的持久化数据,它对所有会话可见,会话状态需要提交成为数据库中的记录;
对应于软件工作的外部环境发出的单个调用,处理请求的软件会决定是否返回一个应答。2)操作系统的2个语境:进程:重量级的执行语境,将其正在处理的内部数据域外部隔离开。2)不变性:方案1:识别哪些是不变的数据,不用考虑这些数据的并发问题二广泛地共享它们
构建web服务器上应用程序的2种方法:1)使用脚本:CGI、Java Servlet,通过write stream操作输出字符串;适合于解释请求消息。2)使用服务器页面:把程序和返回文本也组合在一起,在html中编写返回页面;适合于格式化应答消息。2)模板
关系数据库之所以取得成功,最重要的原因之一就是SQL的存在,它是数据库通信标准语言。主要好处在于能够提高生产率!元数据文件详细描述数据库中列如何映射到对象的域。
1.数据源层:服务器2.表现层:胖客户,客户端;web:服务器端 3.领域层:全部运行在服务器端,或者全部运行于客户端,如果必须要分离则至少保证相关的部分在一起2)一旦选择了处理节点,尽可能使所有代码保持在单一进程内完成,否则不但损失性能,还会增加复杂性
构建计算机系统并非易事。随着系统复杂性的增大,构建相应软件的难度将呈指数增大。同其他行业一样,我们只有在不断的学习中进步,从成功经验中学习,从失败教训中学习,才有望克服这些困难。只有通过模式的总结和学习,才能更有效地与他人进行交流。本书中的一些模式毫无疑问
2.可维护性:可以替换或修改某层的具体实现,而不会影响其他部分代码,只要前后提供的服务相同即可。
响应性不同于请求处理,它是系统响应请求的速度有多快。这个指标在许多系统里非常重要,因为对于一些系统而言,如果其响应太慢,用户将难以忍受——尽管其响应时间可能不慢。如果能够在处理真正完成之前就给用户一些信息表明系统已经接到请求,则响应性就会好一些。一条关于依