关于架构:架构可视化支撑系统演进探索

59次阅读

共计 1480 个字符,预计需要花费 4 分钟才能阅读完成。

摘要: 本文分享借助软件架构可视化辅助零碎演进的几个摸索:辅助了解现有零碎、剖析不合理依赖、看护现有架构、撑持架构演进。

本文分享自华为云社区《架构可视化撑持零碎演进摸索》,原文作者:无名小溪。

随着软件系统的规模和复杂度日益增长,软件的生命周期越来越长,软件开发的很大一部分工作集中于保护和革新现有的软件系统,实际钻研表明,软件资源估算的 50%~80% 耗费在对现有零碎的保护上,而软件维护者了解程序源代码的工夫要占整个软件维护的 47%~62%。软件维护曾经成为软件工程面临的重要课题之一,而正确和全面地了解软件系统是对软件进行保护的前提,通过架构逆向剖析,提供可视化能力,为软件系统的保护和演变能够提供无效撑持。

本文分享借助软件架构可视化辅助零碎演进的几个摸索:辅助了解现有零碎、剖析不合理依赖、看护现有架构、撑持架构演进。

1、架构可视化辅助了解现有零碎

当新的我的项目成员退出我的项目,面对大量代码,如何疾速了解、把握,是否有啥工具能够借助,提高效率?

通过摸索,通过在 IDE 中,提供架构可视化视图,展现零碎的架构依赖,通过代码与架构图的双向关联,实现编辑代码时,主动高亮对应的架构元素,双击架构图中的元素,疾速关联、跳转到对应的代码,实现代码和架构图的实时联动(Simon Brown 的架构即代码理念),帮忙开发人员更好的了解代码。

架构元素间,通过连线,展现之间的依赖关系,线上,通过数字示意耦合的数量,点击连线,能够展现、查看耦合的细节。

2、架构可视化剖析不合理依赖

当零碎在演进过程中腐化,产生不合理的依赖,架构的分层不再清晰,浏览和了解将变得极其艰难。新个性开发、问题单批改变得困难重重,你在做 UI 批改的时候,可能影响到业务逻辑,对业务逻辑的变更,可能对数据库代码或其余元素造成影响。

基于生成的可视化架构,通过经典设计理念合乎度剖析,能够帮架构师、开发人员发现一些设计坏滋味,比方是否存在循环依赖、跨层依赖、反向依赖等。为重构流动提供参考,进步重构效率。

以循环依赖为例,通过连线追踪,能够清晰看到产生循环依赖的架构元素、调用系列,通过环中各连线的数字,可能疾速辨认环薄弱点(数字越小,耦合度越低),作为可能的打消循环依赖的切入点,重点发展剖析。

3、架构可视化看护现有架构

对于良好的架构设计,如何保障在进度缓和的版本交付周期内,不因为开发人员对架构的不充沛了解,而对良好的架构设计造成毁坏?

在后面可视化架构的根底上,通过对架构的依赖关系的合法性(设计束缚)进行打标签,标注哪些架构依赖是容许的,哪些是不容许的。当开发人员在编码的过程中,呈现违反架构设计束缚的状况,架构视图立即呈现红线预警,同时给出告警信息,从代码产生的源头上避免架构腐化。

4、架构可视化撑持架构演进

基于架构可视化,记录架构的演进门路,通过不同期间的架构比照,能够清晰回溯架构的整个演进过程,对架构的腐化剖析很有帮忙。

如下图,咱们对一个零碎的 V4、V5 版本架构进行比照,能够清晰看到 BrowserValidity 在 V5 中删除了。同时,通过线条的不同色彩,辨别哪些耦合关系是在 V4、V5 两个版本都存在,哪些耦合关系只存在于 V4,哪些耦合关系只存在于 V5。

通过切换、比照不同期间、不同版本的架构图,能够清晰看到架构的演进过程,并回溯过程中架构变更起因和思考。

从曾经摸索的实际看,架构可视化对软件系统,特地是大型软件系统的衰弱演进很有帮忙。下面的摸索,深度上尚浅,待进一步摸索,同时,广度上,也还有很多摸索的空间,比方基于架构可视化,出现架构热点,欢送大家一起探讨!

点击关注,第一工夫理解华为云陈腐技术~

正文完
 0