设计先行,文档先行的理念
业务需求、ui链接
结合业务ui梳理 OKR(Objectives and Key Results)即目标与关键成果法,是一套明确和跟踪目标及其完成情况的管理工具和方法。 OKR的主要目标是明确公司和团队的“目标”以及明确每个目标达成的可衡量的“关键结果”。 OKR首先是沟通工具,OKR是努力的方向和目标,OKR必须可量化(时间&数量),目标必须一致,通过会议Review时时跟进/及时调整OKR
结合业务ui数据操作流程梳理 任务拆解,有助于理解需求,也能更好的估算工作量,最重要的是能提前发现产品设计的漏洞。 拆解的粒度,拆分到可以准确评估工作量为止,每个子任务的工作量是2-4小时。 OKR,为确保达成企业目标的关键结果分解与实施
技术架构活动图
参考OSI网络分层模型,分层设计与治理。
应用分层
- 请求处理层-Web层(HTTP/RPC):各类基本参数校验。
- 业务逻辑层-Service层(聚合服务):相对具体的业务逻辑服务层。
- 通用逻辑层-Manager层(领域服务):
- 通用业务处理层;
- 对Service层通用能力的下沉,如缓存方案、中间件通用处理;
- 与DAO层交互。
- 数据持久层-DAO层(Mapper):数据访问层,与底层MySQL等进行数据交互。
业务聚合服务、领域服务,如何支撑业务场景
服务代码仓库
com.xxx.insurance.xxx.service.InsuranceXxxService
核心业务链路流程时序图
数据建模,模型与索引为使用场景而生
遵循阿里《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信息表'
;
HTTP接口入参出参等元数据描述,需要与前端同学对齐交互数据,使用EasyApi/Swagger插件自动生成 如何设计一款优秀的API
XXX文档 http://localhost:3000/group/1400
com.xxx.insurance.xxx.controller.InsuranceXxxController
变更三板斧/稳定性三板斧/安全生产三板斧:可灰度、可监控/可观测、可回滚 服务应用间是否有依赖顺序?线上配置?异常日志?应用监控or业务监控?