写点什么

SonarJ 社区版为 Java 应用提供架构分析和管理功能

  • 2009-02-12
  • 本文字数:1605 字

    阅读完需:约 5 分钟

SonarJ 社区版为中小型 Java 应用提供架构分析和管理。SonarJ 软件的制造厂商 hello2morrow 最近推出了架构分析工具的免费版本。该社区版可用于分析那些多达500 个内部类(约五、六万行代码)的Java 应用。

架构管理有利于设计明确和无环路依赖(cycle free dependency)的结构,还能提高代码的可测性和可重用性。软件架构师可以使用SonarJ 定义架构、质量规则,然后在 IDE(Eclipse)的开发人员工作空间中对其进行监控。SonarJ 之类的工具可以帮助架构师尽早地把架构管理集成到开发过程中去。

InfoQ 就发布社区版的动机,以及 SonarJ 项目未来的路线图等问题采访了 hello2morrow 的 CEO Alexander von Zitzewitz。

发布 SonarJ 社区版的动机是什么呢?

我们过去的定价模式是以使用 SonarJ 的用户数量为基础的,独立于项目规模。但 SonarJ 的利润与项目规模密切相关。尽管 SonarJ 已经对开源和非商业用途免费,但有很多开发人员一直联系我们,让我们提供便宜的个人许可。我们也看到很多项目仍在使用非常基本的依赖关系检查工具,比如 JDepend Macker 。借助 SonarJ,我们给出了远远优越于此的解决方案,但也仅仅适用于有工具预算的大型项目。所以我们想让该解决方案能用于更广泛的用户群,但却不会严重削弱我们的收入基础。 我们决定将项目规模添加进来、作为定价模式的第二个因素。我们还决定让 SonarJ 对那些有 500 个类的项目免费。这一限制可支持大部分项目,相当于支持五、六万行代码。我们希望确保 SonarJ 社区版能用于重要项目。这样,用户就能从中获益,并能避免结构化腐烂带来的一切不良后果, 从而节省时间和金钱。

为了平衡起见,那些有 3000 个类的项目为商业许可支付的价格要比以前便宜,更大型的项目则必须支付更高的价格。我们认为这种做法更为平衡,也非常符合 SonarJ 集成到开发过程中所提供的价值。

SonarJ 跟其它工具(比如 Structure 101 )比起来怎么样?

Structure101 是一个功能强大的工具,具有良好、直观的用户界面。跟 SonarJ 一样,它支持架构模型的定义。另一方面,我认为我们的架构元模型和架构可视化方式更适合大项目。SonarJ 支持将较大型项目划分成子项目,不只是水平细分的支持,还有项目的垂直切片。尽管你可以在 Structure101 中创建两个或多个独立的架构模型来实现类似的功能,但这需要付出更多的努力,也不是十分直观。对较大型的项目来说,垂直划分(创建垂直切片)是一种保持可管理架构工件数量非常重要的技术。

跟利用 Aspects 、Code Inspections 或 MDA 这些技术比起来,SonarJ 工具是如何助力于设计、架构实施的?

首先,SonarJ 的使用完全是非侵入的,可用于任何 Java 项目,不论是新的还是旧的。Aspects 的使用则有侵入性(你必须将 AspectJ 整合到构建过程中),也没有真正的架构元模型支撑。虽然你可以定义强大的约束,但完全没有完整性的保证。每个架构师也可能会使用约束的不同风格。此外,我认为定义重要约束集的复杂性往往会快速失控。SonarJ 背后的架构元模型则能轻易就保证你可以完全覆盖代码中所有的依赖关系。代码和构建过程都不需要使用 SonarJ。 代码审查并不是自动检查架构、质量规则的重要方法。它占用太多时间,而且存在很大的风险,会忽视严重的结构性问题。

MDA 是创建应用的另一种策略。如果大部分代码都是生成的,那么针对架构缺陷分析所生成代码的优势就非常小。所生成代码的结构是清晰的,好的代码生成器都期望能保证这一点。因此,如果你成功地使用了 MDA,你的大部分代码库也是生成的,那你可能就不需要 SonarJ 了。

SonarJ 项目未来的路线图是怎样的?

目前我们正着力于预计在 2009 年 3 月发布的 4.1 版本。该版本的重点是提升可用性、微调一些架构元模型。今年晚些时候,我们会考虑为其它 IDE(比如 IntelliJ NetBeans )添加插件。我们可能还会推出 SonarJ 的 C#版本——SonarShark。

查看英文原文: SonarJ Community Edition Offers Architecture Analysis and Management for Java Applications

2009-02-12 07:432000
用户头像

发布了 151 篇内容, 共 65.9 次阅读, 收获喜欢 18 次。

关注

评论

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

面试:某云面试题目整理

程序员架构进阶

Java 面试 自我提升 28天写作 4月日更

群英荟萃 | UINO优锘科技ThingJS平台亮相华为开发者大会

ThingJS数字孪生引擎

物联网 3D可视化 数字孪生

云原生除了K8S、微服务,还有...?

云计算

科技赋能 博睿数据引领教育行业走入“服务可达”时代

博睿数据

在线教育 博睿数据 服务可达

Serverless的定义

刘宇

yarn的applicationMaster介绍

五分钟学大数据

YARN

​太厉害了,终于有人把Spring条件注解讲明白了,送你上岸!

飞飞JAva

spring

对于即将工作的IT大学生,该如何变强?

cv君

程序人生 IT 科技 问卷 有意义

极光开发者周刊【No.0430】

极光GPTBots-极光推送

聪明人的训练(三十)

Changing Lin

4月日更

5月日更,InfoQ 高定T-恤,达标来领~

InfoQ写作社区官方

5月日更 热门活动

Boss直聘转发超100W次Java面试突击手册 火遍全网

比伯

Java 编程 程序员 架构 计算机

新人小白福利来啦!精简版java知识总结,阿里P8大牛看完都说绝了

牛哄哄的java大师

Java

带你温习一下webpack配置

IT皮皮蟹

npm nodejs webpack

博睿数据DataView标准化指标管理,助力企业快速制定SLO

博睿数据

数据中台 博睿数据 dataview

参加人气创作者的一些感悟

石云升

28天写作 4月日更 1 周年盛典

我与写作平台的初次接触

Aldeo

1 周年盛典 我和写作平台的故事

音频变速变调原理及soundtouch代码分析

floer rivor

音视频

SpringCloud-技术专题-Feign组件基本使用(1)

码界西柚

Configuration Hystrix spring-cloud Fegin Ribbon

已跪!Java全能笔记爆火,Java教程/Java包/Eclipse安装指南全有

牛哄哄的java大师

Java

让电影票房飞一会儿,五一换个姿势重温经典

华为云开发者联盟

音视频 电影修复 视频超分 媒体处理 混合失真

2.8W字Java基础学习和书籍推荐,真正意义上的从0到1学Java,才不是培训机构那种大纲文

北游学Java

面向对象 线程 集合 java基础 IO流

软件 IT专业的高校大学生是否写文调查问卷

Bob

问卷调查 行业分析能力考核 高校大学生 写文

引入:从云计算到Serverless

刘宇

流水线成功涨薪到年薪30W 只有努力才能成功

学Java关注我

Java 架构 程序人生 编程语言

什么,你管这叫“线程安全”?

Java大蜗牛

Java 程序员 编程语言 后端 线程安全

弱密码会毁灭物联网(IoT)吗?

龙归科技

密码管理

高校软件IT专业大学生课外培训调查问卷

穿过生命散发芬芳

行业分析能力考核

【得物技术】网络优化——域名解析原理&实践

得物技术

网络 域名解析 域名 得物技术 实践

又一个免费良心的下载站,答应我:别再下到流氓软件了。

彭宏豪95

ios 效率 工具 下载 4月日更

聆听极致 ——声网 Agora

cv君

算法 音视频 科技 声网 引航计划

SonarJ社区版为Java应用提供架构分析和管理功能_Java_Srini Penchikala_InfoQ精选文章