当前位置: 首页 > 科技观察

谁说明天上线,这家伙根本不知道开发过程!

时间:2023-03-18 15:21:59 科技观察

本文转载自微信公众号“bugstack虫洞栈”,作者小傅。转载本文请联系bugstack公众号。一、前言互联网公司常见的工种有哪些?一个项目在互联网上的启动,需要各工种的配合。从研发的角度,承担产品需求,然后交由测试验证,最终完成项目交付上线。其实除此之外,还会有业务、运营、UI设计、运维来配合项目的发起、使用、运维。图18-1,Internet作业的协作。图18-1互联网工种协同工作除了一条线上的工作交替协同,还有相同工种之间的跨部门协同工作。例如:产品阶段:产品A中的一些服务需要另外一个部门的支持来开发相关的服务。那么双方的产品需要协调好时间节奏,配合投放。研发阶段:承担产品跨部门对接功能,双方研发方定义对接接口、对接时间,最终联调上线。测试阶段:根据产品的功能节点、研发开发流程、接口描述进行测试验证。最终,同部门工作轮换,跨部门工作协同,确保项目开发过程所需的所有资料如期上线。下面说一下项目启动中各个阶段的实施过程。当然,并不是所有的开发都一定要按照这个流程来执行。根据公司规模、项目规模、架构模式等不同,会略有不同。所以只能作为学习的参考,没必要强求收敛。2.时间节奏图18-2定义时间节奏层次:项目:定义项目开发时间节点人员:业务、产品、研发组长、测试组长、架构师、核心项目成员说明:这个时间节奏的定义很important,可以是项目经理发起的,也可以是产品发起的。一般互联网公司经常会发布一个项目,经常会听到老板说这个时候想做。或许这句话看似不无道理,但要想在市场上生存并迅速站稳脚跟,在高管们压力重重的情况下,上线是必须的。不过,想要满足上线时间,还需要确认整体的时间节奏。比如业务和产品什么时候明确需求,PRD什么时候开发出来的,R&D什么时候开发测试的,什么时候测试完成的。如果没有这样的时间节奏,前面的工作人员会把时间都花在上面,越到后面风险就越大。就像研发最后4天,测试才2天,上线会不会有bug!?因此,总体控制是项目的责任。3、资源投入图18-3资源投入层次安排:项目:研发资源投入人员:架构师、研发人员、测试人员说明:从研发的角度,研发需要从工程开发入手,配合测试(bug修正)、项目启动、参与等全过程,是一项长期工作。但是在某个阶段投入的时间成本会有所不同,可以按照一定的资源比例投入(1是100%,0.8是80%)。那么,当一个新的项目下来的时候,需要根据最新的原则和项目人员的可用性来安排资源的投入。项目多,资源配置不合理。可能会导致项目延迟交测或者部分功能由一个研发团队全部交测,最终无法修正BUG。这也导致了项目延误的风险。4.研发、测试、上线阶段图18-4研发、测试、上线阶段层次:项目:研发、测试、上线阶段人员:研发人员、测试人员、架构师/技术组长描述:内容这个阶段包括的比较多,主要是从研发的角度来看上下层人员的联系。研发接管产品需求并开始设计。设计完成后,研发负责人发起设计评审。这个阶段涉及的人很多(研发、架构师、测试、产品等)。功能的合理设计也是保证资源非常有效利用的重要一环。另一个合理的需求结构会为后续的需求迭代做铺垫。就像把女厕改成男厕一样,如果没有小便用的水管,那就很麻烦了。最终研发完成后,需要提交相应的成果,尤其是测试报告、接口文档、单元测试信息。如果R&D不能有完整的单元测试覆盖,那么在交给测试之后,每天都会有大量的bug修复。当研发和测试工作完成后,下一步就是发布上线。上线前夕,R&D将推出上线报告,同时各方配合,为产品和应用准备相应的上线配置数据和权限。最后上线,完成产品交付运营使用。五、项目评审图18-5项目评审级别:项目:项目评审人员:针对研发和测试人员说明:评审可能因意外而总结,技术总结,分享成长,几个方向,总结起来,避免雷同的事情来自发生。评审的内容一般包括技术的使用,如:DB、应用开发、网关等,以及业务领域逻辑的构建。ReplayDB:根据业务场景的应用增加数据库连接数的配置。禁止使用复杂的嵌套、函数类等进行业务查询。加强防复制逻辑字段,避免无法防复制的问题。索引字段的初始化检测和慢查询问题优化重放业务:所有营销场景的设计必须符合标准流程,在资金流结算的防重复设计中验证缓存使用的一致性。测试环境根据业务量的发展,模拟各种场景对外部支撑系统的依赖,进行通知压力测试。上报流量所有核心功能流程加强研发端代码审查质量,根据开发量不断优化研发端代码质量完善定期审查优化,通过演练不断加强质量关注开发分支在研发测试、修复、上线过程中,避免乱序合并造成问题。所有业务流程配置监控及图表打印日志,方便及时跟踪线上异常核心场景。全链路压测,有效保障质量,降低流量风险。Replay功能:功能逻辑封装优化,缓存,线程,验证日志完整性校验,入参、出参超时设置,对外接口异常调用,重试约定异常显示的紧急问题,测试环境复现,回溯部署:根据对压测标准部署服务核心业务双机房三机房非核心业务隔离RPC接口配置根据需要调整JVM、连接数、日志等参数重测接口:功能验证完整性异常流程的可重测性综上所述可能只是对某个项目的总结回顾,方便新人接受和理解项目的重点内容。如果团队能够及时有效的总结技术,落地数据,那么在技术传承上是非常有效的。6.小结互联网上一般的中大型项目的开发过程,一般都会涉及很多流程,需要合理控制。否则过程中可能存在一些风险,导致项目无法如期上线。当然,并不是所有的项目都需要这样处理。比如一些小功能的迭代,简单需求的开发,可以简化流程,快速迭代。盖厕所、盖猪圈、盖三居室还是有区别的,不能一概而论。做好技术分析、回顾、总结、归纳。积累的技术资料非常宝贵。既可以将项目开发经验传授给新人,也可以让大家做好自己的技术成长。并通过回顾总结,提炼出更多的新思路,改善技术氛围。好了,本章到此结束。对于特定的您或特定的公司,可能会有不同的观点和结果。如果有好的地方,大家可以一起讨论,互相学习。另外,最近学了一个新东西分享给大家:involution的反义词是:outsourcing,contract的反义词是:divorce!