开发软件架构的5个理由

开发软件很复杂!随着时间的流逝,软件的复杂性似乎只是在上升。利益相关者有望提供更多功能。硬件的进步,创造了越来越复杂的设备。即使是简单的应用程序,也可以具有几十个软件模块,一个操作系统,并且在今天’的环境,互联网连接。不幸的是,我遇到的许多公司都没有为其系统开发软件体系结构。尽管这对于简单的DIY项目可能很好,但在产品开发中却可能导致意大利面条式代码,错过交付期限并激增开发成本。在今天’在本文中,我们将讨论开发软件体系结构所需的五个原因(即使您的软件已经编写完毕!)。

 

原因1 –架构可帮助您整理思想

开发人员应该花时间开发软件体系结构的第一个原因是,它可以帮助开发人员及其团队组织思想。软件体系结构将识别系统中的主要组件,它们的输入,输出以及它们之间的交互方式。该活动可以帮助开发人员了解如何组织软件,并允许他们思考可伸缩性和重用问题。重要的是要注意,一旦开发出的软件体系结构并不是一成不变的。架构通常会根据项目的阶段和业务需求而发展。具有抽出式的体系结构还可以帮助适当地改进体系结构,而不仅仅是盲目地动态改进代码,从而导致比开发工作更多的软件入侵。

 

原因2 –建筑为您提供了您所建筑的地图

软件体系结构还可以充当开发人员的地图,以便他们了解所构建的内容。如果没有建筑结构,建筑承包商将永远不会开始施工,因为返工和材料浪费将是巨大的。只需按一下按钮就可以更改和重新编译软件,并不意味着返工和开发成本就不会失去控制。实际上,在大多数情况下,我认为它们已经失控了。全面了解正在构建的内容可以极大地改善项目的实施阶段,而在此阶段,大多数软件成本不在维护阶段之内。

我经常遇到没有架构的团队,他们正忙于浪费时间试图将新功能破解到他们的软件中。在这种情况下,我经常会绘制出当前的体系结构图,以便开发人员知道他们当前所在的位置,然后为该体系结构需要发展成为理想的体系结构。在每次冲刺中,团队随即进行一点改进,随着时间的推移,这些改进将导致使用意大利面条式代码并将其转换为更干净,架构良好的软件解决方案。

 

原因3 –架构为您提供了代码审查的要求

我还发现软件体系结构对于代码审查非常有用。随着开发人员花时间创建体系结构,可以将此体系结构视为对软件的要求。在代码审查期间,可以使用体系结构图来确保实现适合体系结构。如果不是这样,则可能需要更改软件以适应体系结构,或者可能是体系结构需要发展以处理实施中的新发现。没有图表来说明代码可以做什么;可能很难确认软件是否与所需的体系结构匹配。

 

原因4 –可以使用架构将知识传递给同事

我发现,企业和开发人员通常将重点放在近期和长期。他们忙于编写代码,试图在短期内完成任务,而忽略了为确保长期成功而需要短期进行的活动。尽管软件体系结构需要短期的几个周期,但是开发和维护它可能具有将软件系统如何工作的知识转移给同事和新员工的长期利益。我见过太多的公司无法告诉我,为什么该软件除了做5年前的事情以外还做其他事情,而且太害怕更改它。或者,我在阅读代码并询问问题的地方只能收到空白的凝视。虽然架构不会捕获低级决策,但它应该捕获高层决策并制定计划,然后可以在多个图中使人们快速了解系统的工作方式。在没有这些知识的情况下,某人可能花了几个月的时间才能掌握本应只花一两周的时间。

 

原因#5–架构指导清洁,可重用和便携式软件

最后,软件架构就是地图,开发人员在编写软件时应使用的指南。干净,经过深思熟虑的体系结构可以使实现更清洁,更容易理解。架构可以指导开发人员将接口放在何处,需要在哪里管理依赖项,然后生成应该可重用和可移植的软件。虽然对于某些公司而言,重用性和可移植性不是产品线的主要关注点,但是,如果产品成功,则在某些时候,系统处理器和组件将达到制造终止日期。发生这种情况时,如果正确编写了代码,则升级到新处理器可能像换出软件层一样简单,也可能像完全从头开始一样复杂。

 

结论

软件体系结构是开发人员以有效方式成功开发软件所需的地图和指南。如果没有地图,开发人员通常不得不不断修改自己在做什么,以便考虑到他们未曾想到的组件和交互。软件体系结构不需要完全以瀑布的方式在项目中完全完成,而是可以在敏捷环境中发展以满足不断变化的需求和功能需求。实际上,拥有体系结构可以确保该软件具有灵活性和可伸缩性,以处理在开发周期中经常遇到的变化的需求。架构可以帮助最大程度地减少项目成本和时间表失去控制并导致项目失败的机会。

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.