Блоки замещения (или активное содержание)

Feb 15, 2012 20:02

Блоки замещения (или активное содержание)

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

Обобщение. Применять можно не только к текстовой информации, но и к документам (файлам), содержащим любую разнородную информацию - графику, видео, звук.

Применимость.
- Текстовые редакторы
- Редакторы в средах разработки практически любого языка программирования
- Вставки примеров в форумах
- Электронные книги
- Инструкции к применению ( к программам, технике  )
- Договора, отчёты, аналитика, статьи, лицензии и так далее
- ...

Пример №1. Пусть это код на c++. Блоки замещения показаны в квадратных скобках с синим текстом внутри. В условии  оператора if тоже блок замещения. Код реализует некий алгоритм чтения данных из файла, анализ и отправку по сети. На деле его реализация может растянуться на несколько страниц. Использование блоков замещения позволяет свернуть алгоритм до нескольких строк.

if [ есть данные и нет ошибок ] then
      {
            [ 1. прочесть блок данных ]
            [ 2. выполнить анализ ]
            [ 3. разархивировать ]
            [ 4. отослать данные по сети ]
      }

Что даёт применение блоков замещения в языках программирования? 
  • быстро находить в алгоритме нужное место (по логике, а не по разбору кода), как новичку, так и автору
  • легче понять алгоритм, легче найти логическую ошибку
  • при системном применении блоки замещения реализуют документацию к кодам; причём, если меняются коды, то документация меняется автоматически
  • можно реализовывать алгоритм от обратного - сначала основной алгоримтм пишется в виде блоков замещения, потом блоки замещения детализируются или ассоциируются с конкретными кодами
Как пример, какие части кода можно ассоциировать с блоками замещения (для ЯП)? 
- часть алгоритма (часть реализации функции) 
- уславие в условном операторе, операторе цикла
- декларацию группы констант
- декларацию группы методов класса/интерфейса/структуры
- значение длинной (большой) константы
- несколько деклараций классов
- любая часть кода

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

Аналоги
1. В средах разработки есть механизм сворачивания участка кода. Блоки замещения отличаются именно тем, что при сворачивании получаем тест блока замещения, а не безликое многоточие
2. Визарды поиска ответа на вопрос или решения какой-либо проблемы. Такие визарды задают пользователю несколько вопросов, стараясь правильно ответить на его вопрос. Отличие блоков замещения в том, что блоки замещения могут применяться для визуального сжатия и логического обобщения последовательной информации с возможностью произвольного доступа к любой её части, возможностью анализа последовательности информации, размещённой в блоках замещения. 
3. Системы получения документации к проекту по комментариям в кодах. Блоки замещения отличаются тем, что позволяют получить документацию к алгоритмам, позволяют объяснить логику не только интерфейсов, но и отдельных частей реализации, например, логику условия в условном операторе.

блок замещения, идея, активное содержание, программирование

Previous post Next post
Up