И эффективности системы.
На языке для исполнения:
Когда ТЗ для всех понятно,
ТП – уже для программиста –
В нём не столь нужно деликатно
Искоренять все жаргонизмы.
Когда написана система,
Для помощи в работе с нею
Полезна текстовая схема,
Чтоб описать её идею
Для пользователей и просто
Помочь в процессе изучения
Её работы – руководство.
Обычно в нем обозначение
Дается следующим вопросам:
Обзор и ссылки, назначение
Системы, функции и способ
Их применения, и решение
Проблем возможных при работе
И при типичном применении.
Полезный документ для многих,
При изучении приложения.
Администратору в работе
Инструкция нужна другая –
В ней описание даёте
Как доступ, роли назначают,
Как заполняют базы данных
И разворачивают сервер,
Как исправлять ошибки надо,
Коль есть известные примерно.
Когда проект идёт к внедрению,
Бывает нужен документ,
В котором есть определение,
Как «тестить» каждый элемент.
Программа тестов-испытаний
При разработке под заказ
Даёт возможность понимания,
Что как проверить и, подчас,
Нужна не менее задания
На разработку, ведь по ней
Проводится согласование
С заказчиком системы всей.
В ней нужен список всех условий
Для выполнения работ,
Сценарий, тесты, по которым
Заказчик проверять пойдёт.
Часть 2. Архитектура ПО
Архитектура приложения –
Борьба со сложностями в нём.
И без неё, как наваждение,
Затраты потекут ручьём,
Потом безудержным потоком
На проведение небольших,
Казалось бы, работ. Итогом –
Перерасход сил трудовых.
Программная архитектура –
Есть описание частей
Системы – вся её структура,
Устройство, отношения в ней –
Все те решения, что в дальнейшем
Затратно будет изменять.
Поэтому вопрос важнейший
Их, в целом, правильно принять.
Хорошая архитектура
Даёт возможность широко
Сопровождения процедуру
Вести удобно и легко.
Вся суть здесь в разделении кода
На модули и компоненты.
С таким предположением, чтобы
Ослабить связи элементов.
Память нужна программисту для жизни,
Больше, пожалуй, чем многим другим.
Помнить все связи объектов капризных,
Чтоб, ненароком, их не упустить.
Чтобы не вышло неведомых багов,
Нужно, частенько, проект в голове
Как-то держать. Если код одинаков,
Распределен в однотипной канве,
Это становится проще немного.
Если же связи не слишком сильны
Между частями его, то дорога
Эта заметно полегче. Увы
Все ухищрения работают явно,
Пусть хорошо, но эффект всё ж размыт.
Память нужна, чтобы помнить хотя бы
То, для чего код программный открыт.
Глава 8. Парадигмы программирования
В императивной парадигме
Код – для процессора команды,
Что будут выполнены в ритме
Последовательном, как ни странно.
Мы пишем то, как надо сделать,
И ожидаем, что так будет.
Здесь можно весь контроль изведать,
Но просто что-то перепутать.
Декларативная программа
Обозначает результаты –
И представляет описание
Того, что нам в итоге надо.
В ней нет значений переменных,
Нет точной логики работы.
Примером может быть отменным
HTML (Аштиэмэль), SQL (Сикьюэль) коды.
При парадигме процедурной
Все операторы и строки –
Команды кода – можно будет
Делить на целостные блоки.
В структурной парадигме сутью
Явилось оформление кода
В иерархической структуре –
В формате иерархий блоков.
За счёт того, что между ними
Нет безусловных переходов,
Ограничениями такими
Даёт облегчить тесты кода.
При ООП программу строят
Из блоков кода и их данных.
Структуру классами готовят,
И создают их экземпляры,
Как по шаблону, для хранения
И обработки данных, чтобы,
В больших проектах упрощения
Таким путём добыть немного.
В функциональной парадигме
Все вычисления ведутся
В «математическом режиме» –
В формате вычисления функций
Без сохранения состояний.
Используются лишь входные
Их аргументы. Позволяя
Убрать ошибки основные
В многопоточных вычислениях,
Но и цена идёт большая –
Для получения значения
Расчёт сначала повторяя.
В аспектной парадигме можно
Сквозные функции системы,
Которые бывает сложно
Не поместить в другие темы,
К примеру, логи и проверки,
Авторизацию, профайлинг,
Отметить в качестве аспектов.
К примеру, атрибутов в шарпе.
При обобщённой парадигме
Для обработки разных данных
Используются алгоритмы,
Что пишутся универсально.
Примером могут быть шаблоны –
Дженерик-функции и классы.
Параметрический, в итоге,
Полиморфизм состоялся.
Глава 9. Принципы проектирования