写点什么

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:432196
用户头像

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

关注

评论

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

Element-UI 要怎么学?官方文档!

爱好编程进阶

Java 面试 后端开发

ETCD 安全模式

爱好编程进阶

Java 面试 后端开发

IntelliJ Idea 常用快捷键列表

爱好编程进阶

Java 面试 后端开发

亚信科技两方案入围工信部“数字技术融合创新解决方案”评选

亚信AntDB数据库

AntDB #数据库 奖项

英特尔承诺到2040 年实现温室气体净零排放

科技新消息

Bootstrap.yml的作用

Rubble

4月日更 4月月更

漏洞挖掘之Spring Cloud注入漏洞

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

ElasticSearch java API - 聚合查询

爱好编程进阶

Java 面试 后端开发

Flink on Yarn三部曲之二:部署和设置

爱好编程进阶

Java 面试 后端开发

GitHub上已获赞百万!阿里架构师最新发布的图解网络协议文档(2021版)开源分享

爱好编程进阶

Java 面试 后端开发

InnoDB 和 MyISAM 的数据分布是什么样的?

爱好编程进阶

Java 面试 后端开发

linux之dos2unix命令

入门小站

Linux

以海洋为主题的元宇宙Aquqnee,为GameFi带来新的标杆

BlockChain先知

Canal 如何实现数据库库事务的一致性

爱好编程进阶

Java 面试 后端开发

在线CSV转HTMLTable工具

入门小站

工具

在线ASCII流程图编辑器工具

入门小站

工具

英特尔公布可持续发展新目标,到2040 年实现温室气体净零排放

科技新消息

首届全球基础软件创新大会明天开幕!

OpenAnolis小助手

开源 操作系统 龙蜥社区 国产 基础软件创新大会

1-4 云商城项目工程搭建

爱好编程进阶

Java 面试 后端开发

2022年最新面试手册,在Github爆火,96人拿下大厂offer

爱好编程进阶

Java 面试 后端开发

TASKCTL 调度高可用架构服务与安装

敏捷调度TASKCTL

kettle 批量任务 调度引擎 ETL 调度任务

【OB实践】意出望外的一次相遇|利楚初探 OceanBase

OceanBase 数据库

oceanbase

为什么要对我们的sql进行优化

乌龟哥哥

4月月更

火山引擎支持 Pico 完成业界首场 8K 3D 实时互动 VR 演唱会

字节跳动视频云技术团队

音视频 火山引擎 视频云 VR开发应用

虎符交易所「虎年玩虎符」活动攻略 三天赠送三万美金

区块链前沿News

虎符交易所

英特尔最新计划:到2040 年实现温室气体净零排放

科技新消息

Elasticsearch的安装和基本使用

爱好编程进阶

Java 面试 后端开发

HDU-3038-How Many Answers Are Wrong【 带权并查集 】题解

爱好编程进阶

Java 面试 后端开发

iReport 使用手册(生成 PDF 表单)

爱好编程进阶

Java 面试 后端开发

Java 里面的异常

爱好编程进阶

Java 面试 后端开发

干掉丑陋的swagger,堪称开发者的瑞士军刀!

Liam

后端 Jmeter Postman 后端开发 swagger

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