工作的一点点总结

回顾一年半之前,我还在作为一个项目的推进者,为整个项目的进度和完善而头疼。当时遇到的问题非常棘手。如今我又面临和完成了一个完整大功能的开发,完成度和问题解决上都有了一些进步。

一、一个完整的功能开发都有哪些阶段

1.1 需求评审

需求评审是整个流程的源头,是由产品同学将需求以文档的形式产出,然后拉着RD同学一起进行对需求进行评审。
在评审过程中,可以了解到需求的背景和作用,换句话说就是要做这个功能的意义。
当然还有很多问题需要搞明白:
1、这个功能在整个大的业务链路中有什么样的作用
2、它涉及到的交互上下游都有哪些,交互方式是同步还是异步
3、产品方案或交互方案是否合理
4、上游要求调用的耗时大约是多少,并发可能会是多少
5、文档中的规则或者描述是否清晰
6、异常的兜底方案是什么

我的一个习惯是:

要用大脑尽可能的在数据流的维度上,串一遍完整的业务流程。看看需求文档中是否缺失了哪些必要字段,可能会遇到哪些大卡点和小卡点。

1.2 技术评审

在进行完需求评审之后,就需要对功能进行技术方案的拟定。
其中就包含:
1、交互方式决定了通信方式
2、接口文档的产出,包括参数和返回值的数据结构等
3、数据库表的设计
4、类图设计
5、是否需要缓存
6、是否使用多线程的方式提高处理效率
7、是否使用分布式锁
8、特殊情况是否考虑清楚
9、是否需要兜底定时任务
10、是否需要分布式配置
11、是否需要限流和熔断
12、是否要加一个最外层开关

拉着qa进行技术评审,评审需要考虑的问题:
1、数据库设计是否合理,索引是否合理
2、类的设计是否合理
3、是否会发生死锁
不同公司的QA具备的能力不同,有的是会开发,能读代码;有的是只会黑盒测试,不关心内部实现,更侧重业务流程的验证和交互是否通顺。

1.3 开发

开发过程就是按照技术方案进行代码实现,当然,我们有单测覆盖率的要求,所以单测也可以算到开发过程中。
开发过程中也会遇到一些方案的考量:
1、是否需要用事务
2、分布式锁超时时间
3、是否存在主从库延迟,延迟的话是否加事务,或者强制走主库

1.4 自测

1、交互自测
2、各种逻辑分支测试,包括正向流程,异常流程,边界情况等
3、并发逻辑测试,主要是测试是否能安全上锁,上了锁以后是否能安全读写库等
4、压测

我的习惯:

尽量在每一个读写操作节点出摸你程序中断的情况,然后观察表中数据是否符合预期,比如:事务是否能正常回滚,兜底的定时任务是否能捞起异常流程等。

1.5 CR

一般在提交分支合并申请时,如果需求内容不多的话,tl 会自己 code review。如果是个比较大的功能,一般都是单独拉会,组内全员进行 CR。
1、类的设计是否合理
2、代码是否整洁,注释是否适中,是否存在潜在的NPE
3、其他可能未考虑到的问题等

1.6 联调

为了可以并行开发,服务提供方是需要给调用方提供mock调用的,无论是实时接口还是异步消息,都提供一个mock响应。先把两方的通信打通,这样联调就只剩下逻辑联调了。
当然,除了要在测试环境正常跑起来之外,最好还是记录一下在测试环境需要配置的内容和步骤,比如:
1、域名的配置
2、服务鉴权的添加
3、分布式配置的添加
4、数据库表的创建
5、公司内部的中间件平台上资源的申请,如:redis、topic和消费者的创建、分布式锁资源的申请等
讲这些一步步的都记录之后,上线前在准备上线单就不会漏掉了,因为在 tes 环境要完成的这些步骤,在 prod 同样也是要做的。

1.7 提测

一般能自测出来的问题都解决了,之后让QA完整的测一下。

1.8 预生产环境上线

等test 环境测试通过后,QA 会通过合并到 master 分支的申请,代码将会合并到 master 上。
在预生产环境上,公司之间会存在差别,我们公司是预生产环境与生产环境共用一套资源,如:数据库,topic和消费者,redis等。
在预生产进行构建和部署,一是要确保项目能在生产环境上正常启动;而是在生产环境上正常执行。

1.9 生产环境上线

完善上线单,一步一步在检查一下是否有漏掉的地方。
确认之后,进行上线操作。同时观察日志和监控。

二、可能遇到的问题

在整个功能开发过程中,会在不同的阶段遇到不同的问题。有可能代码写着写着,就会发现一个漏想的点,这个点可小可大,往小了说是少一两个字段,往大了说可能会成为整个需求的卡点。无论是大问题还是小问题,肯定越早暴露出来越好。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容