скачать книгу бесплатно
Не повторяйте себя (Don’t Repeat Yourself, DRY)
Не надо повторять себя –
Решай единожды задачи.
Ведь если надо будет взять
И сделать что-либо иначе,
Во всех повторах повторить
Придётся эти изменения
И ничего не пропустить –
Довольно сложно в выполнении.
До написания кодов
Полезно изучить систему:
Вполне возможно, код готов
И кем-то был когда-то сделан.
Вам это не понадобится (You Aren’t Gonna Need It, YAGNI)
Пишите только то, что надо,
Прямо сейчас, а не в грядущем.
Это уменьшит вам затраты.
Не нужно делать, что не нужно.
Преждевременная оптимизация (Avoid Premature Optimization)
Не нужно слишком рано код
Оптимизировать упорно.
И лишь когда проект готов,
Оптимизации достойна
Становится программа вся.
И начинать полезно будет
С тех мест, что явно тормозят,
От остального не убудет.
Глава 10. Проектирование слоёв, звеньев и подсистем
Границы и зависимости подсистем
Чтоб нам систему развивать
Удобно было и приятно,
Её полезно разделять
Так, чтобы было не затратно
В дальнейшем части отделить
В процессы, сервисы и службы,
Или обратно совместить
Как монолит – бывает нужно.
Сей выбор можно отложить
И написать систему в целом
Так, чтобы можно было жить
Ей в разных звеньях и разделах.
Как независимую часть
Отдельным модулем, проектом –
В основе – лучше прописать
Всю бизнес-логику. При этом
Взаимодействия вокруг –
Фреймворки, базы данных
И интерфейсы – в виде слуг
И плагинов непостоянных.
Слои абстракции
Для упрощения создания
Больших систем их делят на
Слои, что больше пониманья
Дают для каждого звена.
Слои в себе скрывают сложность,
Давая только интерфейс
Для тех что выше и возможность
Замены внутренностей здесь.
Слои, что ниже, в общем целом,
О верхних знать не должны,
Над ними могут, между делом,
И новые быть введены.
Глобальных данных быть не может,
Всё состояние – внутри.
Конкретных связей, функций – тоже –
Лишь интерфейсы между них.
Благодаря такой структуре
Слои возможно заменять.
Внутри слоёв в архитектуре
Всю сложность лишнюю скрывать.
Звенья
Систему можно разделить
На несколько частей, к примеру,
На сервер и клиент. Решить,
Как будет лучше это сделать,
Обычно, первый из шагов
Архитектуры приложения.
Ряд слабосвязанных узлов
Отдельных называют звенья.
Файл-сервер
Для файл-серверных систем
Предполагается возможность
Хранения данных в файлах. Всем
К ним должен быть открытый доступ.
Двухзвенная архитектура клиент-сервер
Двухзвенная архитектура
Предполагает два звена
И два подхода, как структура,
И логика разделена.
Удаленный доступ к данным (Remote Data Access, RDA)
В модели RDA (Эрдэа?), иначе –
Доступа к удаленным данным –
Вся логика и все задачи
На стороне клиент-программы,
А в базе лишь хранение данных.
При этом больше трафик и
Выше возможность нежеланных
Вмешательств с третьей стороны.
DBS (Database Server)
В модели сервера баз данных,