04|架构设计(上):应用架构与代码组织
Robert

你好,我是 Robert。
上一讲我们定义了 Hify 的产品边界和技术栈。这一讲回答一个更具体的问题:代码怎么组织、外部调用怎么处理?
很多工程师拿到需求直接开始写代码,写到一半发现模块之间耦合得死死的、线程池被 LLM 调用占满了管理页面打不开、不同模块的代码风格完全不一样。这些问题不是写代码的问题,是动手之前没想清楚应用架构。
这一讲和下一讲合起来是 Hify 的完整架构设计。这一讲(上篇)聚焦代码层面——模块怎么分、Spring 代码怎么组织、外部调用怎么处理。下一讲(下篇)聚焦系统层面——怎么部署、瓶颈在哪、未来怎么扩展、数据怎么存。
应用架构:模块化单体
第一个问题:一个 Spring Boot 应用,内部怎么组织?
第 03 讲已经确定了一期 50 人单机部署。但单机不等于所有代码堆在一个 package 里。我让 Claude Code 给方案:
Hify 是一个 Spring Boot 单体应用,功能包括模型提供商管理、Agent 配置、对话引擎、知识库 RAG、简版工作流、MCP 工具接入。一个人开发,一期 50 人使用,但后续可能要扩到几千人。代码内部怎么组织?给我方案对比。
Claude Code 给了三个方案:
方案 A:按 package 分层。所有功能放在一个模块里,按 controller/service/mapper 分 package。最简单,但所有功能混在一起,后面代码量大了找文件费劲,想拆分也拆不动。
方案 B:Maven 多模块,按功能拆。一个 Spring Boot 应用,内部按 Maven 多模块组织,每个功能一个模块。模块之间通过接口调用,代码层面严格隔离。后续想拆分成微服务,只需要把接口调用改成远程调用,模块内部不用动。
方案 C:微服务。每个功能一个独立服务,通过网关路由,服务间 Feign 调用。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Claude Code 企业级全链路开发实战》,新⼈⾸单¥59
《Claude Code 企业级全链路开发实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论