2009年2月24日星期二

SonarJ印象

hello2morrow is an independent software vendor specialized in tools for the management and monitoring of architecture and technical quality of software written in Java, C/C++ orC#.
SonarJ. 轻盈的色彩,简单的逻辑。读读tutoria就l很容易上手使用。
感觉就是一个依赖管理工具,要想依赖的漂亮,当然要先分层。它也就是一个分层管理工具。说管理也许不准确。它主要还是监控功能。
1)你先用横条竖棍把一个系统划分成architectural artifacts。
2)然后把程序中用package组织的class添加到格子里。(一个class只能在一个格子里。)
3)建立、设立各种允许、禁止的依赖关系。
4)在Exploration视图中验证你的code。

应该说SonarJ做的事情很基本很有限。它只是对你预先建立好的layer进行了monitor。而对你如何划分这些层次并没有给出任何回馈。虽然简单,个人感觉还是非常值得使用。就如今天发现的竟然在数据类中看到了import ui的类。这种超低级的错误足以让你的项目在维护期遭受无情的骂名。(今天看到一个同事的签名档是:前人种树,后人捉虫。哈)

适合于architect已经搭建完了框架后,在程序员完成项目过程中进行监管。如果SonarJ在提供脚本API进行报表生成,那么再利用持续集成工具进行驱动,就可以实现对违反架构的编码自动化报警了。

SonarJ可以以eclipse插件的形式与eclipse集成。正如其文档所说,在eclipse中仅仅适用于verify的功能。各种约束的设置还要在SonarJ App中完成。

关于SonarJ的论述及其它类似工具比较:http://www.infoq.com/news/2009/02/sonarj-community-edition
SonarJ主页:http://www.hello2morrow.com/