5 нояб. 2010 г.

Добавляя новые типы параметров

Двоичные форматы — это зло. Пишутся в поток быстро, занимают мало места, но дальше начинается сплошной геморрой. Просмотреть невозможно, стандарным поиском по базе данных пользоваться нельзя и, самое неприятное, когда программист не позаботился об изменении структуры потока в будущем. Типичный пример — список параметров макроса в двоичном потоке (см. метод SaveToStream класса TgsParamData в модуле prm_ParamFunctions_unit.pas). Хорошо, здесь нашелся относительно безболезненный выход: все последние расширения дописываются в поле комментария при записи, изымаются и распознаются при считывании. Например, признак "Обязательный", дописывается в коментарий как последовательноcть ^R, порядок сортировки выпадающих списков задается как ^A и ^D, и т.д.

Более затратным, но и более удобным способом было бы хранение параметров прямо в тексте макроса. Например:
Sub Test (A, B, C)
  '<params>
  '  <param name="A" required="TRUE" type="INTEGER" />
  '  <param name="B" type="LIST" values="..." />
  '  <patam name="C" type="DBLIST" table="GD_CONTACT" />
  '</params>

  'Test's actual code goes here
End Sub
Опытный разработчик определял бы типы параметров прямо в тексте, а для начинающего &mdash мы сохранили бы отдельную вкладку, в том виде, в котором она существует сейчас.

Комментариев нет:

Отправить комментарий