Tag: DDD

  1. 领域驱动设计

    什么是领域驱动设计 传统的软件设计中,一般存在以下问题: 业务人员只懂业务,不懂架构和设计; 架构人员专注于设计看似美好的架构; 开发人员想当然的去实现业务逻辑; 在整个软件生命周期中的每一个环节和每一个参与的角色都是割裂的,互相拥有自身对系统的理解,如同盲人摸象般,这种割裂会带来很大的沟通成本。由于任何沟通都是一种信息的转换,而任何转换带来的都是信息的丢失,因此系统最终的实现跟原始的需求可能会差之甚远,甚至导致系统的失败。为了解决这个问题Eric Evans提出了Domain-Driven Design领域驱动设计,简称DDD。 领域驱动设计是一套综合软件系统分析和设计的面向对象建模方法。领域驱动设计的核心是领域模型,所谓领域模型,是关于某个特定业务领域的软件模型,一般通过对象模型来实现,这些对象同时包含了数据和行为,并且准确的表达了业务含义。 领域驱动设计思想的关键之处在于将人们在建模时从关注于将需求转换为数据改变为专注于业务,通过使业务人员、架构师和开发人员一起协作,让团队中的每一个人都关注于业务的抽象,从而将业务问题简化,做出更符合业务场景的战略设计和战术设计。 领域驱动建模、数据库建模和Smart UI的区别 传统的软件开发中一般使用数据库驱动建模,在软件开发的早期,从业务需求的抽象中建立符合数据库(一般是关系型数据库)的数据的组织格式,在代码中建立Java Bean,包含一些getter、setter方法,通过调用这些getter、setter方法来实现业务逻辑。甚至一些系统为了利用数据库的事务来保证业务的原子性,将业务逻辑通过数据库的存储过程来实现。 Smart UI是将大量的业务逻辑直接放到UI层,…

    on DDD 领域驱动设计