1.了解需求
a.需求方是谁?
b.为什么会产生这个需求?因为什么原因?
c.此需求和现在的服务定位是否一致,是否应该放在这块服务来做?
d.对于需求的处理,要考虑如果按指定方案是否会对性能【cpu,吞吐,内存】造成一定影响,如果没有其他更优的方案选择,那就要争对压测结果评估,吞吐达不到,上线时是否要扩服务节点,如果cpu影响较大,是否要升cpu,内存影响较大是否要做日志取舍或者升配
e.对于需求细化成点,针对每个点看需求为什么要求这样做?对这些点有的设定界限模糊不清,需向需求方了解清楚? 以及这些限定点是怎么来的,怎么定出来的?
2.需求文档编写
3.开发
a.取名规范
b.减少耦合,尽量做到代码解耦
c.减少for循环嵌套使用,减少if嵌套使用
d.一个变量如果自服务启动就不会有变化,比如获取服务IP,那么服务init时就获取赋值,不要再for循环里每次获取,徒增服务压力
e.对于有些工具方法【比如获取服务IP】、常数,感觉后面其他的接口/方法也会用到,就放在工具类里
4.联调
a.与谁联调?
需求方
b.联调那些功能 ? 怎么联调?联调要达到怎么样的目标?
c.联调需要准备什么?
5.提测
a.提测点
b.压测方案【压测什么?压测指标?压测数据?压测计划?】
注:压测之前需了解数据库中数据情况,服务所在服务器内存和cpu情况,压测机器cpu和内存情况,生产高峰时的访问量 or 指标要求的qps【这里是指线上未有的方法】,用来评估,压测吞吐要达到多少【这里这样做的原因是:压测时一般是压单服务节点,所以一个节点的吞吐=1秒内生产上所有访问量/生产服务总节点数】
c.与测试过测试用例
防止测试有遗漏测试点
6.升级/上线
a.上线计划编写
b.上线计划会议
c.上线前准备【上线工单,数据库白名单,服务配置,apollo配置...】
d.上线
e.上线后进行服务的流量,cpu,内存观察看是否正常