Skip to content

Latest commit

 

History

History
92 lines (64 loc) · 3.43 KB

业务需求技术方案模版.md

File metadata and controls

92 lines (64 loc) · 3.43 KB

业务需求技术方案模版

设计先行,文档先行的理念

1.需求背景

业务需求、ui链接

2.业务场景

结合业务ui梳理 OKR(Objectives and Key Results)即目标与关键成果法,是一套明确和跟踪目标及其完成情况的管理工具和方法。 OKR的主要目标是明确公司和团队的“目标”以及明确每个目标达成的可衡量的“关键结果”。 OKR首先是沟通工具,OKR是努力的方向和目标,OKR必须可量化(时间&数量),目标必须一致,通过会议Review时时跟进/及时调整OKR

2.1.业务功能拆解

结合业务ui数据操作流程梳理 任务拆解,有助于理解需求,也能更好的估算工作量,最重要的是能提前发现产品设计的漏洞。 拆解的粒度,拆分到可以准确评估工作量为止,每个子任务的工作量是2-4小时。 OKR,为确保达成企业目标的关键结果分解与实施

3.技术方案

技术架构活动图

参考OSI网络分层模型,分层设计与治理。

应用分层

  • 请求处理层-Web层(HTTP/RPC):各类基本参数校验。
  • 业务逻辑层-Service层(聚合服务):相对具体的业务逻辑服务层。
  • 通用逻辑层-Manager层(领域服务):
    • 通用业务处理层;
    • 对Service层通用能力的下沉,如缓存方案、中间件通用处理;
    • 与DAO层交互。
  • 数据持久层-DAO层(Mapper):数据访问层,与底层MySQL等进行数据交互。

4.业务领域服务

业务聚合服务、领域服务,如何支撑业务场景

服务代码仓库

com.xxx.insurance.xxx.service.InsuranceXxxService

4.1.业务链路流程

核心业务链路流程时序图

5.数据库表结构设计

数据建模,模型与索引为使用场景而生

遵循阿里《Java开发手册》-MySQL数据库(建表规约、索引规约、SQL语句)

CREATE TABLE `t_insurance_xxx` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `xxx_field` varchar(128) DEFAULT NULL COMMENT 'XX名称',
  `xxx_id` bigint(20) unsigned DEFAULT NULL COMMENT 'XXXid',
  `xxx_status` tinyint(4) unsigned DEFAULT '0' COMMENT 'XXX启用状态,0-未启用,1-已启用',

  `create_user_id` bigint(20) unsigned DEFAULT NULL COMMENT '创建用户id',
  `update_user_id` bigint(20) unsigned DEFAULT NULL COMMENT '更新用户id',

  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_xxx` (`xxx_id`),
  UNIQUE KEY `uk_xxx` (`xxx_field`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='XXX信息表'
;

6.API接口文档

HTTP接口入参出参等元数据描述,需要与前端同学对齐交互数据,使用EasyApi/Swagger插件自动生成 如何设计一款优秀的API

XXX文档 http://localhost:3000/group/1400

com.xxx.insurance.xxx.controller.InsuranceXxxController

7.上线计划与checklist

变更三板斧/稳定性三板斧/安全生产三板斧:可灰度、可监控/可观测、可回滚 服务应用间是否有依赖顺序?线上配置?异常日志?应用监控or业务监控?