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

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

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

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

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

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

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

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

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

理解技术债务

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

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

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

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

全栈思考,前端行动

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

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

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

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

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

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

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

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

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

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

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

面向所有开发者的标准

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

标签:
  • 热门焦点
  • 官方承诺:K60至尊版将会首批升级MIUI 15

    官方承诺:K60至尊版将会首批升级MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版将会搭载天玑9200+处理器和独显芯片X7的同时,Redmi给出了官方承诺,K60至尊重大更新首批升级,会首批推送MIUI 15。也就是说虽然
  • 对标苹果的灵动岛 华为带来实况窗功能

    对标苹果的灵动岛 华为带来实况窗功能

    继苹果的灵动岛之后,华为也在今天正式推出了“实况窗”功能。据今天鸿蒙OS 4.0的现场演示显示,华为的实况窗可以更高效的展现出实时通知,比如锁屏上就能看到外卖、打车、银行
  • 一文看懂为苹果Vision Pro开发应用程序

    一文看懂为苹果Vision Pro开发应用程序

    译者 | 布加迪审校 | 重楼苹果的Vision Pro是一款混合现实(MR)头戴设备。Vision Pro结合了虚拟现实(VR)和增强现实(AR)的沉浸感。其高分辨率显示屏、先进的传感器和强大的处理能力
  • 一篇聊聊Go错误封装机制

    一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 如何通过Python线程池实现异步编程?

    如何通过Python线程池实现异步编程?

    线程池的概念和基本原理线程池是一种并发处理机制,它可以在程序启动时创建一组线程,并将它们置于等待任务的状态。当任务到达时,线程池中的某个线程会被唤醒并执行任务,执行完任
  • 腾讯VS网易,最卷游戏暑期档,谁能笑到最后?

    腾讯VS网易,最卷游戏暑期档,谁能笑到最后?

    作者:无锈钵来源:财经无忌7月16日晚,上海1862时尚艺术中心。伴随着幻象的精准命中,硕大的荧幕之上,比分被定格在了14:12,被寄予厚望的EDG战队以绝对的优势战胜了BLG战队,拿下了总决
  • 消费结构调整丨巨头低价博弈,拼多多还卷得动吗?

    消费结构调整丨巨头低价博弈,拼多多还卷得动吗?

    来源:征探财经作者:陈香羽随着流量红利的退潮,电商的存量博弈越来越明显。曾经主攻中高端与品质的淘宝天猫、京东重拾“低价”口号。而过去与他们错位竞争的拼多多,靠
  • 华为发布HarmonyOS 4:更好玩、更流畅、更安全

    华为发布HarmonyOS 4:更好玩、更流畅、更安全

    在8月4日的华为开发者大会2023(HDC.Together)大会上,HarmonyOS 4正式发布。自2019年发布以来,HarmonyOS一直以用户为中心,经历四年多的发展HarmonyOS已
  • onebot M24巧系列一体机采用轻薄机身设计,现已在各平台开售

    onebot M24巧系列一体机采用轻薄机身设计,现已在各平台开售

    onebot M24 巧系列一体机目前已在线上线下各平台同步开售。onebot M24 巧系列采用一体化轻薄机身设计,最薄处为 10.15mm,拥有宝石红、午夜蓝、石墨绿、雅致
Top