Unix哲学,Microservices和DDD (4)

如前所述,领域驱动设计(DDD)是很是复杂的方法论,不过进行这里的讨论只须要理解DDD中的限界上下文(Bounded Context)安全

词语的意义是由上下文决定的。例如,“角”这个词语能够出如今讨论几何学的上下文中,也能够出如今零钱的上下文中,分别表示彻底不一样的意思。在软件开发中,软件工程师使用得得心应手的命名空间也起到了上下文的做用。架构

DDD的设计者Eric Evans发现,在软件的沟经过程中,软件工程师每每不能理解领域专家(多是客户)的专业领域,领域专家也看不懂软件设计的相关文档。DDD认为,经过在软件工程师和领域专家之间定义一致的上下文和上下文中的术语,能够保证软件设计者与领域专家的正确交流,以保证软件逻辑正确和架构清晰。限界上下文之间经过仔细定义的接口通讯,从而实现低耦合。例如在聊天软件中,可能有一个上下文处理用户登陆,另外一个上下文处理用户的聊天记录,而这两个上下文均可以定义称为Session的术语:前者中Session指用户的认证信息,后者中的Session指两个用户的聊天进程。模块化

这样就解决了以前横向扩展中代码拆分的问题:每一个上下文均可以被安全地拆分出来,而且理由充分:每一个上下文每每对应着软件想要解决问题的一个子问题,所以其内部代码也必定是在集中解决这个问题。并且每一个上下文向外提供具备领域语义的接口,把上下文做为切分软件的界限,很天然地知足了软件模块化的高聚合低耦合原则。设计

相关文章
相关标签/搜索