写点什么

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

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

关注

评论

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

DeepSeek-V3 0324炸场升级:代码能力碾压GPT-4.5,测试开发效率革命开启!

测试人

Web3项目的安全性

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

当AI遇上低代码:程序员正在咖啡馆里泡手冲?

伤感汤姆布利柏

【新模型速递】PAI一键云上零门槛部署DeepSeek-V3-0324、Qwen2.5-VL-32B

阿里云大数据AI技术

人工智能 模型部署 Qwen PAI DeepSeek

秒杀系统开发指南:用 AI 工具生成高并发代码的 5 个要点

飞算JavaAI开发助手

5000万考生救星!百度网盘和文库首发一站式视频AI笔记

极客天地

慈善组织购买堡垒机需要考虑哪些因素?买哪家好?

行云管家

信息安全 堡垒机 慈善组织

快速使用Milvus MCP Server,0代码搭建智能搜索Agent

阿里云大数据AI技术

大数据 搜索 Milvus LLM MCP

RabbitMQ集群部署(三)——镜像集群模式部署及常见问题

天翼云开发者社区

RabbitMQ

华为吴辉:跨越数智鸿沟,共创AI新时代

新消费日报

周卫林|从模型平权到“知本”复利,NoETL 打造 AI 时代的数据底座

Aloudata

数据仓库 数据分析 数据管理 大模型 指标平台

BeeWorks内网聊天软件:提升团队效率的智能沟通平台

BeeWorks

即时通讯 IM 企业即时通讯平台 私有化部署 局域网视频软件

RabbitMQ集群部署(二)——普通集群模式部署

天翼云开发者社区

RabbitMQ

企业信创项目建设实践

日志易

#信创 实践经验

一文读懂2024!2025往“这”瞧 |《2024 IT行业项目管理调查报告》发布!

禅道项目管理

项目管理 AI IT 调查报告 科技

2025浙江安博会

AIOTE智博会

安博会 浙江安博会 杭州安博会

RabbitMQ集群部署(一)——单机模式部署

天翼云开发者社区

RabbitMQ

3FS系列(二):3FS元数据性能深度拆解:那些在技术文档中找不到的实现细节

九章云极DataCanvas

人工智能 DeepSeek 3FS

如何开发RWA DApp?一文搞定——从资产确权到跨链流通的完整技术指南

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

《深入理解 eBPF 与可观测性》正式上架,龙蜥多位资深专家倾力打造

OpenAnolis小助手

Linux 操作系统 龙蜥社区 eBPF 技术

Java 开发高手必备:AI 工具如何帮你快速生成 Spring Boot 配置?

飞算JavaAI开发助手

从历史数据到实时决策:AI如何提升大数据实时分析能力?

天津汇柏科技有限公司

大数据 AI 人工智能

云学堂更名绚星智慧科技:发布AI新战略 领航企业智能生产力时代

人称T客

DeepSeek Smallpond 在火山引擎 AI 数据湖的探索实践

火山引擎开发者社区

模型的泛化性能度量:方法、比较与实现

秃头小帅oi

行业分享丨如何实现快速仿真和创新设计,颠覆式加速产品研发?

Altair RapidMiner

AI 数字化转型 HPC 仿真 仿真驱动设计

DApp开发中的三大激励引擎:静态奖、动态奖与推荐奖的协同设计 ——从经济模型到行为心理学的深度解析

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

BeeWorks:为企业打造专网部署即时通讯解决方案

BeeWorks

即时通讯 IM 私有化部署 局域网视频软件

Web3项目的分类及特点

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

四款远控软件对比:哪一款功能最全?哪一款延迟最低?

科技热闻

让 DeepSeek 更懂你的业务,基于向量数据库 VectorDB 搭建问答应用

Baidu AICLOUD

数据库 向量数据库

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