# edev-cplus-emall **Repository Path**: mooodo/edev-cplus-emall ## Basic Information - **Project Name**: edev-cplus-emall - **Description**: 一个用C++编写的DDD示例代码,演示了名为emall的电子商务平台的开发,并且该项目开始尝试用AI全程参与设计和开发 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-09-26 - **Last Updated**: 2025-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: ddd, Cpp ## README # 用C++编写的DDD示例代码 这是一个用C++编写的DDD示例代码,演示了名为emall的电子商务平台的开发,并且该项目开始尝试用AI全程参与设计和开发 ## 让AI辅助软件开发 随着技术的飞速发展,AI人工智能已经得到了长足的发展,现在AI已经可以辅助程序员参与软件开发。 然而,AI在这个过程中还是一个辅助的角色,要让AI直接根据需求文档开发出我们所需的软件系统,依然是一个不太靠谱的事情。 我们需要将软件研发的过程化整为零,划分成更加细致的不同阶段,让AI一个阶段一个阶段地辅助我们完成各个阶段的工作,一步一步地完成研发工作。 这样的AI辅助开发的思路显然会更加靠谱,更加落地。而DDD与AI的结合,则为我们提供了全新的思路。 本项目就是一种有益的尝试,通过AI的辅助来完成DDD各个阶段的设计与开发。 通过AI的辅助,可以让设计开发人员从繁重的工作中解脱出来,包括文档的编写、程序代码的编写,以及测试用例的编写,让DDD开发更加轻松。 然而,AI不是银弹,不要奢望AI能100%地完成所有的工作。 在每个阶段中,AI通常只能完成一个大概,更多地内容需要设计开发人员一点一点地核对与更正。 与此同时,不要让AI一次性地完成大段的工作,而是让AI一个模块一个模块地做,甚至一个功能一个功能地做。 在这个过程中,不断地帮助AI修正问题、添加规则、调整思路,甚至将上一个模块的内容作为模板,来让AI去完成下一个模块的工作。 只有通过以上过程的反复调教,才能让AI最终生成我们满意的文档或代码。 基于DDD的AI辅助软件开发包括以下几个阶段: 1) AI辅助的业务需求探索阶段。在该阶段,通过提问,告知AI原始需求,让AI帮助梳理系统的业务需求,规划业务架构,划分子系统/功能模块 2) AI辅助生成用例模型与描述。在该阶段,通过前面的产出物,让AI生成各模块的用例,并按照一定格式生成每个用例的用例描述。 值得注意的是,虽然AI可以生成大量的文档,进行很多详细的描述,但并不一定都满足我们的需求。因此,需要设计人员一个一个地核对与修改, 才能得到最终满意的结果,详见`UserCaseModel.md` 3) AI辅助生成领域模型。在该阶段,将前面生成的用例模型作为输入,一个模块一个模块地让AI生成领域模型, 并定义每个领域对象的属性、方法、与其它对象的关系,详见`DomainModel.md`。如果需要,还可以对该对象添加辅助说明,说明该对象的相关业务。 领域模型与用例模型的梳理往往是业务需求的不断细化,常常也会在一些细节上进行变更。领域模型变更了,用例模型也要跟着变更。 4) AI辅助生成领域对象代码。在该阶段,将领域模型和用例模型作为输入,让AI一个模块一个模块地生成领域对象的程序代码。 5) AI辅助生成服务对象接口。在该阶段,将领域模型和用例模型作为输入,让AI生成各个模块的`Service`服务接口,然后由开发人员去实现每个接口中的方法。 当然,在这个过程中,有些方法的编码也可以使用AI生成。 6) AI辅助生成测试用例脚本。在该阶段,我不建议直接让AI生成测试脚本,而是先人工编写一个测试脚本作为模板,再结合领域模型和用例模型, 让AI去生成其它模块的测试脚本,并在这个过程中不断地更正和调整业务规则。