• 初出茅庐:主程的历练


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

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

    在这里插入图片描述

    前言


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

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

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

    在这里插入图片描述

    项目生命周期


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

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

    主程的历练


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

    需求阶段

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

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

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

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

    需求评审

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

    设计阶段

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

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

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

    设计评审

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

    项目排期

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

    开发阶段

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

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

    review~

    在这里插入图片描述

    接口文档、联调

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

    测试阶段

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

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

    验收上线阶段

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

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

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ImC9DBae-1659162423542)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/33b5e60fabc64906bc5c92a72dc9e86a~tplv-k3u1fbpfcp-watermark.image?)]

    是不是还缺点什么?

    没错,项目管理

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

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

    复盘

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

    总结


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

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

  • 相关阅读:
    spring bean实例注入到map 集合中
    找准方向选CRM客户管理系统!2023年排行榜推荐
    mysql入门与mongoDB入门
    多模块间通信存在完美的设计么?
    Flink DataStream API
    2376.统计特殊整数
    深入理解指针(三)
    如何用小程序端进行测试?
    SpringBoot基础篇 (4)—SSMP整合案例
    小学生C++趣味编程 视频集
  • 原文地址:https://blog.csdn.net/weixin_38336658/article/details/126071959