领域驱动第四章-读书笔记
以后简称作者为巨牛。^_&
第四章讲解的重点就是分离.领域的分离.
说实在的,读之前觉得,自己的设计模式用的也比较熟练了,OOP的设计也做过很多个了,分离什么都是小儿科.读完之后才发现,以前的设计都是智能UI设计.一种无法复用,无法正确扩展的设计.
首先,书中解说了下为什么要分离,核心思想就是:解耦.
然后,明确指出,领域要和什么技术实现啊,用什么缓存之类的统统隔离。越简单越明了就越好.
然后在最后提出了一种很不好的设计:智能UI设计
来说下巨牛对智能UI设计的解释:
把所有的业务逻辑交给用户界面处理。把整个应用程序分割成小的功能函数(也就是小的业务模块,如何分割的话就要看模块之间的关联度了),并且把他们作为相互独立的用户界面来实现,同时把业务规则嵌入到这些界面中(我觉得如果在界面中涉及到过多的业务逻辑,就算把业务规则放在service层中实现,也还是相当于把业务规则嵌入到界面中了).用一个关系数据库作为数据的共享仓储.使用最自动化的UI结构,以及可利用的可视化编程工具.
然后列举了智能UI设计的优势和缺点.(呵呵,我还是比较认同的,客户的要求是最重要的,特别是针对的是项目,如果是产品的话,就不能这么做了).先说优点:
1. 对于简单的应用,生产力较高(呵呵,还是较高而已),开发时间较短.
2. 缺少经验的开发人员可以进过较短的培训直接上手.
3. 甚至在进行需求分析时所留下的缺陷,可以通过把原型提供给用户来克服,并快速的在软件中做出修改来满足用户的要求.(这个一定要是简单应用啊).
4. 应用可以相互分离,所以能够精确的计划递交小模块的进度表.对系统的简单扩展可能会很容易.
5. 关系数据库工作可靠,并且提供数据级上的集成.
6. 第4代语言(JAVA什么的)功能能很好的满足开发需要。
7. 档这个应用程序被递交后,维护程序员能够很快的重新开发他们(开发人员)没有解决的部分,因为改变所带来的影响只局限在每个特定的UI中。
好了,列了很多优点后,现在开始说缺点了:
1. 应用的集成比较困难,除非利用数据库。关于这点说下我的想法:比如开始做了个人事考勤的系统,里面有组织结构模块,人员管理模块,考勤模块。现在呢,客户又想要个考试管理,那么我的人员管理模块和组织结构模块在当时没有考虑支持其他系统的功能,最简单的做法就是把数据库放到一起去,后加的功能直接去访问数据库。再呢,就是改原来的。反正就是不能重用。
2. 这里不会考虑重用以及业务问题的抽象。业务规则必须在每个使用它(上面提到的人员管理模块)的操作中复制。
3. 缺少抽象的提炼而限制了重构的选择(比如考试系统中有学员和教师等各种角色),所以快速原型和迭代收到了天然的限制。快速原型的概念:http://baike.baidu.com/view/408667.htm
4. 复杂性很快会让你迷失(这个真的只能意会了),所以增长路线只能严格顺着原有的应用上添加简单应用而已。想要获得具有丰富行为的应用并不容易。
总结就是:如果一个基于产品的简单项目,客户拿去忽悠赚钱的,用一次就丢掉的项目,用智能UI设计的方法是基本上没什么问题的。但是,采用这种模式的一个后果就是你不能把它移植到另外一种设计方法中,除非替换整个应用程序。
好了,第四章看完了。有些启发,有些疑问。需要在后面的章节中寻找。
Domain-driven design
转载于:https://www.cnblogs.com/marxTen/articles/3120243.html
领域驱动第四章-读书笔记相关推荐
- 领域驱动设计DDD之读书笔记
查看文章 领域驱动设计DDD之读书笔记 转载原地址:http://hi.baidu.com/lijiangzj 2007-08-17 16:53 一.当前Java软件开发中几种认识误区 Hibe ...
- 期权、期货及其他衍生产品 第四章读书笔记 利率
期权.期货及其他衍生产品 第四章读书笔记 利率 利率的种类 我国的利率体系 中央银行利率 金融机构利率 金融市场利率 利率的度量 连续复利利率和与之等价的每年m次复利利率的关联 零息利率 债券定价 债 ...
- 《人人都是产品经理》第四章读书笔记及读后感作文2400字
<人人都是产品经理>第四章读书笔记及读后感作文2400字: 最近一直在忙别的学习,以至于好久没有更新公众号了,也好久没有写读书笔记了.<人人都是产品经理>这本书其实早在一个月前 ...
- Android深度探索(卷一)第四章读书笔记
通过对git使用方法的学习, 第四章就介绍了源代码的下载和编译. 4.1 下载.编译和测试Android源代码 4.1.1 配置Android源代码下载环境:1创建一个用于存放下载脚本文件的目录.2下 ...
- 《文明之光》第四章读书笔记
第四章--科学之路 综述:古希腊在几何学,物理学,天文学上的贡献,最能体现出他们在建立完整科学体系上做出的成就. 第一节--几何学 几何学的起源并非古希腊,而是埃及和美索不达米亚,关于几何学的记载最早 ...
- 《Python深度学习》第四章读书笔记
第四章 机器学习基础 本章重点:处理机器学习问题的通用工作流程: 定义问题与要训练的数据. 收集这些数据,有需要的话用标签来标注数据. 选择衡量问题成功的指标. 你要在验证数据上监控哪些指标? 确定评 ...
- Android深度探索--HAL与驱动开发----第一章读书笔记
1.1 Android拥有非常完善的系统构架可以分为四层: 第一层:Linux内核.主要包括驱动程序以及管理内存.进程.电源等资源的程序 第二层:C/C++代码库.主要包括Linux的.so文件以 ...
- 20135320赵瀚青LINUX第四章读书笔记
概述 什么是进程调度 进程调度:在可运行态进程之间分配有限处理器时间资源的内核子系统. 一.调度策略 4.1进程类型 I/O消耗型进程:大部分时间用来提交I/O请求或是等待I/O请求,经常处于可运行状 ...
- 《自控力》第四章读书笔记
04 容忍罪恶:为何善行之后会有罪行? 深入剖析:善与恶 这一周,试着观察你意志力挑战成功和失败的时候,你是怎么对自己和他人解释的. 当你意志力挑战成功的时候,你会不会告诉自己你已经很"好& ...
最新文章
- 从CIO视角出发审视云环境下的安全议题
- 将传统的落后WAN转换为SD-WAN
- hadoop SecondaryNameNode和NameNode
- python3.6 try except,python中try except处理程序异常的三种常用方法
- Linux之网络管理(6)ip及路由相关命令
- 拳王虚拟项目公社:闲鱼操作虚拟资源的案例拆解,教你玩转闲鱼虚拟资源,货源+方法
- Python使用三种方法批量修改记事本文件编码格式
- SQL2005 DDL触发器
- python学习之路---day12
- 第1章—Spring之旅—简化Spring的java开发
- c++编程时为什么老是出现cout未定义
- 基于opencv的图像拼接
- 【原创】 ES5高效封装WIN10系统教程2020系列(四)使用工具优化与清理
- 韩国电影《醉画仙》,画仙的奋斗史。。。???
- 利用html5实现的360度全景图浏览(带天地)
- Linux(Ubuntu)系统查看显卡型号
- Java 年龄与疾病
- GIT创建版本库及版本的迭代
- 【小社交】谁是下一个陌陌?陌生人社交网络大起底!
- 惊天消息!美国重启病毒实验,或对人类造成巨大威胁
热门文章
- 浅析django的abstract,proxy, managed
- PowerDesigner生成注释以及对应数据库的sql语句
- hdu 1224【Free DIY Tour】
- wms仓储系统培训_WMS系统开创智慧仓储新方向
- 2021云上架构与运维峰会将于12月4日在上海举办,五大精彩看点不容错过
- 饿了么EMonitor演进史
- OpenKruise 2021 规划:More than workloads
- 阿里云云效如何帮助企业10倍研发效能提升?
- 蒋涛,CSDN创始人,俺村的骄傲
- SpringMVC常见面试题(5个最常见面试题,回答超详细)