乐趣区

关于java:如何撰写好技术方案设计真实案例干货分享

一、前言

作为一个技术开发者,特地是高级、资深、架构师等,往往会遇到依据需要撰写技术计划。那么如何撰写一篇好的技术方案设计,咱们明天就来聊一聊这个话题。

二、技术计划是否有必要

答案是必定的。
我见过太多因为后期布局不到位(甚至是没有技术方案设计,开个技术讨论会口头沟通一下,就间接评工期开干的),这其中不乏很重要,工期很长的我的项目。而最初呢,到联调阶段各组串不起来,更可笑的是,产品和产品同学之间都没沟通分明。导致最终很被动,到处挖坑补洞,而且又破费了更多的工夫和精力,甚至导致我的项目延期,后续扩张性不强等等问题。
所以我认为,技术计划是必不可少的一个环节。往往很多坑在这个阶段就能够防止的。
古人云:” 磨刀不误砍柴工 ”,技术计划就是磨刀的过程。

三、如何写好技术计划

  1. 要贴合需要,满足需要是大方向。
  2. 可施行。要思考以后条件下是否可落地,如:

    • 团队人员承受能力: 技术选型的时候,要思考团队成员承受能力,自觉引入新技术,可能造成不可预知的问题。
    • 工夫老本: 一般来说 Java 或者 PHP 后端我的项目(c 语言我的项目可能会做一年甚至更长时间),3 个月工夫周期算是比拟长的了,如果依照此计划,须要半年甚至更长时间,那可能也不切实际。
    • 资源老本: 例如,我的项目可能须要引入 Redis,Mysql,ES,MongoDB 等根底资源,那公司是否能提供这些资源(服务器是要钱的)。如果不能,在写技术计划时候,可能就须要思考是否有代替计划。
  3. 应急解决 & 可靠性保障
    只有人能想到的问题,就肯定会产生,不能有侥幸心理。
    所以要做好呈现问题的应答策略,这里就必须做好如:

    • 灰度计划
    • 降级计划
    • 异样解决
    • 容量评估

四、技术计划模板

上面是我总结的技术方案设计模板,心愿对大家所有帮忙。

1、背景

目前的背景现状,简要阐明以往业务所遇到的问题,给出本次我的项目迭代的起因,解决的技术痛点或业务痛点

2、指标

通过次计划要达到什么样的业务指标,例如,撑持多少 QPS,性能相比当初晋升多少倍,为前期程度扩大做铺垫

3、整体计划

1)架构图
2) 流程图
3) 时序图
4) 调用链路图

4、存储设计

如 Mysql 表结构设计,缓存设计,ES 存储设计等等,阐明 Schema、字段类型、默认值、形容信息等。

5、接口定义

列举出接口的构造,参数,返回值等

6、灰度计划

按什么形式灰度,如何做灰度计划,用表格的模式列出分几个阶段灰度,每个阶段大略工夫多长。

7、降级计划

当呈现问题如何降级操作,如何回滚。将危险降到最低水平。

8、关联系统 (性能) 影响

重点须要各组留神的中央,相干人员须要特地关注,一一确认到位

9、资源分配状况
  • 人力资源: 实现计划须要多少人力投入 (开发人力,测试人力,运维人力) 等。
  • 硬件资源: 实现上述计划,须要哪些物理机器资源,运维人员需提前准备。
10、预估工期及工夫节点

列举出工期及要害工夫节点,如,什么时候联调,什么时候提测,什么时候开始灰度上线,以及后续的迭代欠缺打算等。

五、舒适提醒

我也给大家总结了我之前做零碎重构写的技术方案设计文档 -PDF 版本(已脱敏),给大家总结了 2 套,有须要的敌人能够公众号后盾留言 ” 计划 ” 即可获取。

退出移动版