当前位置:首页 > 科技  > 软件

前端开发者如何消除代码中的技术债务

来源: 责编: 时间:2023-12-04 17:27:05 449观看
导读开发者很可能在无意中给代码增加了技术债务。以下是如何从代码中消除技术债务。译自How Frontend Devs Can Take Technical Debt out of Code。技术债务可以有多种形式。它可能表现为代码中的bug,或者同一部门不同开发

开发者很可能在无意中给代码增加了技术债务。以下是如何从代码中消除技术债务。OU628资讯网——每日最新资讯28at.com

译自How Frontend Devs Can Take Technical Debt out of Code。OU628资讯网——每日最新资讯28at.com

技术债务可以有多种形式。它可能表现为代码中的bug,或者同一部门不同开发者的编码实践不统一。OU628资讯网——每日最新资讯28at.com

技术债务是指任何由于首次没有做对而需要额外工作或重新工作的东西。有时开发者编写的代码在一台机器上运行良好,但是当部署到分布式环境时就会失败 - 这也属于技术债务,BOS Framework的创始人兼CEOShashank Purighalla表示,BOS Framework是一个云基础架构和DevOps自动化平台。OU628资讯网——每日最新资讯28at.com

“从高层次来看,从业务层面来说,你可以谈到有意的技术债务,几乎每个程序员和每个开发团队由于时间和预算局限都会承担这种债务。” Purighalla说。“同时也存在许多非故意或意外的技术债务,人们简单地不知道自己正在承担这种债务 - 由于知识欠缺,对整个生态系统认知有限,或者局限在自己的视野中。”OU628资讯网——每日最新资讯28at.com

Purighalla 在接受 The New Stack 的采访时表示,前端和 Web 应用开发者可以帮助解决技术债务。但首先,他们需要知道技术债务的表现。OU628资讯网——每日最新资讯28at.com

理解技术债务

开发者可以通过各种方式识别技术债务,首先是修复代码中的bug这种最令人讨厌的技术债务。但他说还有其他指标。OU628资讯网——每日最新资讯28at.com

“高级开发人员通常可以查看代码,并指出:‘我看到某些构造做得不好,或者某些实现可能不太优化。’” Purighalla说。“从识别系统中的bug,到未完成的代码,到实现粗糙,以及从生态系统分析角度略微提升 - 缺少安全构造或某些协议没有正确实现。”OU628资讯网——每日最新资讯28at.com

过去三年网络攻击的增加证明了软件技术债务的存在,他说。OU628资讯网——每日最新资讯28at.com

“这是技术债务的后果,我称之为无意的技术债务,因为大多数情况下,技术团队在使用、引入它或者接手该项目时,甚至不知道存在所有这些问题。”他说。OU628资讯网——每日最新资讯28at.com

全栈思考,前端行动

为了应对技术债务,Purighalla 建议开发者 - 甚至前端开发者 - 应把自己的工作视为一个更大系统的组成部分,而不要孤立看待。OU628资讯网——每日最新资讯28at.com

“开发者要考虑他们编写的代码是作为一个更大系统的一部分,而不仅仅是那个具体的部分。”他说。“有这样一个工程原则: '对艺术的过度追求完美会损害整体的完整性'。”OU628资讯网——每日最新资讯28at.com

BOS Framework创始人兼CEO Shashank PurighallaBOS Framework创始人兼CEO Shashank PurighallaOU628资讯网——每日最新资讯28at.com

这意味着即使不是真正的全栈开发者,开发者也必须具有全栈开发者的思维方式。对前端来说,这具体是要了解网站或Web应用所依赖的底层数据,Purighalla解释道。OU628资讯网——每日最新资讯28at.com

“这个系统明显是从前端开始的,终端用户通过它与应用程序进行交互,然后它与某种编排层比如API进行交互,然后与后端基础设施交互,最后与数据库交互。”他说。“编排层和前端的实现必须非常小心。”OU628资讯网——每日最新资讯28at.com

Purighalla说,前端开发者应对他们的应用所依赖的数据负责。例如,前端开发者应知道,他们最终从界面展示或获取的大致有5种类型的数据:OU628资讯网——每日最新资讯28at.com

  • 机密数据;
  • 高度机密数据;
  • 限制性数据;
  • 内部数据;
  • 公开数据。

根据数据的获取方式以及将数据放回数据库的方式,或者相反,根据从数据库获取并在界面展示数据的方式,这5种类型的数据有不同的要求,他说。OU628资讯网——每日最新资讯28at.com

“当我们谈论前端Web应用程序时,界面类型也非常重要。”他说。“特别是在AI世界中,你不仅仅是在屏幕上展示数据。你正在谈论一个高度交互的系统,它可能由自然语言处理驱动。所以数据的获取方式非常重要。”OU628资讯网——每日最新资讯28at.com

例如,前端开发者需要知道何时使用加密、验证码或注册表单。OU628资讯网——每日最新资讯28at.com

“理解开发者的决策如何直接影响组织及其领导也很重要。”他补充说。“这是开发者经常没有意识到的。”OU628资讯网——每日最新资讯28at.com

面向所有开发者的标准

要开始减少技术债务,开发团队应采用每个开发者都要遵守的编码标准,他补充说。OU628资讯网——每日最新资讯28at.com

“最基本的,要考虑命名规范。” Purighalla说。“如何命名变量?公共变量、全局变量、私有变量。”OU628资讯网——每日最新资讯28at.com

他还建议采用测试驱动开发。在测试驱动开发中,单元测试是在开发实际代码之前创建的。OU628资讯网——每日最新资讯28at.com

“最起码,测试驱动开发是减少功能和用户体验缺陷的一个非常好的策略。”他说。“所以需求不仅被视为需要验证的清单,而且被视为需要实现的结果的一部分。”OU628资讯网——每日最新资讯28at.com

测试驱动开发形成一种思维转变,从功能代码完整性或代码完整性的角度来思考代码,他补充说。OU628资讯网——每日最新资讯28at.com

他还表示,前端还必须考虑自己是否在开发某些内部目的的Web应用,或者面向公众的SaaS应用。可能存在与HIPAA、SOC 2或其他法规相关的合规性问题,他补充说。这与数据和安全的考量结合起来应该指导开发者。OU628资讯网——每日最新资讯28at.com

这决定了必须遵循的标准类型,以及必须以一定周期进行的代码扫描、代码覆盖率和安全扫描等基本原则。”他说。“要么进行静态代码分析,要么在每个部署周期中完成。”OU628资讯网——每日最新资讯28at.com

他补充说,优秀的实践必须致力于确保代码可读性,并进行适当的内联文档注释。这可以简单到开发者添加注释说明谁在开发,何时编写,为何编写,存在什么需求,目的是什么,他说。注释还应指明项目中是否存在更深层次的设计文档或顺序图等参考资料。OU628资讯网——每日最新资讯28at.com

“缺少这些是我们出现大量网络安全漏洞的原因,我不能过分强调这一点,”他说。“如果你可以选择技术栈,有时候就很容易,对吧?如果你用前端采用解释型语言而不是编译型语言,比如 PHP,很容易就可以找到漏洞然后开始攻击系统。即使只有一个小漏洞,也不需要很长时间。如果你使用基础的编译型技术,如果做得好,被攻击的机率会大大降低。”OU628资讯网——每日最新资讯28at.com

此外,他补充说,组织中的所有开发者都应遵循这些实践的相同标准。OU628资讯网——每日最新资讯28at.com

“开发者必须明白,自己是更大生态系统的一部分,要构建能融入总体框架的组件,”他说。“从商业视角理解一切,然后按照商业需求反向工作,这可能包括我不会专门编写某些安全构造的要求。”OU628资讯网——每日最新资讯28at.com


OU628资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-37687-0.html前端开发者如何消除代码中的技术债务

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 2023软件架构和设计的趋势

下一篇: 华为自研的前端框架是什么样的?

标签:
  • 热门焦点
  • MIX Fold3包装盒泄露 新机本月登场

    小米的全新折叠屏旗舰MIX Fold3将于本月发布,近日该机的真机包装盒在网上泄露。从图上来看,新的MIX Fold3包装盒在外观设计方面延续了之前的方案,变化不大,这也是目前小米旗舰
  • 一加首款折叠屏!一加Open渲染图出炉:罕见单手可握小尺寸

    8月5日消息,此前就有爆料称,一加首款折叠屏手机将会在第三季度上市,如今随着时间临近,新机的各种消息也开始浮出水面。据悉,这款新机将会被命名为“On
  • 把LangChain跑起来的三个方法

    使用LangChain开发LLM应用时,需要机器进行GLM部署,好多同学第一步就被劝退了,那么如何绕过这个步骤先学习LLM模型的应用,对Langchain进行快速上手?本片讲解3个把LangChain跑起来
  • 学习JavaScript的10个理由...

    作者 | Simplilearn编译 | 王瑞平当你决心学习一门语言的时候,很难选择到底应该学习哪一门,常用的语言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 小米公益基金会捐赠2500万元驰援北京、河北暴雨救灾

    8月2日消息,今日小米科技创始人雷军在其微博上发布消息称,小米公益基金会宣布捐赠2500万元驰援北京、河北暴雨救灾。携手抗灾,京冀安康!以下为公告原文
  • 2纳米决战2025

    集微网报道 从三强争霸到四雄逐鹿,2nm的厮杀声已然隐约传来。无论是老牌劲旅台积电、三星,还是誓言重回先进制程领先地位的英特尔,甚至初成立不久的新
  • Android 14发布:首批适配机型公布

    5月11日消息,谷歌在今天凌晨举行了I/O大会,本次发布会谷歌带来了自家的AI语言模型PaLM 2、谷歌Pixel Fold折叠屏、谷歌Pixel 7a手机,同时发布了Androi
  • 联想的ThinkBook Plus下一版曝光,键盘旁边塞个平板

    ThinkBook Plus 是联想的一个特殊笔记本类别,它在封面放入了一块墨水屏,也给人留下了较为深刻的印象。据有人爆料,联想的下一款 ThinkBook Plus 可能更特殊,它
  • 亲历马斯克血洗Twitter,硅谷的苦日子在后头

    文/刘哲铭  编辑/李薇  马斯克再次挥下裁员大刀。  美国时间11月14日,Twitter约4400名外包员工遭解雇,此次被解雇的员工的主要工作为内容审核等。此前,T
Top