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


         

Увеличение сложности более раннего кода


Увеличение сложности более раннего кода ограничено единственно запасным выходом в нужной точке.
УПРОЩЕНИЕ.
Этот совет я оставил напоследок, поскольку он служит примером награды за стремление к простоте.
------------------------------------------------------------ СОВЕТ Пытайтесь не хранить какие бы то ни было флаги в памяти. ------------------------------------------------------------
Флаг на стеке сильно отличается от такового в памяти. На стеке флаги могут быть легко получены (опросом аппаратуры, вычислением или чем угодно), а затем употреблены структурами управления. Короткая жизнь без особых затруднений. Но только запишите флаг в память, и увидите, что случится. В добавление к наличию самого флага, у Вас теперь добавились сложности по его размещению. Ведь оно должно быть:
* создано * инициализировано (даже до того, как что-то действительно изменится) * сброшено (то есть передача его определенной команде оставит флаг в нужном текущем состоянии)
Поскольку в памяти все флаги - переменные, то они нереентерабельны. Пример случая, в котором нам следовало бы переосмыслить необходимость флага - это тот пример, который мы уже несколько раз рассматривали. В "цветах" мы предположили, что наилучшим синтаксисом будет:
СВЕТЛО СИНИЙ
то есть прилагательное СВЕТЛО предшествует названию цвета. Отлично. Но помните код, реализующий эту версию? Сравните его с - 274 -
простотой такого подхода:
0 CONSTANT ЧЕРНЫЙ 1 CONSTANT СИНИЙ 2 CONSTANT ЗЕЛЕНЫЙ 3 CONSTANT ЖЕЛТЫЙ 4 CONSTANT КРАСНЫЙ 5 CONSTANT ФИОЛЕТОВЫЙ 6 CONSTANT КОРИЧНЕВЫЙ 7 CONSTANT СЕРЫЙ : СВЕТЛЫЙ ( цвет -- цвет' ) 8 OR ;
В этой версии мы пересмотрели синтаксис и теперь говорим
СИНИЙ СВЕТЛЫЙ
Мы выставили цвет, а затем смодифицировали его. Необходимость в переменной отпала, так же, как и в коде для ее разыменования и в еще большем объеме кода для ее сброса впоследствии. И полученный текст столь прост, что его невозможно не понять. Когда я первый раз написал эти команды, то выбрал подход, свойственный для английского (или русского) языка. "СИНИЙ СВЕТЛЫЙ" звучит задом наперед, что не совсем приемлемо.

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