# 仓库共享配置 > 第二层级配置(权重: 75),作用于当前代码仓库。定义项目级技术栈、架构约定、构建命令和团队协作规范,优先于 L1 公司统一配置生效。 > > **设计原则**:本文件声明项目的**技术事实**(用了什么、怎么组织)和**团队共识**(代码风格、架构决策)。L1 已覆盖的通用规则此处不重复。 --- ## 一、项目技术栈 ### 核心技术栈总览 | 层面 | 技术 | 版本要求 | 说明 | |---|---|---|---| | **后端语言** | Java | >= 17 (LTS) | 优先使用最新 LTS | | **后端框架** | Spring Boot / Spring Cloud | Alibaba 2022.x / 3.x | 微服务架构 | | **前端框架** | Vue 3 | ^3.3+ | Composition API | | **UI 组件库** | Ant Design Vue | ^4.x | antdv | | **前端语言** | TypeScript | strict 模式 | 新组件强制 TS | | **构建工具(前端)** | Vite | ^5.x | — | | **辅助语言** | Python | >= 3.10 | 脚本/工具/数据处理 | | **数据库** | PostgreSQL / MySQL | — | 按项目选择 | | **ORM** | MyBatis-Plus / JPA | — | 按项目选择 | | **缓存** | Redis | — | — | | **消息队列** | RabbitMQ / RocketMQ / Kafka | — | 按场景选择 | | **容器化** | Docker + Docker Compose | — | 本地开发统一 | | **CI/CD** | GitHub Actions / Jenkins | — | 按团队基础设施 | ### 项目依赖约束 #### 后端(Java) - **JDK 版本**:>= 17,统一使用 LTS 版本 - **构建工具**:Maven(优先)或 Gradle - **Spring Boot 版本**:团队统一版本,禁止自行升级 minor 版本 - **禁止引入**:已停止维护的库、与 Spring Boot BOM 版本冲突的依赖、未通过安全审计的第三方 SDK #### 前端(Vue) - **包管理器**:pnpm - **Node 版本**:>= 18 - **禁止引入**:`lodash`(用 `lodash-es` 或原生替代)、`moment.js`(用 `dayjs`)、`jquery` 及其插件 #### Python - **包管理**:pip / poetry / pdm(按项目选择) - **虚拟环境**:必须使用 venv / conda / poetry env - **禁止在全局环境安装项目依赖** --- ## 二、项目目录结构与架构约定 ### Monorepo 目录规范(前后端分离) ``` project-root/ ├── java/ # Java 后端服务 │ ├── src/main/java/ │ │ └── com/company/project/ │ │ ├── config/ # 配置类 │ │ ├── controller/ # REST API 接口层 │ │ ├── service/ # 业务逻辑层(接口 + impl 分离) │ │ ├── repository/ # 数据访问层 │ │ ├── entity/ # 数据库实体 / DO │ │ ├── dto/ # 数据传输对象 │ │ ├── common/ # 公共模块(异常、常量、工具、枚举) │ │ └── util/ # 工具类 │ ├── src/main/resources/ │ │ ├── mapper/ # MyBatis XML 映射文件 │ │ └── application*.yml # 配置文件 │ └── pom.xml │ ├── web/ # Vue 前端应用 │ ├── src/ │ │ ├── api/ # API 请求封装 │ │ ├── views/ # 页面视图 │ │ ├── components/ # 公共组件 │ │ ├── composables/ # 组合式函数 │ │ ├── stores/ # Pinia 状态管理 │ │ ├── router/ # 路由配置 │ │ ├── types/ # TypeScript 类型定义 │ │ ├── utils/ # 工具函数 │ │ ├── assets/ # 静态资源 │ │ ├── styles/ # 全局样式 │ │ ├── layout/ # 布局组件 │ │ └── App.vue │ ├── package.json │ ├── vite.config.ts │ └── tsconfig.json ├── app/ # Vue 前端应用 │ ├── src/ │ │ ├── api/ # API 请求封装 │ │ ├── views/ # 页面视图 │ │ ├── components/ # 公共组件 │ │ ├── composables/ # 组合式函数 │ │ ├── stores/ # Pinia 状态管理 │ │ ├── router/ # 路由配置 │ │ ├── types/ # TypeScript 类型定义 │ │ ├── utils/ # 工具函数 │ │ ├── assets/ # 静态资源 │ │ ├── styles/ # 全局样式 │ │ ├── layout/ # 布局组件 │ │ └── App.vue │ ├── package.json │ ├── vite.config.ts │ └── tsconfig.json │ ├── scripts/ # Python / Shell 脚本工具 ├── docker-compose.yml ├── Dockerfile └── docs/ # 项目文档 ``` ### 架构原则 #### 后端(Spring Cloud 微服务) 1. **分层架构**:Controller → Service → Repository,严禁跨层调用 2. **服务间通信**:内部服务用 OpenFeign,对外暴露用 RESTful API 3. **统一返回格式**:所有接口使用统一的 `Result` 包装 4. **异常处理**:`@ControllerAdvice` + 自定义异常体系,禁止 try-catch 吞掉异常 5. **配置管理**:敏感配置走 Nacos / Config Server,禁止硬编码 6. **API 版本管理**:URL 中携带版本号 `/api/v1/xxx` #### 前端(Vue 3 + Ant Design Vue) 1. **Composition API 优先**:新组件统一使用 `