ObjectScript类浏览器 - 以UML类图方式浏览ObjectScript类
你好!
本文简单介绍一款工具,帮您理解InterSystems产品(从IRIS到Caché、Ensemble以及HealthShare)中的类及其结构。
简言之,它将类或整个包可视化,显示类之间的关系,并向开发人员和团队领导提供各种信息,而无需到 Studio 中检查代码。
如果您正在学习InterSystems产品,经常查看项目,或只对InterSystems技术解决方案中的新内容感兴趣,欢迎阅读ObjectScript类浏览器概述!
InterSystems 产品简介
IRIS(之前称为Caché) 是一个多模型DBMS。您可以使用SQL查询来访问它,也可以通过各种编程语言可用的接口与存储的对象和过程进行交互。但最多的还是使用DBMS原生内置语言--ObjectScript (COS) 开发应用程序。
Caché支持DBMS级别的类。有两种主要的类类型:Persistent(可以存储在数据库中)和 Registered(不存储在数据库中,扮演程序和处理程序的角色)。还有几种特殊的类类型:Serial(可集成到持久类中用于创建复杂数据类型(如:地址)的类),DataType(用于创建用户定义的数据类型)、Index、View 和 Stream。
进入类浏览器
Caché类浏览器是一个工具,它将Caché类的结构可视化为图表,显示类之间的依赖关系和所有相关信息,包括各种类元素的方法代码、查询、xData块、注释、文档和关键字。
功能
类浏览器使用扩展版UML类图进行可视化,因为Caché有一组很重要但不被标准UML支持的附加实体:查询、xData块、方法和属性的大量关键字(如System、ZenMethod、Hidden、ProcedureBlock等)、父子关系和一多关系、类类型等。
Caché 类浏览器(1.14.3版)允许您执行以下操作:
- 显示包、类图或整个包的层次结构;
- 编辑图表显示后的外观;
- 保存类图的当前图像;
- 保存一个图表的当前外观,并在将来恢复;
- 按图表或类树中显示的任何关键字搜索;
- 使用工具提示获得关于类、其属性、方法、参数、查询和xData块的完整信息;
- 查看方法、查询或xData块的代码;
- 启用或禁用任何图表元素的显示,包括图形图标。
为了更好理解下文内容,先看下类浏览器的如何对类进行可视化的。举个例子,让我们显示来自“samples”命名空间的“cinema”包:
详细信息和功能概述
左侧边栏包含一个包树。将鼠标指针放在包名称上,然后单击出现在其右侧的按钮以显示整个包。在包树中选择类,将其与其链接的类一起呈现。
类浏览器可以显示类之间的几种依赖关系类型:
1. 继承。以白色实心箭头显示,箭头指向继承的类;
2. 类之间的“关联”或关系。如果其中一个类的字段包含另一个类的类型,图表构建器将把它显示为关联关系;
3. 父子关系和一多关系:维护数据完整性的规则。
如果将鼠标指针指向该关系,则创建该关系的属性将高亮显示:
注意,类浏览器不会更深入,也不会为当前包之外的类绘制依赖关系。它将只显示当前包中的类,如果需要限制类浏览器查找类的深度,请使用“依赖级别”设置:
类本身显示为一个矩形,分为六个部分:
1. 类名:将鼠标指针指向类名,可以了解它是何时创建和修改的,查看注释以及所有分配给这个类的关键字。双击类头将打开其文档;
2. 类参数:所有带类型、关键字和注释的赋值参数。斜体的参数以及任何属性都有工具提示并且可以悬停;
3. 类属性与参数类似;
4. 方法:点击任何方法都可以查看其源代码。COS 语法将被高亮显示;
5. 查询:与方法类似--点击可以查看源代码;
6. xData块:主要包含XML数据的块。点击将显示块中格式化的源代码。
默认每个类都显示有许多图形图标。点击屏幕右上角的“帮助”按钮,了解每个图标的含义。如果您需要默认显示更严格或更包容的 UML 类图,以及任何类的任何部分,可以在设置部分禁用。
如果关系图太大,而且您也不太熟悉,可以使用快速图表搜索功能。包含您输入的关键字的任何部分的类将被高亮显示。要跳转到下一个匹配项,只需按 Enter 键或再次单击搜索按钮:
最后,在完成了图表编辑,去掉所有不必要关系,并将元素安放好,实现期望的外观之后,可以点击左下角的“下载”按钮来保存:
激活固定按钮 时,元素在当前类(或包)组的图表上的位置将被固定。例如,如果您选择A类和B类,然后用固定按钮保存视图,则再次选择A类和B类时将看到完全相同的视图,即使在重新启动浏览器或机器之后也不会变化。但是如果您只选择A类,布局将是默认的。
安装
要安装Caché类浏览器,只需将最新版本xml包导入到任何命名空间中。导入后就能看到名为hostname/ClassExplorer/(末尾的斜杠不能丢)的新web应用程序。
详细安装说明
1. 下载最新版Caché类浏览器压缩包;
2. 提取名为Cache/CacheClassExplorer-vX.X.X.xml的XML文件;
3. 使用以下方法之一将包导入任何命名空间:
1. 只需将XML文件拖到Studio上;
2. 使用系统管理门户:系统资源管理器 -> 类 -> 导入,并指定本地文件路径;
3. 使用terminal命令:
do ##class(%Installer.Installer).InstallFromCommandLine(“Path/Installer.cls.xml”);
4. 读取导入日志--如果顺利安装,就可以通过 http://hostname/ClassExplorer/ 打开 web 应用程序。如果出了问题,请检查以下内容:
1. 是否有足够权限将类导入该命名空间;
2. web应用程序用户是否有足够权限访问不同的命名空间;
3. 如果出现错误404,只需检查是否在 URL 末尾添加了斜杠。
附加截图
[截图 1] DSVRDemo 包,鼠标指针悬停在一个类名上。
[截图 2] DataMining 包,在图表中搜索“TreeInput”关键字。
[截图 3] JavaDemo.JavaListSample 类中的方法代码视图。
[截图 4] 查看 ClassExplorer.Router 类中的 Xdata 块内容。
您可以尝试在标准SAMPLES命名空间中使用类浏览器:演示。这个项目的评测视频。
欢迎任何反馈、建议和意见--提交到这里或GitHub仓库。希望对您有用!