首页/文章/ 详情

软件正在我们眼前悄然被侵蚀

1月前浏览626

就像岩石和山脉会受到自然侵蚀,今天的全球软件也在遭受侵蚀。每天,开发者们都发现自己软件的混乱程度越来越高,而这些软件的架构却无人能够理解。随着AI产业发展驶入“快车道”,我们几乎没有时间去理清这些混乱。     

近几年,软件频繁出现问题。仅2023年,国内网购、网约车、社交应用等平台、系统或应用多次发生崩溃,引发媒体报道,甚至登上不同平台的热搜榜。在全球范围,Crowdstrike软件更新导致的“微软蓝屏”事件可能是最近最引人注目的一个。 

然而,开发者们却在维持这个摇摇欲坠的纸牌屋上投入了大量时间。基于2,000多位美国、英国、法国、德国和新加坡开发者和行政高管的调研报告《开发者系数(The Developer Coefficient)》指出,开发者每周平均工作41.1小时,其中三分之一的时间用于解决技术债务;超过40%的时间用于维护。 

图片来自 The Developer Coefficient (Stripe)  

这实际上反映出大量时间被用于非创新性工作。我们目睹着软件架构的逐渐衰败,因为科技行业要求开发者不断向前推进,譬如铺设新的铁轨,然而他们身后的铁轨却在逐渐崩溃。在当前这个竞争异常激烈的市场环境中,“以后再修”的心态似乎变得可以理解,甚至可以接受。 

什么是软件侵蚀            

我们大多数人并没有注意到软件侵蚀。这是软件内部结构的一种无形降级。最终,它使得软件的可读性、可维护性、可扩展性和可复用性变得困难,甚至不可能。它甚至可能威胁到系统的功能安全。 

软件开发是一个不断累积的过程。新的依赖关系总是被引入到软件的各个部分中。但有时候,新的代码并非必要,反而使得代码库越来越臃肿,越来越难以理解、修改和维护。我们之所以称之为Dependency Hell(地狱依赖)并非没有原因。在实施功能或修复错误时,弄清楚哪些更改是必要的需要极大耐心和技巧。 

软件侵蚀的雪球效应            

添加功能和快捷方式会逐步增加软件复杂性,每次迭代都在无形中侵蚀着软件架构的完整性。 

这实际上是一种自我应验的预言。开发者在工作流程中添加了快捷方式,导致代码库日益臃肿。想要一个新的功能?有可能会因此破坏一些东西。如果重新设计产品的某个方面,可能会引发一系列破坏性反应,影响到其他原本相互独立的团队。这种情况下,每一个改动都可能带来意想不到的连锁反应。 

开发者可能会因为额外的维护工作而感到沮丧,进而再次添加一个快捷方式。如此反复,直到代码库变得像一个极其不稳定的真人版叠叠乐游戏。每个人都害怕成为那个让整个结构崩塌的人。这就是开发者在面对日益复杂的代码库时所面临的挑战。 

这就是软件侵蚀的本质,无处不在的复杂性使得即使是发布最简单的新功能也变得痛苦无比。从长期来看,这种情况会对效率和可扩展性造成严重损害。 

我们是否忘了测试左移? 

许多公司取了一种令人失望的“补救”措施。他们增加了修复错误的时间,或者雇佣了更多的QA工程师来减轻开发者负担。然而,这些都只是在玩“打地鼠”游戏,新错误在被修复前并不存在,就像是用昂贵的创可贴来处理严重伤口。  

更明智的做法应该是重新架构代码库。对于只有两年代码历史的公司来说,这可能相对容易,但对于那些拥有二十年遗留代码的公司呢?即便他们完成了这项艰巨的任务,如果第一次没有真正吸取教训,软件侵蚀的循环就会再次开始。 

从开发者在维护上投入的时间来看,这些教训似乎还没有被充分吸取。软件侵蚀的问题依然存在,我们甚至可以预见,AI代码助手也面临同样的问题。除非每个行业都能自觉地从一开始就将QA紧密地融入到开发过程中。 

设计阶段就开始考虑这些问题,而不是等到所有的代码都写完之后再开始。在编写新代码的时候,就要运行静态代码分析和功能测试。即便已经做了所有这些事情,但效果并不理想。如果是这样的话,那就回到起点,从宏观层面去审视软件架构,而不是只关注细节层次。架构是否达到预期?在产品中定义的第一个组件是什么?组件之间如何通信? 

当您运行静态代码分析并理解在哪里复 制了代码;当您运行架构并理解依赖关系在哪里;当您运行功能测试并获得结果,您就开始理解了问题的所在。 这并不是选择其中一个或另一个的问题。所有的软件产品最终都应该能够从多种来源获取洞察。只有这样,才能回到起点,重新架构,以避免重蹈覆辙。 

遗憾的是,似乎很少有人真正知道自己实施的架构是什么样,如果我们理解自己的软件架构,那么新增任何功能,都可以根据自己对架构的理解来构建软件。那时,就不再需要走捷径了。 

Axivion Suite:解决软件侵蚀的利器              

Axivion Suite是一款专为解决软件侵蚀问题而设计的工具,通过静态代码分析、架构验证和依赖关系管理,有效应对软件架构侵蚀。它能自动检测代码中的潜在问题,确保代码符合预期设计,避免架构偏离。通过对软件架构的全面分析,Axivion Suite帮助开发者理解和修复架构中的违规行为,防止复杂性和依赖关系的增加。此外,Axivion Suite还提供实时反馈,帮助开发者在早期阶段发现并修复错误,从而提高软件的可维护性和可靠性,特别适用于医疗和汽车等对软件质量要求高的行业。 

理解并解决软件侵蚀问题,是每一个重视软件质量的企业都应该关注的课题。Axivion Suite提供了强大工具,帮助企业从根本上解决这一问题。让我们一起,构建更加稳定和高效的软件系统。 



深圳市优飞迪科技有限公司,成立于2010年,是一家矗立于工业数字化时代的国家级高新技术和专精特新企业。公司专注于工业仿真软件和产品开发平台解决方案,并提供基于仿真与物联网技术的数字孪生解决方案,高质量助力企业实现孪生预演驱动决策优化的工业数字化目标。

十多年来,优飞迪科技专注于工业仿真软件及数字孪生关键技术的研究与应用,尤其在基于仿真与AI技术的数字模型生成算法、基于物联网技术的数据采集与处理、三维可视化呈现等方面,积累了丰富的技术储备与项目经验。公司拥有三十多项独立自主的知识产权,以及二十多篇软件专著。同时,优飞迪科技也与国际和国内的主要头部工业软件厂商建立了战略合作关系,能够为客户提供完整的工业仿真软件和产品开发平台解决方案。

优飞迪拥有一支高学历、高水平的工程师团队,团队成员普遍为硕士及博士毕业,部分为海外留学归来人员,具备非常丰富的行业经验。公司建立了完善的技术服务体系,长期合作的客户包括中国航天、工信部电子五所、中广核、华为、中兴、中车、三一、格力、华星光电等,与国内大型央企及军工企业也都有非常丰富的合作经验


来源:IFD优飞迪
航天汽车电子通信游戏数字孪生
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-10-19
最近编辑:1月前
优飞迪科技
赋能新仿真,创优新设计
获赞 309粉丝 282文章 388课程 4
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈