Стиль проектирования
Стиль проектирования
Дураки игнорируют сложности. Прагматики терпят их. Некоторые ухитряются их избегать. И только гении устраняют их.
— Алан Перлис (Alan Perlis)
Я также знал, но забыл афоризм Хоара о том, что преждевременная оптимизация — корень всех зол в программировании.
— Дональд Кнут (Donald Knuth),
The Errors of TeX [Knuth89]
Очень сложно отделить стиль проектирования от стиля кодирования. Мы попытались поместить в очередном разделе те вопросы, которые обычно проявляются, когда вы начинаете писать реальный код.
В этом разделе внимание уделяется принципам и практическим вопросам, область применения которых больше, чем просто отдельный класс или функция. Классические примеры — баланс между простотой и ясностью (рекомендация 6), избежание преждевременной оптимизации (рекомендация 8) и пессимизации (рекомендация 9). Эти рекомендации применимы не только на уровне кодирования отдельной функции, но и к большим областям — проектированию классов и модулей или к решениям с далеко идущими последствиями по поводу архитектуры приложений. (Они применимы также для всех программистов. Если вы считаете иначе — еще раз прочтите приведенную выше цитату Кнута и даже заучите ее на память.)
Многие из прочих рекомендаций этого и следующего разделов имеют дело с управлением зависимостями — краеугольным камнем проектирования программного обеспечения и часто повторяющейся в данной книге темой. Остановитесь и задумайтесь над произвольной методикой проектирования программного обеспечения — любой хорошей методикой. Какую бы методику вы ни выбрали, так или иначе вы столкнетесь с ослаблением зависимостей. Наследование? Разрабатываемый код должен делать производный класс как можно менее зависимым от базового класса. Минимизация использования глобальных переменных? Снижает дальнодействующие зависимости, осуществляемые посредством широко видимых разным частям программы данных. Абстракция? Устраняет зависимости между кодом, который управляет концепциями, и кодом, который их реализует. Сокрытие информации? Делает код клиента менее зависимым от деталей реализации. Забота об управлении зависимостями отражается в устранении совместного использования состояния (рекомендация 10), применении сокрытия информации (рекомендация 11) и прочем.
В этом разделе самой важной нам кажется рекомендация 6: "Главное — корректность, простота и ясность".
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Добавим стиль
Добавим стиль Добавим немного CSS, чтобы превратить этот вертикальный список в горизонтальную сетку; поставим обводку толщиной в один пиксель вокруг каждой картинки (также заметим, что фон страницы – легкий серый #eee).ul.gallery li { float: left; margin: 0 10px; padding: 10px; border: 1px solid #ddd; list-style:
Стиль границы
Стиль границы Для задания стиля границы используются следующие свойства: border-top-style, border-right-style, border-bottom-style, border-left-style и сокращенная запись – border-style. Свойства стиля границы определяют стиль линии (сплошная, двойная, пунктирная и т. д.), выступающей в качестве границы. Все
Стиль кодирования
Стиль кодирования Константа для одного является переменной для другого. — Алан Перлис (Alan Perlis) В этом разделе мы перейдем от вопросов проектирования к вопросам, которые появляются в основном при реальном кодировании.Правила и рекомендации из этого раздела применимы
5.2.1. DSV-стиль
5.2.1. DSV-стиль Аббревиатура DSV расшифровывается как Delimiter-Separated Values (формат с разделителями значений). В первом учебном примере рассматривался файл /еtc/passwd, имеющий DSV-формат с символом двоеточия в качестве разделителя значений. В операционной системе Unix двоеточие является
18.2. Стиль Unix
18.2. Стиль Unix Стиль документации в Unix (и инструментов для подготовки документов) имеет несколько технических и культурных особенностей, которые обособляют его от способа создания документации в других системах. Понимание данных характерных особенностей, во-первых,
18.2.2. Культурный стиль
18.2.2. Культурный стиль Большая часть документации по программному обеспечению написана "техническими писателями", стремящимися найти наименьший общий знаменатель незнания — "умное написание для неосведомленных". Документация, которая поставляется с Unix-системами,
5.2.1. DSV-стиль
5.2.1. DSV-стиль Аббревиатура DSV расшифровывается как Delimiter-Separated Values (формат с разделителями значений). В первом учебном примере рассматривался файл /etc/passwd, имеющий DSV-формат с символом двоеточия в качестве разделителя значений. В операционной системе Unix двоеточие является
18.2. Стиль Unix
18.2. Стиль Unix Стиль документации в Unix (и инструментов для подготовки документов) имеет несколько технических и культурных особенностей, которые обособляют его от способа создания документации в других системах. Понимание данных характерных особенностей, во-первых,
18.2.2. Культурный стиль
18.2.2. Культурный стиль Большая часть документации по программному обеспечению написана "техническими писателями", стремящимися найти наименьший общий знаменатель незнания — "умное написание для неосведомленных". Документация, которая поставляется с Unix-системами,
Стиль текста
Стиль текста Шрифтом, высотой и другими характеристиками, которые влияют на вид текста, можно управлять с помощью текстовых стилей. С любым текстом в рисунке связан определенный стиль. При добавлении нового текста используются настройки стиля текста, заданные в данный
Стиль размера
Стиль размера Мы рассмотрели, как создавать и размещать объекты размеров. Однако это только часть процесса. Из данного раздела вы узнаете, как управлять видом размерных объектов, используя стили размера.Стиль размера – совокупность параметров, хранящихся под
8.3. Стиль программирования
8.3. Стиль программирования Подчиняться при программировании некоторым стилистическим соглашениям нужно для того, чтобы• уменьшить опасность внесения ошибок в программы и• создавать программы, которые легко читать, понимать, отлаживать и модифицировать.Ниже дается
Стиль руководства
Стиль руководства В математике функции бывают сразу четными и нечетными. Только это все подфункции тождественного нуля. А начальники умеют быть посредственными и непосредственными одновременно.Про то, как нужно руководить людьми, написана куча литературы, особенно в