Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Волшебство программирования на 1С:Предприятие 7.7 Выпуск 17


Информационный Канал Subscribe.Ru

Волшебство программирования на 1С:Предприятие

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

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

Документирование проекта

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

Что я предлагаю? А вот что.

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

* Имя процедуры и функции
* Параметры и их описание
* Возвращаемое значение (или несколько)
* Комментарий (описание)
* Автор
* Дата и время последнего изменения
* Свойства, определяемые пользователем

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

2. Должен быть обеспечен легкий доступ к этим свойствам. То есть когда в другом модуле пишется имя данной процедуры или функции, то например в контекстном меню появляется пункт "Свойства вызываемой процедуры". Это позволит не лезть лишний раз в глобальный модуль, общие модули или дерево конфигурации. Ведь свойства будут под рукой и их можно будет даже взять мышкой и перетащить в исходный код. Еще один бантик!

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

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

Ссылки (зависимости)

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

  1. Объект конфигурации ссылается на другой объект конфигурации
  2. Модуль (процедура/функция) связан с объектом конфигурации (ссылается на него)
  3. Процедуры и функции связаны друг с другом (вызывают друг друга).
  4. другие связи.

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

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

Нужно иметь возможность построения карты зависимостей (ссылок) для всей конфигурации, для одной подсистемы,
для конкретного объекта или группы объектов. Это придаст данному механизму определенную гибкость и эффективность.


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

Официальный сайт рассылки www.mista.ru
Архив выпусков рассылки находится здесь
http://subscribe.ru/archive/comp.soft.prog.magic1c

Учебник по 1С - http://www.mista.ru/tutor_1c
Курс лекций по 1С - http://www.mista.ru/kurs1c
Статьи про 1С - http://www.mista.ru/articles1c

С уважением,
Волшебник Станислав

stasmit@mail.ru



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное