为什么说在企业级应用开发中,后端往往是效率杀手?

news/2025/2/21 20:20:32/文章来源:https://www.cnblogs.com/jackyfei/p/18712595

大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进。

在企业级应用开发中,如果你们团队人员是前后端分离的,你会发现联调让人很不省心,可以说往往是效率杀手,而提供联调的API一般由后端人员提供,为什么我要得罪后端开发人员,不是因为我是做前端的,恰恰相反,在我职业生涯的大部分时间里,我是做后端的,而且直接管理过不少前后端研发团队,不断试错的过程给了我极大的教训,下面是我的经验和分享,希望对你有所启发。

一、车祸现场

曾经我会不由自主觉得前端,产品、测试老爱夸大其词,把责任都归结给后端。可能是我没有认真取证,掌握的资料不够多,根本就没有深入思考过这个问题,总觉得相互碰撞不见得是坏事,让他们在磨合中把事情收掉也是可以的。

直到昨天,我们在做认证授权的身份源的时候,工期一拖再拖,让我彻底绷不住了,我让全部前端把所有联调还剩下的问题罗列出来,盘点一下截止收官还剩下哪些问题:

登录组件

  1. 接口没有返回之前tota订的规范
  2. 发送验证码接口500
  3. 忘记密码接口500
  4. 忘记密码不行导致重新设置密码接口调试无法继续
  5. 验证码/邮箱登录接口405

访问控制

  1. api/appcfg/control-access-grant?keyword=&skipCount=0&maxResultCount=10这个get接口应该有个默认all数数据
  2. api/appcfg/control-access-grant 添加后获取不到添加的数据
  3. 登录控制身份源启/禁用接口

身份源

  1. 首次创建成功之后,返回的id与请求的新数据id不一,导致页签定位不到(时而行时而不行)
  2. 创建成功之后,请求的列表数据为空,且总数count也没有发送变化(为0)
  3. /api/IdpCounn/id(修改名称) 传参太多

我刚整理完,前端又来投诉,还有几个接口问题刚刚发现,我一起发给你……
显然以上的问题大部分是后端产生的,我在想后端到底怎么了?

二、来龙去脉

事情的起因是这样的,公司要做认证授权配置(传送门),我对一个前端说,后端接口基本可以了,你可以联调了,评估一下时间吧?对方说要两天。我想了一下觉得差不多,就说可以。这是一个一年工作经验的前端,我觉得年轻人有冲劲,就按他的来,但是想到对方可能因为年轻而轻敌,于是过程反复交代确保代码质量和稳定性。

第一天复盘,问了下过程有没有问题,大家都说没什么,只有前端说有一个技术正在论证,还没突破。到了晚上我看他还在加班,就过去问他是否需要支援,他说自己再尝试看看,我说如果不行,我让某某谁帮你一下,他说协助需要占用对方比较多时间,暂时不用,我看干劲正浓,也就不打扰他,说晚上如果实在搞不定,明天我让人帮下你。

第二天中午,我觉得要提前了解下,于是问前端目前有遇到什么困难没有?前端说思路是有了,正要进行联调,但是接口目前有很多问题。多年经验告诉我,事情有点不妙,十有八九要延期了。因为下午还要预留时间用来测试和修改的不是?果不其然,到了下午,后端接口开始出现一连串的问题,群里的BUG清单一直再涨,待到7点多了,我想今天元宵,不能让大伙太晚下班,那就明早争取把这些东西收掉吧。

第三天,进入真正繁忙的联调时间,前端被我怼,后端被前端怼,接口问题随着联调不断暴露,简单BUG自不必说,不幸的是后端遇到其中一个接口一会儿正常,一会儿异常,后端始终搞不定,前端正联调起劲,结果又进入漫长的等待,我只好让对方先去忙别的去了,结果第三天搞了很晚,也没有全部完成,此时和评估的时间出现了2天偏差。

三 、不恰当比方

我把前端比作大厨,他需要的素材大部分是后端现做的,不是像大厂都是成熟的预制菜,随便用都不会出问题。但是在开发过程中,大厨想当然后端一切都是OK的,于是他套上围裙,打开大火,往锅里倒满油,当油烧到100多度的时候,发现蒜头没有了,菜洗的不干净,碟子也没有准备,炒起菜缺胳膊少退,原来10分钟的一盘菜,硬生生炒了1个小时。大厨心想后端你个老六,老是骗我说什么都好了,后端说我也没想到还有这个功能隐藏在这儿……

四、神探艾小坡

问对问题才能找到答案,通过和前后端沟通和自我反思,我很快就把自己管理过程的错误找出来,并发现了研发在流程上的问题:

开发前:

我犯了很多错误。

  • 第1个错误,我告诉前端说接口基本可以了,但是我说不出可以在哪儿,只是听从后端的人员说可以了;
  • 第2个错误,我只是让前端评估工期,我并没有做整体评估,让前后端人员一起参与进来评估;
  • 第3个错误,虽然过程中我有实时管控,但是前期我并没有让前后端人员聚在一起,一同分析产品设计、产品边界、原型图、各自实现思路;
  • 第4个错误,对后端接口的管理比较松散,没有提前约定接口文档(包括接口的数量、Payload、DTO、注释);
  • 第5个错误,没有明确的评估时间和科学有效的评估方法;

总之,开发之前,对后端来说,在时间范围内,再怎么准备都不过分,因为有太多的东西都是后端驱动的,而且这些活又细又多,需要提前准备,准备,再准备;检查、检查、再检查。因为你要提升效率,就要确保前端人员开箱即用,而且很好用。

开发中:

  • 第1个现象,虽然我会主动去问状态,但是对前后端来说,他们负责的内容是比较具体的,他们没有整体思维(分工使然),一小部分人员过程比较被动,不会主动沟通,遇到问题如果一直没有回复,比如前端问后端要结果,如果后端一直没回复,前端人员向上反馈的力度会比较弱,因为他表达过了就不会一直催,这是合理的。
  • 第2个现象,有时候后端因为忙,会说先等下,然后忙着忙着就忘记了,最后不了了之,如果不是负责人督导,这件事会一直悬而未决;
  • 第3个现象,后端人员的接口太超前了,在前端忙组件封装的时候,可能提前一个月就把接口写完了,然后前端一个月后才开始调试;
  • 第4个现象,联调后才发现,一个功能漏了接口,表关系也没有设计等等。

开发完;

  • 第1个问题,没有后端参与整体测试,就交付产品或测试了。或者有,但是预留测试时间不多,因为后端还是要做一个逻辑测试闭环,毕竟前端对逻辑测试会比较弱;
  • 第2个问题,测试完成后,代码审查缺失,核心代码可能没注释,扩展性很拉胯,这为将来的可维护性埋下雷,整体没有闭环;
  • 第3个问题,整体功能完成后,前后端缺少复盘。

五、解决方法

找到团队问题的症结,接下来就好办了。

前期

前期的一个原则是充分准备。

  • 后端交付确保:(1)完整的接口文档,包括接口数量、接口注释、接口payload和响应DTO;(2)接口校验不能存在遗漏;(3)接口不能出现明显的500错误;
  • 针对评估方法:(1)前端评估自己的时间(不包括联调);(2)后端评估自己的时间(不包括联调);(3)前后端各自开发时间 + 加上联调时间 = 整体时间;
  • 针对产品设计:(1)开发之前把相关材料分发阅读;(2)请产品、前端、后端聚在一起,一同分析产品设计、产品边界、原型图、各自实现思路,并控制好会议时间;
  • 后端接口管理:(1)在开发之前先写文档;(2)如果你觉得写文档比较耗时,可以优先定义控制器,把路由、payload、response、注释都写好,然后通过swagger交付给前端,然后再推进开发;
  • 针对评估方法:可以公开评估或者多人同时评估(翻卡牌的方式,避免相互影响),再取一个折中时间;

中期

开发过程,因为分工必然导致割裂,比如前端说后端接口有问题,后端因为其他任务,响应不定那么及时,有可能双方忙着忙着就都忘记了。这个时候,负责人肯定要进行过程管控,管控的时间、频率、方式方法就显得特别重要,避免过分干扰导致影响工作,又不能完全放纵,隔天再验。

我们曾经在这个环节犯了严重错误,因为我们前后端各自有负责人来管,出现问题,前后端各自解决,解决不了,反馈给各自负责人解决。这里的错误有两个:第一、流程过长,每个环节出现的问题很容易被掩盖;第二、项目没有牵头人,被掩盖的问题无法提前发现,提前解决。后面我们尝试了让后端的负责人充当项目经理角色,全程主导项目,目前还在尝试,这种方式可能不是最好的,至少会相对可靠一点。比如,每天中午负责人就发起状态询问,有问题立马反馈,当场决策。

后期

尽可能明确验收标准,在前期开发之前。因为很多时候东西收拾得不不干不净,除了过程管控,部分和验收标准模糊有关,当我们无法具象化我们的计划,其实我们是无法验收的。比如完成的标准是否包括自测,因为我发现个别前端对逻辑测试是不管的,或者测试会存在盲区;又比如验收标准是否包括代码评审,否则看似功能都ok了,但是代码可维护性很差,间接给后人运维埋下成本的坑位。最后如果一个完整的功能结束后,能开个短会,定期总结和复盘开发中的问题,效果可能就更好了。

感谢您的阅读,以上就是我的分享,希望我的文章能成为你成长路上的垫脚石,让我们一起精进。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/885378.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源EFCore 对比实体与实际数据库结构的工具-GZY.EFCoreCompare

前言 GZY.EFCoreCompare 是一个用于 对比数据库结构和 EF Core 代码中的 DbContext 的库。 它基于 EF Core 的 Scaffolding 机制,生成 DatabaseModel(从数据库提取的模型), 并与代码中的 DbContext 进行比对,从而找出两者之间的差异。 开源项目地址:GZY.EFCoreCompare欢迎s…

趁着过年的时候手搓了一个低代码框架

这个春节假期,我干了一件大事:春节期间手搓了一个低代码框架——CodeSpirit(码灵)。 为什么手搓低代码框架? 市面上的低代码平台不少,但大多存在“黑箱生成、性能损耗、扩展性差”的痛点。开发者一旦需要深度定制,往往束手无策。而CodeSpirit的初衷是:让全栈开发回归工…

C# TorchSharp 图像分类实战:VGG大规模图像识别的超深度卷积网络

目录VGG大规模图像识别的超深度卷积网络数据集直接下载opendatalab 数据集社区自定义数据集模型训练 教程名称:使用 C# 入门深度学习 作者:痴者工良 教程地址: https://torch.whuanle.cn 电子书仓库:https://github.com/whuanle/cs_pytorch Maomi.Torch 项目仓库:https://…

AI应用实战课学习总结(9)Hello 深度学习

本文介绍了深度学习和神经网络的基本概念,深度学习和传统机器学习的差别,还了解了PyTorch框架,最后通过一个例子演示了如何基于PyTorch使用一个视觉检测模型来快速完成图片的目标检测任务,十分方便。大家好,我是Edison。 最近入坑黄佳老师的《AI应用实战课》,记录下我的学…

CAP与BASE:分布式系统设计的灵魂与妥协

CAP 理论 CAP理论起源于 2000 年,由加州大学伯克利分校的 Eric Brewer 教授在分布式计算原理研讨会(PODC)上提出,因此 CAP 定理又被称作 布鲁尔定理(Brewer’s theorem) 2 年后,麻省理工学院的 Seth Gilbert 和 Nancy Lynch 发表了布鲁尔猜想的证明,CAP 理论正式成为分…

又双叒更新!清华大学DeepSeek手册 第Ⅱ册《如何赋能职场应用》

继清华大学DeepSeek手册第Ⅰ册《从入门到精通》发布后,很多小伙伴对DeepSeek的使用有了更深一层的理解,第Ⅰ册中不仅涵盖了DeepSeek的基本功能,还提供了实用的操作指南,帮助大家更好地掌握这一强大的AI工具;针对于职场环境,清华大学又推出了DeepSeek使用手册 第Ⅱ册《如何…

深入浅出理解Continuous Queries和Cypher Query Language

1. 什么是Continuous Queries?连续查询是 Drasi 最重要的组件。它们是您告诉 Drasi 要在源系统中检测哪些更改以及检测到更改时要分发的数据的机制。源为订阅的 Continuous Queries 提供源更改,然后为订阅的 Reactions 提供查询结果更改。Continuous Queries(持续查询)是一…

Bronco CTF Write Up 题解

Bronco CTF Write Up 目录Bronco CTF Write UpBeginnerBreak the BattalionSimon SaysToo Many EmojisCryptoAcross the TracksRahhh-SAWebGrandmas Secret RecipeReverseReversing for Ophidiophilestheflagishere!ForensicsQR Coded Beginner Break the Battalion这道题我们会…

我用DeepSeek找到了视频号流量密码,摊牌了!

两娃的爸创业中,公众号“绘个球”(回复1)实时分享创业动态,提供地理、军事类3D动画工具。流量初战告捷 先上流量效果,图从左至右分别为小红书、快手、视频号。对于一个短视频新手,算得上惊喜。如果是一条可长期复制的流量赛道,运营的事就水到渠成。接下来我会知无不尽地说…

Trivy : 容器漏洞扫描器

介绍 安装 扫描 Git 存储库 扫描容器镜像 扫描文件系统 扫描正在运行的容器 在 Dockerfile 中嵌入 Trivy介绍 Trivy 是aqua security开发的一款开源工具,用于扫描漏洞和配置错误。该工具可在多个层面发挥作用:它可以评估基础设施即代码、检查容器镜像、提供配置文件帮助、分析…

2024.2.16 鲜花

逆元详解逆元(详细揭秘)雑踏、僕らの街 やり残した鼓動がこの夜を覆って 僕らを包んで 粉々になる前に 頼りなくてもいい その手を この手は自分自身のものさ 変わらないはずはないよ 手を伸ばして 雑踏の中で声無き声で泣いている 足跡が今 誰かの声を消した朝 いつになって…

国内开源镜像站点汇总

还在为访问国外网站速度慢如蜗牛而烦恼吗?还在为下载大型开源项目耗时过长而焦虑吗?今天就为大家介绍一个神器:国内开源镜像站点! 什么是镜像站? 简单来说,镜像站就是将国外网站的内容(包括软件、文档、代码等)复制到国内服务器上,用户访问国内镜像站就相当于访问国外…