我见过太多由于前期方案不到位(乃至是没有技能方案设计,开个技能谈论会口头沟通一下,就直接评工期开干的),这个中不乏很主要,工期很长的项目。而末了呢,到联调阶段各组串不起来,更可笑的是,产品和产品同学之间都没沟通清楚。导致终极很被动,到处挖坑补洞,而且花费了更多的韶光和精力,乃至导致项目延期,后续扩展性不强等等问题。
以是我认为,技能方案是必不可少的一个环节。每每很多坑在这个阶段就可以避免的。
古人云:"磨刀不误砍柴工",技能方案便是磨刀的过程。

方案设计
三、 如何写好技能方案要贴合需求,知足需求是大方向。可履行。要考虑当前条件下是否可落地,如:团队职员接管能力:技能选型的时候,要考虑团队成员接管能力,盲目引入新技能,可能造成不可预知的问题。韶光本钱: 一样平常来说Java 或者 PHP 后端项目(c措辞项目可能会做一年乃至更永劫光),3个月韶光周期算是比较长的了,如果按照此方案,须要半年乃至更永劫光,那可能也不切实际。资源本钱: 例如,项目可能须要引入Redis,Mysql,ES, MongoDB 等根本资源,那公司是否能供应这些资源(做事器是要钱的)。如果不能,在写技能方案时候,可能就须要考虑是否有替代方案。应急处理&可靠性保障 只要人能想到的问题,就一定会发生,不能有侥幸生理。以是要做好涌现问题的应对策略,这里就必须做好如:灰度方案降级方案非常处理容量评估四、技能方案模板下面是我总结的技能方案设计模板,希望对大家所有帮助。
1、背景目前的背景现状,简要解释以往业务所碰着的问题,给出本次项目迭代的缘故原由,办理的技能痛点或业务痛点
2、目标通过次方案要达到什么样的业务指标,例如,支撑多少QPS,性能比较现在提升多少倍,为后期水平扩展做铺垫
3、整体方案1)架构图 2)流程图 3)时序图 4)调用链路图
4、存储设计如Mysql表构造设计,缓存设计,ES存储设计等等,解释Schema、字段类型、默认值、描述信息等。
5、接口定义列举出接口的构造,参数,返回值等
6、灰度方案按什么办法灰度,如何做灰度方案,用表格的形式列出分几个阶段灰度,每个阶段大概韶光多长。
7、降级方案当涌现问题如何降级操作,如何回滚。将风险降到最低程度。
8、关联系统(功能)影响重点须要各组把稳的地方,干系职员须要特殊关注,逐一确认到位
9、资源分配情形人力资源: 实现方案须要多少人力投入(开拓人力,测试人力,运维人力)等。硬件资源: 实现上述方案,列举须要哪些物理机器资源,运维职员需提前准备。10、预估工期及时间节点列举出工期及关键韶光节点,如,什么时候联调,什么时候提测,什么时候开始灰度上线,以及后续的迭代完善操持等。
五、温馨提示我也给大家总结了我之前做系统重构写的技能方案设计文档(线上真实版本,已脱敏),给大家总结了2套, 有须要的朋友可以"大众年夜众号后台留言"方案"即可获取,也欢迎有兴趣的朋友一起互换学习。