Способ мышления-Форт




Глава 8. Минимизация структур управления - часть 28


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

------------------------------------------------------------ СОВЕТ Не откладывайте на время исполнения того, что можете сделать сегодня. ------------------------------------------------------------

Когда у Вас есть возможность принять решение до компиляции, принимайте его. Предположим, у Вас два варианта массивов: один с проверкой границ для стадии отладки, а другой, работающий быстрее, но без проверок, для реальной задачи. - 270 -

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

: ШАГОВИКИ 150 'ПРОВЕРКА? @ 1 AND + LOAD ;

------------------------------------------------------------ СОВЕТ Делайте с флагом действие "DUP", а не повторяйте его вычисление. ------------------------------------------------------------

Иногда флаг нужен для того, чтобы показать, был или не был исполнен предыдущий участок кода. Вот определение, которое оставляет флаг, означающий, что СДЕЛАТЬ-ЭТО было исполнено:

: Я-СДЕЛАЛ? ( t=сделал) Я-ДОЛЖЕН? IF СДЕЛАТЬ-ЭТО TRUE ELSE FALSE THEN ;

Это можно упростить до:

: Я-СДЕЛАЛ? ( t=сделал) Я-ДОЛЖЕН? DUP IF СДЕЛАТЬ-ЭТО THEN ;

------------------------------------------------------------ СОВЕТ Не устанавливайте флаг, устанавливайте данные. ------------------------------------------------------------

Если единственной целью установки флага является возможность для некоторого кода выбрать одно из двух чисел, то лучше устанавливать само такое число. Пример "цветов" в шестой главе из раздела "Критерии для фрагментации" иллюстрирует этот тезис. Задачей слова СВЕТЛО является установка флага, который показывает, не хотим ли мы установить бит повышенной яркости.


Содержание  Назад  Вперед