Показать сообщение отдельно
Старый 30.08.2010, 15:28   #48  
AlGol is offline
AlGol
Участник
 
277 / 93 (4) ++++
Регистрация: 24.12.2001
Адрес: Тверь.
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
А по факту получается - что для автоматизации чего-то - сначала нужен ручной труд.
Поддерживаю - этот ручной труд простонародно "автоматизацией" и называется. Т.е. болтики и винтики надо вкрутить руками в определенное место чтобы машина сама ездить начала.

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

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

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

Когда я начинал работать с Аксаптой, в моем ближайшем окружении было достаточно попыток описать ее логику с помощью диаграмм и пр. Но они были полезны, насколько я сейчас вижу, для понятия общей логики системы, взаимодействия модулей в глобальном масштабе. Ньюансы работы всегда разбирались по коду.
Например, нужно было всем объяснять что для разноски проводки ГК сначала создается журнал. После разноски - журнал может остаться может быть стерт, но он уже не влияет на фин результаты.