Инструмент разработчика DIRECTUM

39 37

Добрый день, уважаемые члены сообщества!

В этом материале будет описано решение для разработчиков, в котором собраны реализации моих идей об оптимизации процесса разработки на платформе DIRECTUM, то чем я занимался весь последний год.

Введение

Данный материал является еще одной реализацией инструмента для разработчиков призванного поднять эффективность, снизить трудоемкость и повысить уровень комфорта при работе с кодами разработки. Это было моим намерением и мне интересно какой она покажется Вам.

В противовес прошлогодней разработке отладчику, который используется для поиска ошибок и непосредственно отладки решений, этот инструмент призван помочь еще на этапе написания кода, заметно ускоряя ориентирование в метаданных.

При помощи набора функций WinAPI и прямого подключения к базе данных можно взаимодействовать с проводником DIRECTUM максимально прозрачно для пользователя, на основе этого и было построено это решение.

Видеопрезентация

Прямая ссылка на скачивание презентации. (69 Mb) (Рекомендуется именно скачать чтобы не возиться с разрешениями в youtube)

6le4siaM82U

На Youtube презентацию лучше смотреть в полноэкранном режиме в HD.

На записи присутствует музыкальное сопровождение.

Реализованный функционал

В качестве особенностей данной разработки можно выделить следующие характеристики:

  1. действительно быстрая навигация по метаданным;
  2. прозрачная вставка в редактор параметров метаданных (имя, имя для PreprocQuery, физ. имя и т.д.) по двойному нажатию;
  3. информативный и удобный просмотр форм справочников, документов и служебной информации;
  4. просмотр значений параметров типового маршрута для карточки задачи/задания под курсором мыши;
  5. подсказка по параметрам типового маршрута при работе с вычислениями.

 

Начало работы

Работа в инструменте начинается с установки подключения к базе данных DIRECTUM, так как это требуется для получения сведений о структуре метаданных БД DIRECTUM.

Форма содержит стандартный набор реквизитов подключения, плюс возможность сохранять конфигурации на быстром наборе.

Быстрая навигация

Вся возможная информация о метаданных находится под рукой. Реализованы отборы, сохранение частоиспользуемых фильтров, контекстное меню содержит детальную информацию для выбранного объекта: справочника, документа, реквизита и др.

Для реквизитов типа признак, в контекстом меню отображаются возможные значения для данного реквизита.

Элементы управления:

  1. фильтр по названию или коду объекта;
  2. фильтр по названию или коду реквизита/действия/представления и т.д.;
  3. отбор только справочники или только документы;
  4. сохранение фильтров на панели инструментов и быстрое переключение между ними. (Это удобно при написании запросов, когда надо быстро переключаться между объектами, заполняя текст запроса наименованиями полей разных объектов);
  5. контекстная подсказка для отображения и копирования значений свойств в буфер (имя, имя бд поля, номер справочника и т.д.);
  6. информация по параметрам типового маршрута: перечень, типы и установленные значения.

 

Прозрачная вставка в редактор

 

Данная функция позволяет пользоваться программой для быстрого заполнения имен объектов в тексте кода. В дереве объектов отображаются справочники и карточки документов с со своими реквизитами. В зависимости от режима вставки, по двойному нажатию на узел, в текст активного окна редактора ISBL или MS SQL Managment Studio на место курсора могут быть вставлены: имена объектов в СУБД, имена объектов платформы или обозначения в формате для функции PreprocQuery(). Режим вставки можно указать в настройках в нижней части программы.

 

Просмотр форм справочников и документов

Данная функция позволяет отобразить на экране форму представления справочника или карточки документа чтобы быстро ориентироваться в служебных именах реквизитов и др. объектов на форме.

Форма генерируется программой на основе хранимого в БД описания справочника.

Каждый реквизит подписан своим внутренним именем, типом реквизита, типом справочника если есть таковой. Для кнопок и ссылок имена действий выводятся во всплывающих подсказках.

Также на основе форм реализован механизм поиска реквизита в представлении.

В контекстном меню для реквизитов размещенных на форме, доступен раздел меню "Показать на форме", который содержит список представлений, в которых используется реквизит.

 

При выборе пункта представления, открывается выбранная форма этого представления, на которой соответствующий реквизит будет обозначен синим цветом, а его заголовок будет выделен жирным шрифтом.

 

Просмотр значений параметров ТМ для карточки задачи/задания под курсором мыши

На вкладке "Параметры маршрута" можно выбрать существующий маршрут, таблица параметров заполнится списком параметров этого маршрута.

Также данный механизм заполнения автоматически выполняется для открытой на экране задачи, задания, редактора событий или вычисления и схемы типового маршрута.

Реализован фильтр списка параметров по значению Наименования и вставка этого значения в текст редактора DIRECTUM при двойном щелчке мыши.

 

Технические моменты

Самым технически сложным было наладить прозрачное взаимодействие между программой и окнами DIRECTUM.

Описание формы представления в базе меняется местами от релиза к релизу DIRECTUM, нужно прорабатывать совместимость не только на уровне крупных релизов DIRECTUM, но и внутри них.

Выход DIRECTUM 5.0 может как отменить часть функционала либо заменить его либо открыть новые пути развития. Скорей бы уже анонс и чейнджлог.

Планы на будущее

У меня есть еще несколько идей по более тесной интеграции с DIRECTUM. Еще раз повторюсь, что выход DIRECTUM 5.0 задаст вектор развития.

Как минимум чтобы перейти от наработки к готовому решению будет доведена стабильность и пройден процесс сертификации DIRECTUM на соответствие требованиям.

Трудоемкость решения

На разработку данного прикладного решения было затрачено порядка 300-320 часов. Для сравнения, на разработку другого инструмента Отладчик DIRECTUM было затрачено порядка 350-370 часов.

Ваше мнение?

Насколько удобным все описанное здесь выглядит? 

Совпадает ли Ваше представление о подобном инструменте с моими и были ли у Вас как у специалистов похожие пожелания к системе?

Не пропустите мой предыдущий материал из этой же категории

Альтернативный отладчик ISBL

GIT и сборка

https://github.com/DimensionSlider/directum_tool

 

 

39
Авторизуйтесь, чтобы оценить материал.
2
Алексей Пестерев

Впечатляет! Очень впечатляет! Арслан - молодец!

Арслан Абакаров

Алексей, спасибо! Не ожидал такой положительной оценки от первого же отзыва. yes

Павел Евдокимов

Что я должен сделать, чтобы стать счастливым и получить этот инструмент?

Павел Евдокимов

Что я должен сделать, чтобы получить этот инструмент? Кстати мой голос уже отдан за него.

Александр Павлов

Если не секрет - кто финансирует данную разработку? или эта разработка осуществляется в не рабочее и/или ночное время?

Арслан Абакаров

Павел, мне еще нужно некоторое время чтобы все закончить. Инструмент нормально работает на моем рабочем компьютере, но на других местах еще возникают проблемы разного характера. 

Арслан Абакаров

Александр, не секрет, пока никто не финансирует. Работа идет в основном в нерабочее время, по вечерам и выходным. В рабочее время оно разве что тестируется, местами отлаживается и делаются заметки о том чего еще не хватает. :)

Александр Павлов

Это я чтобы прикинуть сколько у вас времени свободного в этом году smiley
У меня конечно тоже есть, но не столько много часов в год smiley сайт, кстате, тоже мой)).

+1

Артем Моисеев

Звездочка и лайк за материал) здорово! Интересен еще отзыв Дмитрия Тарасова. ждем ссылки на инструмент.

Арслан Абакаров

Артем, не торопите, не торопите. :) Я отладчик в том году выложил с определенными косяками, так и не поправил. Лучше бы поправил, а потом выложил. Не хочу слыть бракоделом )

Евгений Куликов

Классно, интересно. Молодец!

Арслан Абакаров

Евгений, спасибо!

Для меня самый главный вопрос сейчас, это насколько удобным все описанное здесь выглядит?

Совпадает ли Ваше представление о подобном инструменте с моими и были ли у Вас как у специалистов похожие пожелания к системе?

Арслан Абакаров

А также имеет ли подобная тема служебных инструментов место быть и развиваться дальше небольших наработок?

Михаил Тарасов

Тема интересное. Наиболее удобное применение, которое я вообще ожидаю от подобных инструментов - это по CTRL+SPACE показывать не только список переменных, как это делается сейчас, но и список доступных свойств и методов объекта, имя которого находится слева от курсора через точку...

Андрей Михайлов

Даже больше, smiley ,готов променять список переменных на список свойств и методов.

Арслан Абакаров

Михаил, знать бы, что в планах у DIRECTUM. Потому что можно потратить время и потом тебя догонят. 

Анна Долганова

Какая прелесть! Арслан, хорошая работа yes. Присоединюсь к списку ожидающих посмотреть этот инструмент)

 

Арслан Абакаров

Анна, спасибо! Сейчас еще все посмотрим, что за инструменты будут в Directum 5. Может и не надо будет ничего кроме стандартных.

Андрей, я видел реализацию для другой платформы, когда автор не пожалел сил и заменил стандартную встроенную подсказку разработав свой минимальный парсер кода просто чтобы сделать пару моментов чуть лучше. Там вовсю шла работа с памятью процесса и каждый раз приходиться адаптировать внутренности под каждый новый билд платформы. Ох не хочется этим заниматься. )

 

Андрей Михайлов

Всё верно, это был камень в огород разработчиков платформы. А Вам как самоотверженному трудоголику только огромнейшее спасибо.

Андрей Михайлов

Честно говоря не совсем понятно, чего они плагинную систему не реализуют для  редактора кода isbl. Тогда можно было бы штатными средствами помогать редактору в меру своих возможностей.

Арслан Абакаров

Андрей, спасибо, за спасибо )

Надеюсь, что никто мои действия не расценивает как метание камней в сторону D. Просто есть своё видение в отношении того, чем занимаюсь.

Юрий Яковлев

Браво )) отладчиком постоянно пользуюсь. помогает столько траблов решил благодаря ему.  жду и этот инструмент))))) лайк )

Арслан Абакаров

Спасибо Юрий!

Адик Крымгужин
Хорошая работа! Отличный инструмент!
Арслан Абакаров
Адик, спасибо. 
Работы еще впереди не мало!
Роман Деменков

Отличный инструмент!

Арслан, большое спасибо за отладчик, а теперь ещё и за помощника. Хотя само наличие таких инструментов - минус со стороны платформы, как среды разработки.

Александр Савин

и таки когда ждать замечательного помощника?)

Арслан Абакаров

Я тут небольшой перерыв сделал, но потихоньку допиливаю.

А вообще пик замечательности и юзабилити будет, когда я доделаю подсказку через точечку. ;)

Игорь Прищепов

Каков статус проекта?
Есть ли счастливые пользователи?

 

Арслан Абакаров

Извините, что без обновлений по теме. Я работаю, правда не так быстро и много как хотелось бы. Спасибо, что поинтересовались, я постараюсь не обмануть ожидания. :) 

Игорь Прищепов

Арслан, разработчики  в 5.1. обещают какие то "значительные улучшения" при работе с автодополнениями. Вероятно ваш проект их сподвигнул в этом направлении.

Хорошо бы прикрутили автокомплит по реквизитам объектов.


 

Арслан Абакаров

Да, в 5.1 будут некоторые долгожданные улучшения инструментов! :) И я не знаю наверняка почему именно в 5.1, видимо появились дополнительные ресурсы. Да и подсказку по методам и свойствам придумал точно не я, но спасибо )

Сергей Рашевский

Эхх.. жаль, что не дождались :( 

Арслан Абакаров

Да я так понял, что никому это не надо.

Тем более в 5.1 появилась нормальная контекстная подсказка. Хотя этот инструмент работает и на старых версиях.

Арслан Абакаров

На самом деле допилить не проблема. Напишите мне в личку, кто бы поучавствовал в этом процессе и был бы готов терпеть недочеты инструмента на раннем этапе.

Надо будет делать много доработок под разные версии Директум, например, в генераторе форм, мне может быть надо будет подключиться к вашему рабочему месту, может попрошу сделать несколько Селект запросов к базе. В общем активное взаимодействие нужно между пользователем и разработчиком. 

Борис Густяков

А как можно попробовать данный инструмент в деле? :)

Арслан Абакаров

Можно, только он уже давно не обновлялся. С 5-й версией корректно не будет работать.

Вот тут в папке build

https://github.com/DimensionSlider/directum_tool

 

Арслан Абакаров: обновлено 29.06.2018 в 17:02

Авторизуйтесь, чтобы написать комментарий