06|分析工具:几百万行规模的遗留系统怎么分析?
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何分析大规模遗留系统并计划整个重构工作。作者提到了评估工作量、制定优先级和进行度量这三个关键问题,并介绍了两种常见的遗留系统重构分析工具:ArchUnit和Android Studio的Dependencies依赖分析工具。作者详细介绍了这两种工具的使用方法和优缺点,并建议在实际项目中结合使用。通过这些工具,读者可以更好地规划和实施系统重构工作。文章还提出了思考题,鼓励读者分享项目中的架构守护经验。
《大型 Android 系统重构实战》,新⼈⾸单¥59
全部留言(7)
- 最新
- 精选
- zenk老师,业务组件的优先级,是不是复杂度低的优先? 我理解这样重构以后可能会降低复杂度高的业务组件
作者回复: Hi,zenk。如果这里指的是重构的优先级。通常情况下得结合业务需求的迭代情况以及本身组件的耦合情况来综合判定。
2023-02-22归属地:上海1 - 稻草人的忧桑dependency的依赖分析,单例是不是分析不出来
作者回复: Hi,何敬。dependency分析工具主要是分析依赖的,如果想扫描单例可以考虑用其他的代码扫描工具。
2023-03-26归属地:安徽2 - 永远年轻答案是使用 Dependency Validation 功能检查代码。具体来讲就是点击 Edit Rule,使用正则表达式配置约束条件,从而扫描代码中不符合规则的异常依赖。就像后面图里展示的这样,我们配置消息组件不能依赖文件和账户组件。 ====== 能详细讲下上述提到「正则表达式」吗
作者回复: Hi,评论这里不好放截图。通常来说都是在IDE使用界面直接操作定义的。在.idea目录下会生成对应的配置文件。下面我贴一下示例。 文件模块Scope定义: <component name="DependencyValidationManager"> <scope name="file" pattern="src[Sharing.app.main]:com.jkb.junbin.sharing.feature.file.*" /> </component> 约束规则: <component name="DependencyValidationManager"> <state> <deny_rule from_scope="file" to_scope="message" is_deny="true" /> </state> </component>
2023-03-18归属地:浙江 - MrsLEOarchunit支持kotlin项目么
作者回复: Hi,MrsLEO。支持的,后续的重构改造也会有kotlin代码。
2023-03-03归属地:广东 - 3.141516老师好,ArchUnit只能找到当前module的包吗,其他module可以找到吗
作者回复: 可以找到的,下一篇会有详细的使用介绍,你可以参考一下具体的用法。
2023-02-23归属地:上海 - peter请教老师几个问题: Q1:“层”、“片”是什么? ArchUnit部分,提到“还可以检查包和类、层和片之间的依赖关系”,这里的“层”和“片”是什么?“层”可能是指分层,那么“片”是什么? Q2:类依赖分析API的例子中,为什么只有一个类的名字X? 类依赖,必然有两个类,应该有两个名字,但此处为什么只有一个名字X? Q3:Jekens也能用于移动端吗? 我了解一点后端,印象中Jekens是用于后端的,安卓端也可以用吗? Q4:找不到Dependency Validation. AS2021,code - Analyze code - Dependencies,没有找到配置规则的界面。文中说“点击EditRule”,但我这里没有发现。 我是win10下用AS2021,
作者回复: Hi,Peter。 Q1:层和片对应的是ArchUnit里面的Layer 及slices的api,具体的用法可以查看官网的介绍,https://www.archunit.org/use-cases。 Q2:这里是对的,应该还有另外一个类的名字Y,感谢反馈。 Q3:可以用于移动端。Jenkins只是一个构建的平台工具,与具体的语言及平台无关。 Q4:在Dependencies扫描结果上有一个小扳手🔧的图标就是EditRule。 期待你的再次留言🤝
2023-02-22归属地:北京 - Geek_6061ea如果模块太多,添加了非常多的 xxx.xml 文件到 Scopes 文件夹下,这些 xml 都会展示在 Android Studio 最左边的 Project/Android 切换菜单栏里面,影响每个同学切换 Project/Android 的体验。有什么方法可以不展示在 Project/Android 切换菜单栏吗?2023-04-20归属地:北京