4.2.3. Правило SPOT

4.2.3. Правило SPOT

В книге "The Pragmatic Programmer" формулируется правило для одного частного вида ортогональности, который является особенно важным. Это правило "не повторяйтесь": внутри системы каждый блок знаний должен иметь единственное, недвусмысленное и надежное представление. В данной книге предпочтение отдано совету Брайана Кернигана называть данное правило SPOT-правилом (SPOT, или Single Point Of Truth, — единственная точка истины).

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

Константы, таблицы и метаданные следует объявлять и инициализировать только один раз, а затем импортировать. Всякое дублирование кода является опасным знаком. Сложность приводит к затратам; не следует оплачивать ее дважды.

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

• Если дублирование данных существует в разрабатываемом коде ввиду необходимости иметь два различных представления в двух разных местах, то возможно ли написать функцию, средство или генератор кода для создания одного представления.из другого или обоих из общего источника?

• Если документация дублирует данные из кода, то можно ли создать фрагменты документации из фрагментов кода или наоборот, или и то, и другое из общего представления более высокого уровня?

• Если файлы заголовков и объявления интерфейсов дублируют сведения в реализации кода, то существует ли способ создания файлов заголовков и объявлений интерфейсов из данного кода?

Для структур данных существует аналог SPOT-правила: "нет лишнего — нет путаницы". "Нет лишнего" означает, что структура данных (модель) должна быть минимальной, например, не следует делать ее настолько общей, чтобы она могла представлять ситуации, возникновение которых невозможно. "Нет путаницы" означает, что положения, которые должны быть обособлены в реальной проблеме, также должны быть обособлены в модели. Коротко говоря, SPOT-правило поддерживает поиск структуры данных, состояния которой имеют однозначное соответствие с состояниями реальной системы, которая будет моделироваться.

Авторы могут добавить некоторые собственные следствия SPOT-правила в контексте Unix-традиций.

• Если данные дублируются из-за кэширования промежуточных результатов некоторых вычислений или поиска, то следует внимательно проанализировать, не является ли это преждевременной оптимизацией. Устаревшие данные кэша (и уровни кода, необходимые для поддержки синхронизации кэша) являются "неиссякаемым" источником ошибок31 и даже способны снизить общую производительность, если (как часто случается) издержки управления кэшем превышают ожидания разработчика.

• Если наблюдается большое количество повторов шаблонного кода, то возможно ли создать их все из одного представления более высокого уровня, изменяя некоторые параметры для создания различных вариантов?

Теперь модель должна быть очевидной.

В мире Unix SPOT-правило редко проявляется как явная унифицирующая идея, однако, интенсивное использование генераторов кода для реализации специфических видов SPOT является весьма большой частью традиции. Данные методики рассматриваются в главе 9.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Глава 23. Правило 20 на 80

Из книги Экстремальное программирование автора Бек Кент

Глава 23. Правило 20 на 80 Полная отдача от ХР получается только тогда, когда в силу вступают все методики. Многие практики можно вводить в силу постепенно, однако если все они введены в действие, общий эффект от их использования равен произведению между ними.Разработчики


Менеджер фотографий F-Spot

Из книги 200 лучших программ для Linux автора Яремчук Сергей Акимович

Менеджер фотографий F-Spot Разбираться с большим количеством фотографий непросто. На помощь придет утилита F-Spot. Программа F-Spot (http://f-spot.org/) предназначена для организации коллекций фотографий. Обладает простым и понятным интерфейсом, переведенным на русский язык (рис.


Правило правой руки

Из книги AutoCAD 2009 для студента. Самоучитель автора Соколова Татьяна Юрьевна

Правило правой руки При работе в трехмерном пространстве в AutoCAD все системы координат формируются по правилу правой руки. Оно определяет положительное направление оси Z трехмерной системы координат при известных направлениях осей X и Y, а также положительное направление


Spot Lifter (Устранение пятен)

Из книги Photoshop. Лучшие фильтры автора Бондаренко Сергей

Spot Lifter (Устранение пятен) Данный фильтр также помогает бороться с проблемами на коже. Используя его, можно избавиться от мелких дефектов на коже – красных пятнышек, веснушек и т. д. (рис. 2.54). Рис. 2.54. Настройки фильтра Spot Lifter (Устранение пятен).Фильтр устраняет различные


Center Spot (Центральный объект)

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

Center Spot (Центральный объект) Позволяет размыть фон изображения, оставив в фокусе основной объект. Этот фильтр пригодится, когда нужно привлечь внимание к центральному объекту или когда в кадр попали ненужные предметы и их нужно скрыть. Можно сказать, что Center Spot


4.2.3. Правило SPOT

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

4.2.3. Правило SPOT В книге "The Pragmatic Programmer" формулируется правило для одного частного вида ортогональности, который является особенно важным. Это правило "не повторяйтесь": внутри системы каждый блок знаний должен иметь единственное, недвусмысленное и надежное представление.


Правило типизации

Из книги Добавьте в корзину. Ключевые принципы повышения конверсии веб-сайтов автора Айзенберг Джеффри

Правило типизации Правило типизации, делающее допустимым первый набор и недопустимым второй, интуитивно понятно, но его надо уточнить.Вначале рассмотрим обычные, не родовые классы. Пусть C такой класс. Рассмотрим объявление его компонента, не использующее, естественно,


Правило переименования

Из книги CSS3 для веб-дизайнеров автора Сидерхолм Дэн

Правило переименования В этом разделе мы не введем никаких новых понятий, а лишь точнее сформулируем известные правила и приведем пример, призванный пояснить сказанное.Начнем с запрета возникновения конфликта имен:Определение: финальное имяФинальным именем компонента


Правило языка

Из книги HTML, XHTML и CSS на 100% автора Квинт Игорь

Правило языка Правило Утверждений Переобъявления, так как оно сформулировано, является концептуальным руководством. Как преобразовать его в безопасное и проверяемое правило языка?В принципе, чтобы убедиться в том, что старые предусловия влекут новые, а новые


Правило большинства

Из книги Цифровая фотография. Трюки и эффекты автора Гурский Юрий Анатольевич

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


Общее правило

Из книги Идеальный программист. Как стать профессионалом разработки ПО автора Мартин Роберт С.

Общее правило Следующий шаг – написать общее правило, которое абсолютно спозиционирует каждое изображение внутри элемента списка и, соответственно, поверх изображения Луны.Каждый элемент будет спозиционирован по-своему в зависимости от объекта; также будут


7.5. Правило @media

Из книги автора

7.5. Правило @media Правило @media позволяет задавать правила CSS для различных устройств в пределах одной таблицы стилей, разделенных запятыми. Иными словами, вы можете задать для одного и того же элемента один размер шрифта для печати, а другой для просмотра на


7.7. Правило @import

Из книги автора

7.7. Правило @import Правило @import позволяет импортировать правила стилей из других таблиц стилей. Массив правил @import должен предшествовать всем другим правилам в таблице стилей. После ключевого слова @import должен следовать URL-адрес таблицы стилей, которую необходимо


Правило третей

Из книги автора

Правило третей Правило третей – это упрощенный вариант правила золотого сечения. Примечание Чтобы получить золотое сечение отрезка, его разбивают на две части таким образом, что соотношение его меньшей части к большей равно соотношению большей части ко всему отрезку.


9.17. Spot Healing Brush (Точечная лечащая кисть)

Из книги автора

9.17. Spot Healing Brush (Точечная лечащая кисть) Этот инструмент позволяет быстро удалять пятна и другие недостатки с фотографий. Он работает приблизительно как Healing Brush (Лечащая кисть): рисует схожими пикселами изображения или узором и подбирает текстуру, освещение, прозрачность


Первое правило: не навреди

Из книги автора

Первое правило: не навреди Итак, какие же принципы присущи ответственному поведению? Руководствоваться клятвой Гиппократа немного нескромно, но разве можно найти лучший источник? И в конце концов, это только логично – одаренный профессионал должен в первую очередь