feat: complete V1 phases 0-7
This commit is contained in:
@@ -0,0 +1,157 @@
|
||||
# 01 项目开发宪法(不可随意修改)
|
||||
|
||||
## 1. 产品定位硬约束
|
||||
|
||||
本项目必须始终是:
|
||||
|
||||
> 公益服务数字化平台,而不是宣传网站、商城、社交平台或复杂互联网平台。
|
||||
|
||||
V1.0 第一目标:让真实服务闭环跑通。
|
||||
|
||||
主链路:
|
||||
|
||||
```text
|
||||
服务对象/代申请人提交需求
|
||||
→ 工作人员受理
|
||||
→ 需求评估
|
||||
→ 建立/关联服务对象档案
|
||||
→ 创建服务工单
|
||||
→ 分配工作人员/志愿者
|
||||
→ 执行服务
|
||||
→ 留痕
|
||||
→ 服务对象确认/反馈
|
||||
→ 回访
|
||||
→ 必要时继续跟进
|
||||
```
|
||||
|
||||
任何新功能都必须回答:“是否增强这条主链路?”
|
||||
|
||||
---
|
||||
|
||||
## 2. 用户体验硬约束
|
||||
|
||||
1. 小程序优先服务普通群众、老人和低数字技能用户。
|
||||
2. 主要操作不得依赖复杂手势。
|
||||
3. 核心按钮大、清楚、可理解。
|
||||
4. 服务申请尽量在 3~4 个步骤内完成。
|
||||
5. 表单遵循“少填、可选、可拍、可说、可代办”。
|
||||
6. 不在前端暴露技术术语、内部状态码。
|
||||
7. 不为了视觉炫技牺牲加载速度和可理解性。
|
||||
8. 所有失败状态必须给普通人能看懂的说明与下一步动作。
|
||||
9. 适老化不是“放大字体”这么简单,必须包含点击区域、对比度、信息密度、步骤数量、错误恢复能力。
|
||||
10. 功能完成度优先于动画和装饰。
|
||||
|
||||
---
|
||||
|
||||
## 3. 技术硬约束
|
||||
|
||||
1. 国内网络环境可稳定开发、构建、部署和访问。
|
||||
2. 微信小程序作为公众端。
|
||||
3. Web 管理后台作为机构工作人员端。
|
||||
4. 后端采用模块化单体优先,V1.0 禁止为了“先进”拆微服务。
|
||||
5. MySQL 为核心关系数据库。
|
||||
6. Redis 只用于缓存、限流、短期状态等可恢复数据,不作为业务事实唯一存储。
|
||||
7. 文件不保存到应用容器本地磁盘;生产环境使用对象存储。
|
||||
8. 必须 Docker 化。
|
||||
9. 环境分 dev / test / staging / prod。
|
||||
10. 配置必须环境变量化,禁止把密钥提交 Git。
|
||||
11. 所有数据库修改必须 migration。
|
||||
12. 生产部署必须有备份、恢复、日志、监控和健康检查。
|
||||
13. 对外部供应商能力必须封装 Adapter,不让业务层直接绑定云厂商 SDK。
|
||||
14. V1.0 不引入 Kubernetes。
|
||||
15. V1.0 不引入复杂事件总线,必要异步任务先使用可靠 Job/Queue 模式。
|
||||
|
||||
---
|
||||
|
||||
## 4. 安全硬约束
|
||||
|
||||
平台会处理老人、困境妇女、儿童、残疾人、困难家庭等敏感服务信息。
|
||||
|
||||
必须做到:
|
||||
|
||||
- 默认最小权限;
|
||||
- 后台 RBAC;
|
||||
- 资源级权限校验;
|
||||
- 敏感字段脱敏;
|
||||
- 操作审计;
|
||||
- 不允许越权查询;
|
||||
- 不允许通过 ID 枚举他人服务记录;
|
||||
- 数据导出必须受控;
|
||||
- 文件下载必须鉴权;
|
||||
- 上传文件做类型、大小、扩展名、MIME 校验;
|
||||
- Token、手机号、身份证件、地址、儿童信息不得写入普通日志;
|
||||
- 删除业务数据优先软删除/归档,禁止随意物理删除;
|
||||
- 关键状态变更保留历史;
|
||||
- 不满 14 周岁相关信息按监护人授权与更严格权限原则处理;
|
||||
- 不把真实生产数据复制到开发环境;
|
||||
- 测试数据必须脱敏或生成。
|
||||
|
||||
---
|
||||
|
||||
## 5. 可靠性硬约束
|
||||
|
||||
1. 所有写请求应支持幂等或防重复提交。
|
||||
2. 重要状态迁移必须使用数据库事务。
|
||||
3. 不允许“接口成功但数据库只写了一半”。
|
||||
4. 异步任务失败必须可重试、可查询。
|
||||
5. 外部服务失败不能拖垮主业务。
|
||||
6. 外部短信、订阅消息、对象存储失败应有降级和补偿。
|
||||
7. 服务工单状态必须经过状态机校验,不能任意改字符串。
|
||||
8. 每个关键实体保留 `created_at / updated_at / created_by / updated_by`。
|
||||
9. 每个关键业务操作有 audit log。
|
||||
10. 任何“已完成”都必须有可验证结果,不能只靠前端显示。
|
||||
|
||||
---
|
||||
|
||||
## 6. 易维护硬约束
|
||||
|
||||
- 避免自研基础组件;
|
||||
- 避免魔法数字;
|
||||
- 枚举集中管理;
|
||||
- DTO 与数据库 Entity 分离;
|
||||
- Controller 不写复杂业务;
|
||||
- Service 不直接散落第三方 SDK;
|
||||
- Repository 层负责数据访问;
|
||||
- 公共错误码统一;
|
||||
- 日志统一;
|
||||
- 配置集中;
|
||||
- 每个模块有 README 或模块说明;
|
||||
- 复杂逻辑写测试;
|
||||
- 删除代码前检查是否有业务依赖;
|
||||
- 依赖升级必须经过测试,不追新版本。
|
||||
|
||||
---
|
||||
|
||||
## 7. V1.0 禁止范围
|
||||
|
||||
除非后续明确批准,V1.0 禁止:
|
||||
|
||||
- 在线公开募捐核心交易系统;
|
||||
- 复杂社交/朋友圈;
|
||||
- 即时 IM 聊天系统自研;
|
||||
- AI 自动作出救助资格决定;
|
||||
- 人脸识别;
|
||||
- 未经必要性论证收集身份证完整信息;
|
||||
- 微服务/K8s;
|
||||
- 大数据平台;
|
||||
- 区块链;
|
||||
- 自研工作流引擎;
|
||||
- 复杂积分商城;
|
||||
- 过度游戏化;
|
||||
- 对外开放 API 平台;
|
||||
- 多租户 SaaS 架构。
|
||||
|
||||
---
|
||||
|
||||
## 8. AI 功能原则
|
||||
|
||||
AI 是效率工具,不是 V1.0 主角。
|
||||
|
||||
后续 AI 必须:
|
||||
|
||||
- 默认建议、不自动做高风险决定;
|
||||
- AI 结果明确标记;
|
||||
- 工作人员确认后才写入正式业务记录;
|
||||
- 不把敏感数据发送到未经批准的外部模型;
|
||||
- 能关闭;
|
||||
- 业务流程不依赖 AI 才能运行。
|
||||
Reference in New Issue
Block a user