Caché Class Explorer — досліджуємо Caché в нотації UML

Доброго дня. Ця стаття — невеликий огляд інструменту, який допомагає розбиратися з пристроєм і структурою даних пакетів і класів всередині СКБД Caché.

Якщо коротко, його місія — виконати візуалізацію класу або цілого пакету, показати зв'язки між класами і надати максимум інформації будь-то програмісту або тимлиду без потреби вирушати в Студію і дивитися там програмний код.

Тих, хто навчається чи веде навчання за технологіями InterSystems, днями переглядає або змінює коди різних проектів і просто зацікавленим особам — запрошую ознайомитися з Caché Class Explorer!

Вступ про Caché
Caché — мультимодельная СУБД. До неї можна звертатися як з допомогою запитів на мові SQL з деякими розширеннями, так і взаємодіяти з постійними об'єктами і процедурами через інтерфейси для різних мов програмування. Третій варіант — це безпосередньо розробляти додаток рідною для СУБД мовою — Caché ObjectScript (COS).

Caché підтримує класи на рівні СУБД. Існує два основних типи класів: Persistent, які можуть зберігається в базі даних, і Registered, які не зберігаються в БД, а виконують роль програм і обробників. Так само є ряд особливих типів: Serial (класи, які можуть бути вбудовані в Persistent класи для створення складних типів даних, таких як, наприклад, адреси), DataType (створюють користувальницький тип даних), Index, View і Stream.

А тепер про Class Explorer
Caché Class Explorer — інструмент, який візуалізує структуру класів Caché в діаграму, яка показує залежність між класами і всю необхідну інформацію, включаючи код методів, запитів, xData-блоків, коментарі, документацію і ключові слова різних елементів класу. Для відображення Class Explorer використовує модифіковану нотації UML, тому що в Caché присутній ціле розмаїття сутностей, які в стандартній нотації UML не передбачені, але мають важливе значення для Caché: запити, xData-блоки, безліч ключових слів для методів і властивостей (таких як System, ZenMethod, Hidden, ProcedureBlock та інші), відносини parent-child, one-many, типи класів і так далі.

Щоб скласти максимально правильне розуміння того, про що розповідатиметься далі, слід спершу подивитися, як виглядає відображений пакет, і, заодно, інтерфейс Class Explorer. Для прикладу, візьмемо пакет Cinema з простору імен SAMPLES:



Про функціональності
У Caché Class Explorer (1.14.3) можна:

  • Відобразити ієрархію пакетів, діаграму класу або цілий пакет;
  • Редагувати зовнішній вигляд діаграми після відображення;
  • Зберегти поточне зображення діаграми класів;
  • Запам'ятовувати поточний вигляд діаграми і відновлювати його при наступному відображення;
  • Проводити пошук по будь ключовими словами, відображеним на діаграмі або в дереві класів;
  • За допомогою спливаючих підказок отримувати повну інформацію про класах, їх властивості, методи, параметрах, запитах і xData-блоках;
  • Переглядати програмний код методів, запитів або xData-блоків;
  • Включати або відключати відображення будь-яких елементів діаграми, включаючи графічні іконки.
Подробиці і огляд можливостей
У лівій частині програми знаходиться дерево пакетів. Щоб намалювати весь пакет, потрібно натиснути на кнопку в правій частині імені пакета при наведенні на нього. Щоб відобразити окремий клас і всі залежні від нього класи, потрібно в цьому дереві його просто вибрати.

Class Explorer може відобразити кілька видів залежностей між класами:

  1. Звичайно ж спадкування. Воно відображається зарисованной білою стрілкою в напрямку успадкованого класу;
  2. «Асоціацію», чи зв'язок між класами. Якщо поле одного з класів містить тип іншого класу, на діаграмі відображається така зв'язок;
  3. Parent-Child і One-Many відносини: правила дотримання цілісності даних.
Якщо навести курсор на зв'язок, то у класу будуть підсвічені поля, цей зв'язок і створюють. Важливо відзначити, що Class Explorer не буде «заглиблюватися» і малювати залежно тих класів, які знаходяться поза поточного пакету, він намалює тільки один клас. «Заглиблюватися» без кінця він буде тільки в класи, які знаходяться в поточному пакеті — якщо це потрібно обмежити, скористайтесь налаштуванням «Dependency level».

Сам клас відображається у вигляді прямокутника, поділеного на 6 секцій:

  1. Назва класу: навівши курсор миші на назву класу, можна дізнатися, коли він був створений і модифікований, подивитися коментар і все присвоєні йому ключові слова. Клацання по заголовку класу відкриє документацію;
  2. Параметри класу: всі присвоєні параметри з їх типами, ключовими словами і коментарями;
  3. Властивості класу, все як і з параметрами. Написи, виділені курсивом мають підказку;
  4. Методи: на будь-який метод можна натиснути і подивитися вихідний код цього методу, синтаксис підсвічуватиметься;
  5. Запити: так само, як і методи — на них можна натиснути і переглянути код запиту;
  6. xData-блоки: блоки, в основному, містять інформацію в XML. Натискання покаже відформатований вихідний код.
За замовчуванням клас відображається з безліччю графічних іконок, тлумачення яких ви можете подивитися натиснувши на кнопку Help. Якщо ж потрібна більш-менш сувора нотації UML, то їх відображення, як і відображення будь-яких секцій класу можна відключити в налаштуваннях.

Якщо діаграма досить велика і не знайома, можна скористатися швидким пошуком по діаграмі. Клас, який містить будь-яку частину введеного ключового слова буде виділений. Щоб перейти до класу з таким збігом, просто ще раз натисніть Enter або кнопку пошуку.

Ну і наостанок, відредагувавши діаграму, видаливши всі непотрібні зв'язки і розмістивши елементи для досягнення бажаного виду, її можна зберегти, натиснувши на саму ліву нижню кнопку.

Установка
Для того, щоб встановити Caché Class Explorer, потрібно всього лише імпортувати останній реліз в будь-яку область. Після успішного імпортування у вас повинно з'явиться веб-додаток
hostname/ClassExplorer/
(коса риска в кінці необхідна).

Детальна інструкція по установці
  1. Завантажте архів з останнім релізом Caché Class Explorer
  2. Розпакуйте архів і витягніть XML-файл Cache/CacheClassExplorer-vX.X.X.xml;

  3. Імпортувати пакет в будь-яку область одним з наступних способів:
    1. Перетягніть XML-файл на відкриту студію;
    2. Через портал управління: Оглядач системи -> Класи -> Імпорт, і вкажіть шлях до файлу;

    3. Командою у терміналі: do ##class(%Installer.Installer).InstallFromCommandLine(«путь/Installer.cls.xml»);
  4. Перегляньте лог імпорту — якщо все добре, веб-додаток буде доступно за адресою hostname/ClassExplorer/. Якщо ж щось пішло не так, — прочитайте про це, і переконайтеся, що:
    1. У вас не достатньо прав для імпорту пакету в дану область;
    2. У користувача веб-додатки достатньо прав для переходу в різні області;

    3. За помилку 404 — що ви поставили похилу риску в кінці адресного рядка.

І наостанок — як це виглядає
Під спойлером — графікаСпливаючі підказки:


Пошук по діаграмі:


Перегляд вихідного коду методів:


Перегляд вихідного коду xData-блоків:


Можна подивитися, як Class Explorer працює в області SAMPLES/USER: демонстрація. Так само є невеликий відео-огляд за проектом. Будь-які відгуки, пропозиції або коментарі вітаються — залишайте їх у корпоративному репозиторії. Приємного використання!

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.