5. 5
Что такое архитектура ПО?
Наиболее абстрактное описание системы.
То, что будет сложно изменить в дальнейшем.
6. 6
Что такое архитектура ПО?
Наиболее абстрактное описание системы.
То, что будет сложно изменить в дальнейшем.
То, что кажется архитектору важным.
7. 7
Что такое архитектура ПО?
Наиболее абстрактное описание системы.
То, что будет сложно изменить в дальнейшем.
То, что кажется архитектору важным.
Конкретный набор документов.
12. 12
Описание архитектуры
Самые важные классы / функции.
Компоненты системы и их взаимодействие.
class Banner (object):
phrases = []
def show (self, condition):
'''Returns banner representation'''
pass
def add_phrase (self, phrases):
'''Adds Phrase object to phrases list'''
pass
class Phrase (object):
text = ''
14. 14
Описание архитектуры
Самые важные классы / функции.
Компоненты системы и их взаимодействие.
Организация данных.
Структура пользовательского интерфейса.
15. 15
Описание архитектуры
Самые важные классы / функции.
Компоненты системы и их взаимодействие.
Организация данных.
Структура пользовательского интерфейса.
Обработка исключительных ситуаций и сбоев.
16. 16
Описание архитектуры
Самые важные классы / функции.
Компоненты системы и их взаимодействие.
Организация данных.
Структура пользовательского интерфейса.
Обработка исключительных ситуаций и сбоев.
Безопасность.
17. 17
Описание архитектуры
Самые важные классы / функции.
Компоненты системы и их взаимодействие.
Организация данных.
Структура пользовательского интерфейса.
Обработка исключительных ситуаций и сбоев.
Безопасность.
Использование технологий и стороннего ПО.
18. 18
Описание архитектуры
Самые важные классы / функции.
Компоненты системы и их взаимодействие.
Организация данных.
Структура пользовательского интерфейса.
Обработка исключительных ситуаций и сбоев.
Безопасность.
Использование технологий и стороннего ПО.
Использование ресурсов.
19. 19
Описание архитектуры
Самые важные классы / функции.
Компоненты системы и их взаимодействие.
Организация данных.
Структура пользовательского интерфейса.
Обработка исключительных ситуаций и сбоев.
Безопасность.
Использование технологий и стороннего ПО.
Использование ресурсов.
Способы развития системы.
20. 20
Описание архитектуры
Самые важные классы / функции.
Компоненты системы и их взаимодействие.
Организация данных.
Структура пользовательского интерфейса.
Обработка исключительных ситуаций и сбоев.
Безопасность.
Использование технологий и стороннего ПО.
Использование ресурсов.
Способы развития системы.
Способы тестирования системы.
54. 54
Слой представления (Presentation)
Слой домена (Domain)
Слой источника данных (Data Source)
Domain Object
Domain Object
Domain Object
Domain Object
Domain Object
Модель предметной области (Domain Model)
55. 55
Плюсы:
• хорошо описывает сложную бизнес-логику;
• обеспечивает хорошую изоляцию.
Модель предметной области (Domain Model)
56. 56
Плюсы:
• хорошо описывает сложную бизнес-логику;
• обеспечивает хорошую изоляцию.
Минусы:
• сложна в реализации;
• возможны проблемы с эффективностью.
Модель предметной области (Domain Model)
59. 59
Плюсы:
• хорошо описывает сложную бизнес-логику;
• хорошо реализует сценарии использования;
• обеспечивает отличную изоляцию.
Слой служб (Service Layer)
60. 60
Плюсы:
• хорошо описывает сложную бизнес-логику;
• хорошо реализует сценарии использования;
• обеспечивает отличную изоляцию.
Минусы:
• сложен в реализации;
• возможны проблемы с эффективностью.
Слой служб (Service Layer)
64. 64
Слой домена (Domain)
Слой источника данных (Data Source)
Table objectTable object Table object
Источник данных
Шлюз таблицы данных (Table Data Gateway)
67. 67
Слой домена (Domain)
Слой источника данных (Data Source)
Row ObjectRow Object Row Object
Источник данных
Шлюз записи данных (Row Data Gateway)
68. 68
Подходящие решения домена:
• сценарий транзакции;
• модель предметной области (Active Record);
• слой служб.
Шлюз записи данных (Row Data Gateway)
74. 74
Модель — Представление — Контроллер (MVC)
Слой представления (Presentation)
Слой домена (Domain)
Представление (View)
Контроллер (Controller)
Модель (Model)
92. 92
Плюсы:
• гибкость;
• отличная изоляция представления;
• не дублируется код.
Минусы:
• сложность верстки;
• еще одна технология для изучения.
Представление с преобразованием
(Transform View)
98. 98
Алгоритмы
Д. Кнут "Искусство программирования"
Н. Вирт "Алгоритмы и структуры данных"
Т. Кормен "Алгоритмы. построение и анализ"
99. 99
Алгоритмы
Д. Кнут "Искусство программирования"
Н. Вирт "Алгоритмы и структуры данных"
Т. Кормен "Алгоритмы. построение и анализ"
А. Шень "Программирование. Теоремы и задачи"