随笔分类 - 系统设计
业务系统设计札记,包含业务系统开发过程中遇到的一些问题及方案选择。
摘要:martin fowler老爷子的《企业应用架构模式》一书在江湖上流传已久,在十几年前就企业应用中的典型场景及设计模式进行了思考和总结,可以看到书中提及的常用模式在如今流行的企业应用框架中已经落地。近日拜读,受益不少,将一些感悟和共鸣记录下来,整理下,不全面也不深入,只便于后续乱翻书。
阅读全文
摘要:通过对社区“查询推荐好友”场景在各个架构风格下实现的探讨,介绍各个架构风格中关于会话管理的处理机制及优缺点,管中窥豹,希望能通过实际的服务设计场景,加深对不同架构风格的理解。
阅读全文
摘要:《The Twelve-Factor App》定义了一个优雅的互联网应用在设计过程中,尤其是在设计SAAS服务时,需要遵循的一些基本原则。本文为该设计原则的读书笔记,并备注了自己在项目实践中的一些实施经验,在后续的工作中,会陆续加入更多的落地资料和心得。
阅读全文
摘要:社区业务领域中,存在‘人关注人’的场景,在这个场景中,关系较为复杂,且均表现在‘人’同一个业务实体上,因此,这个case的建模过程值得思考。本文将就‘人关注人’这个业务case的领域建模进行探讨,本文是【DDD】系列文章的其中一篇,其他可参考:使用领域驱动设计思想实现业务系统。
阅读全文
摘要:本文是DDD框架实现讲解的第三篇,主要介绍了DDD的Domain层的实现。Domain层是具体的业务领域层,是发生业务变化最为频繁的地方,也是业务系统最核心的一层,也是DDD关注的焦点和难点。这一层包含了如下一些domain object:entity、value object、domain event、domain service、factory、repository等。DDD实践的难点其实就在于如何识别这些object。文末附有领域建模示例。
阅读全文
摘要:本文是DDD框架实现讲解的第二篇,主要介绍了DDD的Application层的实现,详细讲解了service、assemble的职责和实现。文末附有github地址。相比于《领域驱动设计》原书中的航运系统例子,社交服务系统的业务场景对于大家更加熟悉,相信更好理解。本文是【DDD】系列文章的其中一篇,其他可参考:使用领域驱动设计思想实现业务系统
阅读全文
摘要:前面几篇blog主要介绍了DDD落地架构及业务建模战术,后续几篇blog会在此基础上,讲解具体的架构实现,通过完整代码demo的形式,更好地将DDD的落地方案呈现出来。本文是架构实现讲解的第一篇,主要介绍了DDD的User Interface层的实现,详细讲解了controller、dto的职责和实现,已经UI层使用到的公共组件:CheckLogin、Loging、Validation的职责和实现细节。文末附有github地址。相比于《领域驱动设计》原书中的航运系统例子,社交服务系统的业务场景对于大家更加熟悉,相信更好理解。
阅读全文
摘要:本文是基于上一篇‘业务建模战术’的实践,主要讲解‘删除帖子’场景的业务建模,包括:业务建模、业务模型、示例代码;示例代码会使用java编写,文末附有github地址。相比于《领域驱动设计》原书中的航运系统例子,社交服务系统的业务场景对于大家更加熟悉,相信更好理解。本文是【DDD】系列文章的其中一篇,其他可参考:使用领域驱动设计思想实现业务系统
阅读全文
摘要:本文是基于上一篇‘业务建模战术’的实践,主要讲解‘发表帖子’场景的业务建模,包括:业务建模、业务模型、示例代码;示例代码会使用java编写,文末附有github地址。相比于《领域驱动设计》原书中的航运系统例子,社交服务系统的业务场景对于大家更加熟悉,相信更好理解。本文是【DDD】系列文章的其中一篇,其他可参考:使用领域驱动设计思想实现业务系统
阅读全文
摘要:本文结合团队在COMMUNITY(社区服务系统)业务建模过程中的实践经验,总结得到一些DDD业务建模的小招数,不一定是完美的,但是对我们团队来说很有效用,希望能帮到其他人。后面会陆续将项目中业务建模的一些经典例子放上来,分享给大家。本文为【DDD】系列文章中的其中一篇,其他内容可参考:使用领域驱动设计思想实现业务系统。
阅读全文
摘要:本文从战略层面街上DDD中关于限界上下文的相关知识,并以COMMUNITY系统(社区服务系统)为例子,介绍如何识别上下文。限界上下文(Bounded Context)定义了每个模型的应用范围,在每个Bounded Context中确保领域模型的一致性;上下文图(Context Map)表示各个系统之间关系的总体视图;通过持续集成(Continous Integration)确保多个限界上下文的模型统一。
阅读全文
摘要:本文主要介绍了基于SpringMVC+mybatis框架对DDD的落地实现。尝试将DDD的思想落地到代码层面。本文为系列文章中的其中一篇,其他内容可参考:使用领域驱动设计思想实现业务系统。
阅读全文
摘要:DDD是Domain driven design(领域驱动设计)的简称,是一种软件设计和开发的方法论,特别适用于复杂业务领域软件设计和开发。本文算是《领域驱动设计》这本书的读书笔记,加上自己的一些读后感。网上有很多这本书的读书笔记,但是都是别人的,不如自己总结的理解深刻。建议大家在读这本书时结合《实现领域驱动设计》一起看,同时,一定要去实际建模和编码,理论联系实际才能得其精髓。
阅读全文
摘要:本文为《DDD》系列文章的导读,DDD系列blog记录了社区系统的DDD实践过程中的读书笔记、问题、解决方式、思考过程、心得。希望通过社区系统的DDD实践,挖掘出一些DDD的常见例子,抛砖引玉,共同进步。
阅读全文
摘要:最近在做订单及支付相关的系统,在订单表的设计阶段,团队成员就‘订单状态’数据库字段设计有了一些分歧,网上也有不少关于这方面的思考和探讨,结合这些资料和项目的实际情况,拟对一些共性问题进行更深一层的思考,笔耕在此,和大家一起探讨。
阅读全文
摘要:在做业务系统设计时,很多时候需要理清业务领域,做出正确的划分。而往往开发人员为了抽象而抽象,忽略了业务核心点,本末倒置,过度抽象,适得其反。本文实际业务系统设计案例的讨论中得出一个心得:抓住业务核心,避免过度抽象。
阅读全文