前言笔者所处的业务团队服务于腾讯投资M&A部门,其中系统涉及的投资相关业务在国内具有典型意义,是覆盖一级市场、二级市场、基金的多品类全流程的投资系统,其中包含了对投资项目本身的业务处理,也包含了投资流程的工作处理(类比OA系统),还包括了其他大部分系统需要考虑的技术建设(例如基于安全性考虑的数据、合同文件、电子签等)。这些方方面面的建设使得这套系统在除了技术本身之外,对业务的掌握能力非常重要。虽然技术团队跟随产品团队完成技术开发,但是在一些具体问题上,如果对业务不熟悉,很难真正处理好开发过程中的某些具体的逻辑代码,而对于投资系统而言,准确实现业务是最基本的要求,否则带来的风险可想而知。这也给我们技术团队带来了巨大挑战,如何在如此复杂的系统中,比较合理的掌握每一个技术细节背后的业务逻辑,确保业务实现的准确呢?我把目光瞄准了DDD,这个由Eric Evans在《Domain-Driven Design: Tackling Complexity in the Heart of Software》(2004)总结提出的一整套概念和方法论。在阅读人民邮电出版社出版的翻译版本之后,我开始收集各种资料学习和思考,探索在前端践行DDD的可能性。我想,基于DDD的理念,可以帮助我所处的团队合理的形成良好的业务沟通规范和业务逻辑沉淀流程,通过DDD在技术方面的指导,帮助我们构建更加稳固的业务系统。基于这样的想法,我开启了相关的探索。