Конспект/видео/005. Архитектура и проектирование ПО

Apr 21, 2015 18:12

Конспект по видео "Архитектура и проектирование ПО"
(https://www.youtube.com/watch?v=YLf_zWZ3hZ0)

Термин "Архитектура ПО" много определений:
-наиболее абстрактное описание системы
-то, что сложно изменить в дальнейшем
-то, что кажется архитектору важным
-конкретный набор документов

Описание архитектуры:
-компоненты системы и их взаимодействие
-самые важные классы и функции
-организация данных
-структура пользовательского интерфейса
-обработка исключительный ситуаций и сбоев <== важная часть, о которой часто забывают
-безопасность
-использование технологий и стороннего ПО
-использование ресурсы (люди/машины)
-способы развития системы
-способы тестирования системы

Что нужно архитектору:
-опыт
-умение работать с абстракциями (мета-навык? книга "Структура и интерпретация компьютерных программ" Абельсон,
Сассман)
-знание типовых решений/паттернов/шаблонов

Типовые решения:
-архитектурные шаблоны
-низкоуровневые шаблоны
-алгоритмы
костыли встречаются в каждом из этих трех пунктов

Архитектурные шаблоны.

Концепция слоев - абстрактное деление программы на три части:
-представление (presentation!) - интерфейс
-домен/бизнес-логика (domain) - основная функциональность
-источник данных (data source) - часть системы, которая отвечает за работу с СУБД
Концепция слоев дает изоляцию, можно менять одну часть почти не затрагивая остальные

Шаблоны домена:
-сценарий транзакции (transaction script)
-модель предметной области (domain model)
-слой служб (service layer)

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

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

Слой служб - "склеивание" двух пред.паттернов - модель предметной области и сценарий транзакций.
Плюсы и минусы - выше.

Шаблоны источника данных (ORM):
-шлюз таблицы данных (table data gateway)
-шлюз записи данных (row data gateway)
-преобразователь данных (data mapper)

Шаблоны представления (view! not presentation!):
Модель-Представление-Контроллер

Контроллеры:
-контроллер страниц - "на такой url - вот такая страница"
-контроллер запросов

*потерялсо, почему он постоянно говорит про Django?*

книга М.Фаулер "Архитектура корпоративных программных приложений"

Алгоритмы
книга Д.Кнут "Искусство програмирования"
книга Н.Вирт "Алгоритмы и структуры данных"
книга А.Шень "Программирование. Теоремы и задачи"

Шаблоны проектирования ООП
книга "Приёмы объктно-ориентированного проектирования. Паттерны проектирования"

Шаблоны проектирования ФП
*конец*

архитектура, видео, проектирование ПО, конспект

Previous post Next post
Up