如何写出一篇好的技术方案?
作者:互联网
简介: 近期作者在写某个项目的技术方案时,来来回回修改了许多版,很是苦恼。于是,将自己之前写的和别人写的技术方案都翻出来看了几遍,产生了一些思考,分享给大家。
添加图片注释,不超过 140 字(可选)
作者 | 忠武 来源 | 阿里开发者公众号 近期在写某个项目的技术方案时,来来回回修改了许多版,很是苦恼。于是,将自己之前写的和别人写的技术方案都翻出来看了几遍,产生了一些思考,分享给大家。 我们为什么需要写技术方案?总结下来无非是几点,从不同人的视角来看:
数据分析系统之数据管理与数据仓库 点击这里,查看详情。 原文链接:http://click.aliyun.com/m/1000345004/ 本文为阿里云原创内容,未经允许不得转载”。
- 产品:验证技术方案是否能够 match 上产品方案
- 测试:验证技术方案对测试方案是否有足够 & 准确的输入
- 同事 & leader:参与技术方案评审,验证技术方案的合理性
- 新人(不单单指新同学也指新接触这一块的同学):拿到技术方案可以很快对某一块的事情熟悉起来
- 明确的目标:整个技术方案要达成什么目的
- 低沟通成本:产品测试能从技术方案上获取足够的输入,不需要反复找你确认
- 技术选型思考:为什么要这么做?和业内方案相比有什么好处和坏处,如何权衡的
- 少调整:尽可能少的技术方案需要调整, 否则无法完成开发任务
- 少补丁:尽可能少的 bug 或者遗漏
- 可扩展 & 可复用:相对简单的改动就能支持新增需求,类似场景可复用不需要重复开发
- 页面交互:能提升多少的运营操作效率,多少 PV、UV 这种可量化的数字?
- 业务 SOP 调整:带来的业务价值是什么?是能降多少本还是提升多少时效?
- 数据订正:订正能解决什么问题?防止多少钱未结算?又或者是防止多少客诉?
- 性能优化:优化多少?20%、30% 还是 50%?
- 数据隔离:隔离的范围是什么,涉及多少张表,多少数据?可以减少当前的什么问题?减少多少?
- 各种小工具:没有小工具之前是什么样?有之后是什么样?可以带来什么好处?
- 研发效能提升:提升多少?有没有可以量化的指标?而不是为了做而做。
- 图不用很细(比如加工比较复杂我们可以简单写**加工),但是要能看到全貌,具体的每个模块如果需要展开的,那么在对应的详细设计中体现即可,在这里我们关注的是整体;
- 接口如有归属不同的应用要标明;
- 数据存储介质不同要标明;
- 数据流转的箭头要清晰明确;
- 数据加工计算的输入和输出要体现,同时要体现加工的运行环境(比如到底是 odps 计算还是内存计算,内存计算的话是在那个应用)。
- 每个领域对象,如果要持久化,都有表来存储。我们设计完 ER 图的时候,应该根据这条原则做一番检查,避免漏掉一些表。在大型项目中,漏掉表是很常见的事情,应尽量避免。
- 领域对象之间的关系,如果要持久化,都要在表结构中体现。这种体现,可能是 code 字段,可能是外键,可能是中间表。我们设计完 ER 图的时候,也应该根据这条原则做一番检查,避免漏掉一些关系。在大型项目中,漏掉关系更是司空见惯,应尽量避免。
- 清晰定义的表名。设计 ER 图的时候,就要设计出清晰定义的表名。清晰定义的表名,可以帮助大家理解 ER 图,可以帮助大家映射回领域对象及其关系。在后续的设计和实施中,将沿用这个表名。
- 清晰定义的字段名、字段类型、字段长度和枚举值。很多同学容易忽略这点,他们往往清晰定义了表名,却没有重视表的字段。认真去做的时候,会发现,这里面有很多工作。例如,字段名是否合适,用什么类型好,字段长度多少合适,是否有枚举值等等,都需要一一斟酌。如果这点做好了,在实施的时候,可以避免很多麻烦,甚至避免返工。
- 外部 hsf 依赖:需要确认对应 hsf 接口的类、方法、version,以及二方包(也可使用泛化调用);
- 外部消息依赖:需要确认消息的 topic、数据格式;
- 分布式调度、缓存等中间件:当前应用是否接入过该中间件,未接入需要去到官网确认接入文档,接入的话需要确认是否可以复用接入逻辑。
- 领域依赖(如交易依赖商品)
- 应用依赖(如 cntcp 应用依赖 cngfc 应用)
- 接口依赖(如滚存看板查询接口依赖于锁接口 & 渠道集接口)
- 数据加工的详细图(如有)——同样推荐用图的形式可以更直观
- 消息设计(如有),明确消息生产方、消费方、tps、数据结构
- 自测用例(推荐),比较重要的功能点构造一些自测用例
- 监控
- 对账
- 灰度方案
- 数据隔离
- 兼容性评估
- 发布流程
- 监控目标:写清楚监控的是什么内容
- 监控点:如通过打印日志监控,那么日志打印在哪个类的哪个方法
- 监控触发:是通过 sunfire 采集触发还是其它,如果是 sunfire 采集最好能把监控项地址贴出来
- 监控订阅人:监控告警需要的订阅人
- 监控触发后的解决方法:如果发生异常该如何解决?如手工触发结算
- 对账目标:写清楚对账是为什么
- 对账方式:写清楚是怎么对账的(如通过 odps 天级定时任务,履行单上的关务资源 code 和日志表中关务 cp 回传报文的关务资源 code 对比要一致,不一致的形成某个数据集,通过锦衣卫-资损风险平台配置)
- 对账告警订阅人
- 对账异常之后的解决办法
- 多方前置准备
- 灰度切流开关设计
- 灰度切流节奏
- 异常应对
- 接口的向前兼容:尤其是对外的接口
- 数据结构的向前兼容:如不能随意改变字段的存储类型和格式
- 如有租户隔离 & 预发线上隔离的情况需要考虑数据
- 发布计划
- 检查项列表
- 发布流量监控
数据分析系统之数据管理与数据仓库 点击这里,查看详情。 原文链接:http://click.aliyun.com/m/1000345004/ 本文为阿里云原创内容,未经允许不得转载”。
标签:方案,依赖,一篇,技术,接口,对账,写出,监控 来源: https://www.cnblogs.com/yunqishequ/p/16355681.html