• Martinfowler的这篇微服务文章引发了软件架构方面的热烈讨论,“今天在软件架构方面,除了微服务这个名称没有什么新的”。现大意翻译如下: 微服务,是另外一个在软件体架构这个拥挤的街道上冒出的新名词
  • 假设一个ProductSpeed有两个不同的构造器: icon
  • Richard Clayton分享了自己在微服务实践中的失败经历,避免更多人犯同样的错误。这些问题主要有以下几点: 1.开发人员之间的哲学观点的差异我们团队对微服务分为以下三个派别:a.喜爱微服 icon
  • 你的微服务是否太小?或者太紧密耦合?本设计指南可以提供帮助。 设计微服务往往更像是一门艺术而不是科学。本文提出五个建议: 1.它不会与其他服务共享数据库表2.它拥有最少量的数据库表3.它设计为有状 icon
  • 这是来自《POJOs In Action》作者和CloudFoundry原创始人Chris Richardson的一篇谈论微服务PPT,结合DDD和事件驱动,比较全面和可落地。大意翻译如下: 以一个在线商店为案 icon
  • 微服务是通过否定单体巨石monolithic而诞生的,单体巨石意思是铁板一块,高度耦合在一起,如同搅拌在一起的意大利面,或者说拌面,代码之间纠缠不清,修改维护难度很大,难以增加新功能,而微服务是根据业务领域中自然形成的聚合进行切分,也就是说,微服务不是对单体随意一刀切进行分割,而是根据有界上下文,在 icon
  • 请banq大牛帮助解答一下疑问吧,谢谢最近结合着《Java Modeling in Color with UML(四色原型)中文版》看《实现领域驱动设计》,感觉四色原型里提供的组件并未按照领域驱动设计的思想去做。我把四色原型中的物料资源管理中有好几个组件,我 icon
  • 以前的设计思路就是,通过画出usecase之后 找出需要被存储的表和属性,然后在业务操作的时候就是操作对应的表数据,这样典型的就是数据库驱动设计。如果碰到复杂的业务系统,数据库设计就会让人望而生畏,没有标准的设计原语,只有生涩的数据库图表,一旦复杂系统升级基本上是噩梦不如重做。 icon
  • 在这篇文章中,作者讨论了他最近学到的关于从不同的角度识别微服务边界的一个教训。 微服务架构是当今的热门话题。 尽管它的复杂性(分布式事务,最终的一致性,操作开销),这些都是不可避免的,但是它提供了许多好处(多边形架构,选择性可扩展性,强模块化,容错,实验 icon
  • 论坛当然可以当作一个上下文,但个人感觉 图片 /视频 等媒体资源,这应该是另一个上下文。个人感觉。 论坛主要是交流的(论坛),而媒体资源应该在另一个上下文中(媒体管理) 然后,身份验证是另一个上下文。 < icon
  • Cribbb是一个使用DDD聚合根和领域事件Domain Events概念开发的PHP开源通知框架:cribbb/cribbb · GitHub icon
  • “ 一个微服务应该涵盖一个有界的上下文 ” Vaughn Vernon断言。它引发了与 icon
  • 项目需求得到如下上下文 : 媒体管理 / 论坛 / 电子书 这3个都需要用户权限管理,这时候当然最好的是有个rbac系统,但单独开发它很耗时,我就采用了共享内核。这个内核就是 user ,很小,只有一个user aggre icon
  • 举个例子,一个交易系统:用户购买某个商品生成一笔交易可以抽象出,聚合根:交易,用户和商品是交易的属性那用户这个对象 那就不是聚合根,而是值对象?随着业务的发展,比如根据交易衍生出等级会员制度,那用户是不是也会变成一个聚合根CQRS中读缓存是缓存整个领域对象还是缓存值对 icon
  • A Bounded Context does not necessarily encompass only the domain model. True, the model is theprimary occupant of the conceptual container. Howeve icon
  • Identity用户验证模块 和 论坛模块 是两个上下文 ,通过 identity可以继承各种模块定制个性系统。 论坛独立模块分离完成。 架构如下: Identity用 icon
  • 这几天在看《impelment domain driven design》,很多都是语言层面的问题,就是说context Bounded,作者说context Bounded 所说的边界,是语言的边界,在context bounded 中有model,在context中的统一语言才有其特殊的意思。例 icon