【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

代码质量管理工具 Sonar 提供了设计与架构度量

  • 2010-06-03
  • 本文字数:1073 字

    阅读完需:约 4 分钟

近日,新版的开源代码质量管理工具 Sonar 提供了设计与架构度量。Sonar 2.0 引入了针对 Java 应用的设计分析、架构与面向对象的度量,而前不久发布的 Sonar 2.1 可以检测到未使用的方法以及对不建议使用方法的调用。

架构度量特性包含一个叫做 Dependency Structure Matrix( DSM )的全新可视化工具,它可以表示组件之间的依赖并在其中导航,能够通过去掉不必要的依赖来移除包间的循环,还能识别出拥有太多职责的类(这违背了单一职责模式)。面向对象度量包含了 Chidamber & Kemerer 度量,比如 Depth of Inheritance Tree(DIT)、Number of Childre(NOC)、Response for a Class(RFC)、Afferent/Efferent Couplings(CA/CE)以及 Lack of cohesion in methods(LCOM)。最新版的 Sonar 还基于 Squid 引入了一个全新的规则引擎、Sonar 解析器既可以处理源代码,也可以处理字节码,解析器带有内建的规则,可以检测未使用的私有与保护方法以及客户端对不建议使用的方法的调用。Squid 通过分析应用源代码、Java API 和外部程序库的字节码来决定哪些方法、类和属性是不建议使用的。Sonar 2.1 的新特性还有:

  • 一个全新的“ Libraries ”页面,显示了项目中所有的程序库和依赖,该特性要求使用 Maven 来构建项目。一旦在 Sonar 站点的主页上选择了一个项目,该服务就会以可视化的树形结构展示出项目依赖。此外,还有一个可选的动态过滤器,可以根据名称过滤程序库以便在应用的依赖间导航。
  • 用于搜索程序库使用情况的“Dependencies”页面。比如说,可以搜索到使用了第三方框架如 Commons Logging 1.1 的所有项目。
  • 可以使用各种插件扩展 Sonar 的功能。现在有一个全新的“System Info”页面显示了系统属性、已装插件和 Java 虚拟机内存统计信息。该页面还给出了关于 Sonar 配置和数据库统计的详细信息。
  • 一个用于管理已装插件和系统信息的管理控制台。

最新版的 Sonar 为这些插件引入了一个测试框架和一个客户化的 Maven 生命周期管理工具。它还带有一个用于集成项目事件的 Web Service 并在项目的 size widget 中增加了一个新的度量模块。

Sonar 团队的 Freddy Mallet 撰写了一篇文章,谈到了如何使用新版的 Sonar管理包间的循环以及如何在类层次上重新设计。Sonar 开发团队正忙于开发一个Eclipse IDE插件并于上个月发布了0.1 版。感兴趣的读者朋友可以看看 Project Nemo ,这是 Sonar 的一个在线版本,它给出了很多开源项目的代码分析统计结果,这些项目有 Apache Commons frameworks、Apache Tomcat、Struts2 和 Esper 等等。

查看英文原文: Code Quality Management Tool Sonar Provides Design and Architecture Metrics

2010-06-03 02:466031
用户头像

发布了 88 篇内容, 共 258.1 次阅读, 收获喜欢 7 次。

关注

评论

发布
暂无评论
发现更多内容

架构实战营模块一作业

陈俊

架构实战营

架构实战营 模块1 课后作业

༺NPE༻

Spark数据倾斜方案实战(二)

小舰

4月日更

3w 字长文爆肝 Java 基础面试题!太顶了!!!

cxuan

Java 面试 后端

智慧平安社区建设,创建“三零平安社区”

13530558032

使用 lxrunoffline 管理运行wsl

花费一月时间吐血整理程序员必读书单,建议收藏

Silently9527

程序员

空中交警:借你一双“慧眼”,让你看透这飞机的“黑色十分钟”

华为云开发者联盟

modelarts yolo 华为云ModelArts 模型开发 华为开发者大会2021

python 调用 cmd 而不显示黑框的方法

一代咩神

Python cmd

Golang 字符串分组

一代咩神

Go 语言

区块链电子合同--助推合同数字化管理

13530558032

模块一作业

chenmin

模块一:课后作业

iHai

架构实战营

架构实战营作业:模块一

心晴雨亦晴(~o~)

手摸手教你阅读和调试大型开源项目 ZooKeeper

HelloGitHub

Java zookeeper 源码分析 ZooKeeper原理

LeetCode题解:剑指 Offer 49. 丑数,二叉堆,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

马特量化交易机器人,炒币24小时不停歇

飞亚科技

善盾SD币是什么?

飞亚科技

复杂度分析

奈奈奈奈

Java

Prometheus2.25新特性讲解

远鹏

Prometheus cncf openmetrics

Spring IOC 特性有哪些,不会读不懂源码!

小傅哥

Java spring 小傅哥 控制反转IOC

区块链农产品溯源平台,为农产品质量安全护航

13828808769

区块链 区块链+

手把手教你写一个spring IOC容器

华为云开发者联盟

spring 容器 ioc spring框架

旋转木马案例

赫鲁小夫

4月日更

初识Nginx(一)

书旅

nginx

架构实战营 模块1作业

唐江

架构实战营

Rust从0到1-结构体-一个例子

rust struct

区块链产业园区服务平台开发,搭建区块链园区运营平台

13828808769

区块链+ #区块链#

年薪百万是社会认同,更是自身价值体现

博文视点Broadview

模块一-学生管理系统架构设计

华仔架构训练营

盘点 15 个好用的 API 接口管理神器

Java小咖秀

工具 工具分享

代码质量管理工具Sonar提供了设计与架构度量_Java_Srini Penchikala_InfoQ精选文章