随笔分类 - practice
方案实践,代码demo
摘要:问题 java使用何种类型表示精确的小数? 结论 float和double类型的主要设计目标是为了科学计算和工程计算,速度快,存在精度丢失 BigDecimal用来表示任意精确浮点数运算的类,在商业应用环境下,不存在精度丢失 cookie 接受double实例化BigDecimal存在精度丢失问题,
阅读全文
摘要:在产品迭代初期或者系统重构时期,业务模型的调整带来数据结构的变化,数据迁移不可避免。做好数据迁移需要考虑周全,且准备充分,做好预案,否则如果出现数据不一致问题,纠错成本高,同时核心业务数据的错误,会引起客户/业务方的投诉,团队也会承受巨大的压力。本文结合最近一个实际项目的数据数据迁移过程,讲述了踩过的坑,加上自己的一些思考得出的一些方法论,最后给出了数据迁移个脚本的一个实例
阅读全文
摘要:本文简单介绍如何引入validation的步骤,如何通过自定义validation减少代码量,提高生产力。特别提及:非基本类型属性的valid,GET方法的处理,validation错误信息的统一resolve。
阅读全文
摘要:在社区系统的DDD实践过程中,将遇到一些问题和产生的想法记录下来,共讨论。
阅读全文
摘要:通过对社区“查询推荐好友”场景在各个架构风格下实现的探讨,介绍各个架构风格中关于会话管理的处理机制及优缺点,管中窥豹,希望能通过实际的服务设计场景,加深对不同架构风格的理解。
阅读全文
摘要:今天系统版本发布,多个因素凑到一起引发线上故障。这个排障过程做的不是很好,存在很多改进的地方,作为排障的反面教材,分享给大家。
阅读全文
摘要:《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为复杂软件的设计提供了指导思想,其将易发生变化的业务核心域放置在限定上下文中,在确保核心域一致性和内聚性的基础上,DDD可以被多种语言和多种技术框架实现,具体的框架实现需要根据实际的业务场景和需求来制定。核心的指导思路归纳为:1、关注点放在domain上,将业务领域限定在同一上下文中;2、降低上下文之间的依赖,通过‘开发主机服务’(REST服务是其中的一种)、‘消息模式’、‘事件驱动’等架构风格实现;3、遵循分层架构模式。
阅读全文
摘要:本文为《DDD》系列文章的导读,DDD系列blog记录了社区系统的DDD实践过程中的读书笔记、问题、解决方式、思考过程、心得。希望通过社区系统的DDD实践,挖掘出一些DDD的常见例子,抛砖引玉,共同进步。
阅读全文
摘要:最近在做订单及支付相关的系统,在订单表的设计阶段,团队成员就‘订单状态’数据库字段设计有了一些分歧,网上也有不少关于这方面的思考和探讨,结合这些资料和项目的实际情况,拟对一些共性问题进行更深一层的思考,笔耕在此,和大家一起探讨。
阅读全文
摘要:一次线上环境omm问题排查及解决示例。
阅读全文