初出茅庐:主程的历练

Posted 大鸡腿同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初出茅庐:主程的历练相关的知识,希望对你有一定的参考价值。

个人博客:👉进入博客,关注下博主,感谢~

🌈所有博客均在上面博客首发,其他平台同步更新
🏆大家一起进步,多多指教~

前言


有一次看电脑累了,倚着窗户休息,静静地看着远方的高楼大厦放空自己,然后旁边走来了一位同学,跟我聊起了天,他说似乎没有想象中的学习到的技术多,感觉每天都没有尽头的crud。

嗯~我能理解他的想法,企业一般分为tob还有toc,toc企业面向用户,意味影响面很大,用户体验要很好,一些活动会有大量的并发,而恰恰是这种高速发展的需求带动了技术的进步,所以在toc企业挑战性会更高。对于tob企业,面向供应商、采购商、工厂,这时更加看重业务流程,有些根深蒂固的交易方式,即使你想推进技术改革,别人也不一定配合。所以相对技术推进会缓慢些,这时突出的是处理复杂的业务流程,各个模块的扯皮,关系上的梳理。

但是我在这个过程却成长了很多,因为尝试了从未涉足的领域,从未注意到的细节,我在前司有段时间作为主开发,但是做主程倒是第一次,有意思~

项目生命周期


我们温习下一个完整的项目都经历了哪些节点:需求文档->需求评审->设计阶段->设计文档评审、测试用例评审->项目排期->开发阶段->api文档->联调阶段->测试阶段->验收->上线

我们只有熟悉整个流程才能不遗漏,然后层层把关,将项目上线。

主程的历练


首先我们针对项目生命周期来谈谈每个阶段有哪些要点,怎么将这些细节做好来。

需求阶段

之前在那本阿里工程师修炼里头,讲过业务思想,这一个节点主要设计到业务思想。这一模块最重要就是:业务+需求,一个是背景,就是我们在做什么业务,从事什么行业,另一个是需求,就是这一期的需求是为了解决什么痛点。

第一步是熟悉业务跟测试同学要个账号,然后走下完整流程,熟悉业务操作,梳理出前后的关系,比如说当前的流程是处于哪个环节,在整个流程里面扮演什么作用。比如说对账,首先采购商会说我要买什么货,然后平台去给他找货,匹配需求过程,然后找到货之后,采购商需要负钱对吧,这就是入账。入账之后,就到了供应商发货,这里涉及到跟单、物流、售后、财务。然后货物确认之后,就是出账是吧,打款到供应商账户里头。

第二步理解需求,why?为什么产品要提出这期需求,不做行不行,为了解决什么问题。当一系列问题下来之后,你会清晰的了解到之前的做法,出现的问题,然后这期需求是为了把这个问题解决了。我们对需求又有了深一层的理解。

第三步是思考产品给的方案是否有优化的空间,产品的能力也有等级,有些给我感觉就是业务的传声筒,就是有什么需求出什么方案,有些给我感觉,他会有自己的规划,我们平台需要沉淀什么东西,哪些内容放在哪里会比较好。

需求评审

这个阶段的要点:不断提出疑问,通过问题将自己的疑惑解开,这样会让后面的流程更加丝滑,不会说开发了一段时间,产品觉得需求方案不对劲,我肝,这种事虽然在我部门比较少见,但是在其他部门我听过很多次了,把关不行啊🙅

设计阶段

有一次我老大问我设计文档有哪些部分?我随口能说出几个,但是我就想why,为什么这几点非写不可?

  1. 梳理功能点-> 接口。(我们需要清晰有哪些接口实现,以及对接)
  2. 物理、逻辑架构。(需要理清整个项目的依赖,交互方式)
  3. 核心交互流程图
  4. 风险点:数据会泄漏?验签算法的严谨度?
  5. 扩展点:安全性,高并发、扩展性

再回到why的问题,我们执行一项任务,首先明确目标,然后梳理各自分工,协调共同作业的方式,然后进度控制,达成目标。上面这些东西都是在梳理实现的目标,还有协作的方式,整个方案的完善程度,体现了严谨

设计评审

在这个阶段我会被各种PK,刚刚进来的时候,我会比较虚,哈哈哈。后面我改变自己想法,别人有疑问是正常的,也是对方案的考验,是否一推即倒,所以在设计阶段要认真对待,严谨的考虑。

项目排期

到了为项目估摸时间的节点,梳理每个人作业的时间段,提供资料的时间点(接口文档),然后就是联调时间点,然后测试时间段,验收上线的时间点。

开发阶段

这个比较考验开发者的习惯还有经验的阶段,虽然大部分是crud,但是如果代码设计得好也为后面的扩展性提供基础。有个同事跟我吐槽,商品表每次修改需求都要加字段,然后需求不干之后又要删除字段,其实就是设计阶段把很多附属的字段都放到主表里头,其实应该是在扩展表。

然后是开发者的思想,比如采用DDD的框架,是不是外部的接口我都要放在防腐层呢?如果为了整体代码的样式是需要这样的,但是如果对于那些以后不会改变的接口,不需要做这层隔离的,只会增加复杂度。只有当业务扩展的时候,这个接口会被其他接口代替,或者扩展的时候才需要隔离开。

review~

接口文档、联调

这个没啥好讲,两个人谈得妥就行,怎么舒服怎么来吧,有人就喜欢某个姿势,你不能强迫别人吧,哈哈哈

测试阶段

首先需要测试用例评审,有些常规用例,还有边界值用例,如果性能要求高,还有压测。

这里要吐槽一波以前见过一个测试,功能随便点点,上线各种漏水,然后大佬让我少写点bug,啊哈哈,我服了你这老六。虽然有些代码可以自测,但是很多极端情况是没法面面俱到的,所以测试环节有多严谨,上线也有多放心。

验收上线阶段

当然就是上线前充足准备,涉及到设计文档的内容了,风险点:比如说遇到什么问题,能否快速回滚。如果流量大之后怎么应对。

不然就是代码或者人有个能跑就行,好家伙~

是不是还缺点什么?

没错,项目管理

在整个项目过程中,我们需要对项目进行进度管理,那么我们需要有里程碑,前后端开发完成,联调完成,测试完成,上线完成。然后定期的开会,对问题进行集中处理,或者梳理遇到的困难。

然后有个checkList,将每个人的分工一项一项的check,直到大家都完成✅

复盘

上线完,可以开个总结会,吹吹牛逼,或者事后鞭尸,哈哈哈。说笑了,其实就是总结在这个过程做得好的地方,还有需要改进的地方,然后下一次大家做得更好。

总结


作为主程的第一次初出茅庐,感觉设计阶段还有需求阶段是十分重要的,加深自己对业务的理解,对解决问题的思考,以及后续工作的质量都体现在这份文档里头。

这些流程需要沉淀下来,还有每个阶段的要点,为了将这个项目更好的推进。

以上是关于初出茅庐:主程的历练的主要内容,如果未能解决你的问题,请参考以下文章

初出茅庐

设计思想-第一篇-初出茅庐

设计思想-第一篇-初出茅庐

设计思想-第一篇-初出茅庐

TCP连接——爱的传声筒

51的历练