SlideShare a Scribd company logo
1 of 26
Архитектура в web –
грабли, боль или
красота
Анна Тарасенко,
7bits
Типы web-проектов
• Контентные: Instagram, twitter, habrahabr
• Интернет-магазины
• Бизнес-приложения: автоматизация
процессов
• Распределенные сервисы: RTB,
картография, поиск, анализ метаданных,
телекоммуникации
Характеристики
Контентные Магазины Бизнес RTB,
поиск
Объем данных ++++ +++ ++ +++++++
Число
пользователей
+++++ +++ ++ ++
Число запросов ++++++ ++++ +++ +++++++
Время отклика ++ +++ ++++ +
Публичность +++ +++ -/+ -/+
Стоимость
разработки
++ + +++++ +++++
Надежность
хранения данных
+ +++ +++ ++
Сложность
логики
+ ++ +++++ +++++
Контентные сайты
• Content management system (CMS) – Drupal,
Wordpress, Joomla и т.д.
• Много серверов, много файлов (видео, аудио)
по сравнению с объемом данных в БД
• Кэширование контента, пользователи не
терпят задержек
• Тюнинг за счет инфраструктуры
Магазины
• Специализированные CMS, интеграция с
бухгалтерскими и складскими системами
• Работа с финансовыми транзакциями
• Пользователи лояльнее к времени открытия
страницы
• Многое как в контентных сайтах
Бизнес-приложения
• Web-фреймворки: PHP, Ruby, Python, Java, C#
• Данные в SQL БД, один сервер БД, один
сервер приложения
• Пользователи часто корпоративные или
лояльны к интерфейсу и задержкам ради
функций
• Тюнинг за счет асинхронных задач,
оптимизации алгоритмов
RTB, поиск и т.д.
• Сервисы без интерфейсов: Java, C++ и т.д.
• NoSQL БД, специальные файловые системы
• «Пользователи» – внешние системы
• Тюнинг за счет оптимизации алгоритмов,
MapReduce, оптимизации хранения данных
Архитектура
Определяющие вещи (по убыванию сложности
изменения):
• Предметная область
• Слои абстракции
• Протоколы взаимодействия
• Структура хранения данных
Архитектура – это то,
что сложнее всего
поменять в проекте
Слои по Э. Эвансу
• Интерфейс пользователя (UI)
• Уровень приложения (Application layer)
• Уровень предметной области (Domain layer)
• Инфраструктурный уровень (Infrastructure
layer)
Инфраструктура
• Хранение данных (Persistence): БД, файловая
система
• Службы рассылки email, sms и т.д.
• Логгирование и мониторинг
• Очереди задач, кэширование данных и
страниц
UI
• Шаблоны для отображения: HTML + JS и вот
это все
• Представление в виде документов
• Локализация и интернационализация
• Usability
Уровень приложения
Основной объект – контроллеры:
• Принимают данные от слоя бизнес-логики,
выбирают отображение
• Управляют службами инфраструктурного
уровня (иногда кроме слоя хранения)
• Управляют правами доступа и протоколами
безопасности
Предметная область
• Изолирована от специфики хранения данных
• Изолирована от специфики приложения:
web, консоль, десктоп
• Манипулирует сущностями (Entities) и
объектами-значениями (Value objects)
• Содержит слой сервисов для работы с бизнес-
правилами (Business rules)
Кому нужна бизнес-
логика?
По типам проектов
• Контентные и Интернет-магазины: вся
логика в CMS, нужно заниматься в основном
инфраструктурой
• Распределенные сервисы: в основном
логика в поиске закономерностей в больших
объемах данных
• Бизнес-приложения: вся основа – в
предметной области
Подход к разработке
бизнес-приложений:
Domain Driven Design
(DDD)
Суть DDD
Типы объектов:
• Entity – сущность, объект обладающий
уникальным существованием
• Value object – объект-значение, не является
уникальным, много копий в системе
Суть DDD
Типы объектов:
• Service – не представляет реальный объект,
манипулирует сущностями, реализует
бизнес-правила. На стыке с уровнем
приложения
• Repository – хранилище объектов. На стыке с
инфраструктурным слоем
Пример: формирование
human readable date
Пример: рассылка email
о событии
Пример: формирование
исключения об
отсутствии прав на
объект
Пример: изменение
статуса сущности
Где нужны web-
фреймворки?
Литература
• Стивен МакКоннел. «Совершенный код»
• Мартин Фаулер. «Архитектура
корпоративных программных приложений»
• Эрик Эванс. «Предметно-ориентированное
проектирование»
• Джоэл Спольски. «Джоэл о
программировании», «Джоэл снова о
программировании»
Спасибо!
• Email: at@7bits.it
• Skype: anna_tarasenko

More Related Content

Viewers also liked (7)

Ситуативный маркетинг
Ситуативный маркетингСитуативный маркетинг
Ситуативный маркетинг
 
Legal and Ethical Research
Legal and Ethical ResearchLegal and Ethical Research
Legal and Ethical Research
 
Современные тренды в SMM
Современные тренды в SMMСовременные тренды в SMM
Современные тренды в SMM
 
100 советов по PR
100 советов по PR100 советов по PR
100 советов по PR
 
GRAPE
GRAPEGRAPE
GRAPE
 
Презентация "ПиАР и эффективные коммуникации"
Презентация "ПиАР и эффективные коммуникации"Презентация "ПиАР и эффективные коммуникации"
Презентация "ПиАР и эффективные коммуникации"
 
Медийная реклама: итоги 1 полугодия 2016
Медийная реклама: итоги 1 полугодия 2016Медийная реклама: итоги 1 полугодия 2016
Медийная реклама: итоги 1 полугодия 2016
 

Similar to Архитектура в web, доклад на Women techmakers, Omsk, 2014

Управляем сайтом: Быстро. Просто. Эффективно.
Управляем сайтом: Быстро. Просто. Эффективно.Управляем сайтом: Быстро. Просто. Эффективно.
Управляем сайтом: Быстро. Просто. Эффективно.Евгений Курбанов
 
1С-Битрикс: От Старта к Большому бизнесу
1С-Битрикс: От Старта к Большому бизнесу1С-Битрикс: От Старта к Большому бизнесу
1С-Битрикс: От Старта к Большому бизнесуЕвгений Курбанов
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитикиИлья Середа
 
1С-Битрикс от Generic Solution
1С-Битрикс от Generic Solution1С-Битрикс от Generic Solution
1С-Битрикс от Generic SolutionSergey Polazhenko
 
О системе 1С-Битрикс, презентация компании Ремарк.Интеграция
О системе 1С-Битрикс, презентация компании Ремарк.ИнтеграцияО системе 1С-Битрикс, презентация компании Ремарк.Интеграция
О системе 1С-Битрикс, презентация компании Ремарк.Интеграцияremark72.ru
 
Бери и делай. «1C-Битрикс» — готовая платформа для интернет-магазина.
Бери и делай. «1C-Битрикс» — готовая платформа для интернет-магазина.Бери и делай. «1C-Битрикс» — готовая платформа для интернет-магазина.
Бери и делай. «1C-Битрикс» — готовая платформа для интернет-магазина.Astra Media Group, Russia
 
Redsoft - проектирование интернет магазинов 2017
Redsoft - проектирование интернет магазинов 2017Redsoft - проектирование интернет магазинов 2017
Redsoft - проектирование интернет магазинов 2017Alex Shishkin
 
1С-Битрикс Платформа для разрабоки интернет-магазина
1С-Битрикс Платформа для разрабоки интернет-магазина1С-Битрикс Платформа для разрабоки интернет-магазина
1С-Битрикс Платформа для разрабоки интернет-магазинаIRCIT
 
Поисковое продвижение интернет-магазина: подготовка,этапы, проблемы
Поисковое продвижение интернет-магазина:  подготовка,этапы, проблемыПоисковое продвижение интернет-магазина:  подготовка,этапы, проблемы
Поисковое продвижение интернет-магазина: подготовка,этапы, проблемыCIT TROYA
 
Готовим сайты на 1С-Битрикс
Готовим сайты на 1С-БитриксГотовим сайты на 1С-Битрикс
Готовим сайты на 1С-БитриксIRCIT
 
Webuibasics - Lesson 1 - Overview (in russian)
Webuibasics - Lesson 1 - Overview (in russian) Webuibasics - Lesson 1 - Overview (in russian)
Webuibasics - Lesson 1 - Overview (in russian) xasima
 
1c bitrix-cp 21-09
1c bitrix-cp 21-091c bitrix-cp 21-09
1c bitrix-cp 21-09BDA
 
1c bitrix-cp 21-09
1c bitrix-cp 21-091c bitrix-cp 21-09
1c bitrix-cp 21-09BDA
 
1c bitrix-cp
1c bitrix-cp1c bitrix-cp
1c bitrix-cpBurbon.ru
 
1c bitrix-cp
1c bitrix-cp1c bitrix-cp
1c bitrix-cpBDA
 
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-casesInformatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-casesIlya Gershanov
 
SharePoint Introduction
SharePoint IntroductionSharePoint Introduction
SharePoint IntroductionVitaly Baum
 

Similar to Архитектура в web, доклад на Women techmakers, Omsk, 2014 (20)

Metadata.js
Metadata.jsMetadata.js
Metadata.js
 
Управляем сайтом: Быстро. Просто. Эффективно.
Управляем сайтом: Быстро. Просто. Эффективно.Управляем сайтом: Быстро. Просто. Эффективно.
Управляем сайтом: Быстро. Просто. Эффективно.
 
1С-Битрикс: От Старта к Большому бизнесу
1С-Битрикс: От Старта к Большому бизнесу1С-Битрикс: От Старта к Большому бизнесу
1С-Битрикс: От Старта к Большому бизнесу
 
1c bitrix-cms
1c bitrix-cms1c bitrix-cms
1c bitrix-cms
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 
1С-Битрикс от Generic Solution
1С-Битрикс от Generic Solution1С-Битрикс от Generic Solution
1С-Битрикс от Generic Solution
 
О системе 1С-Битрикс, презентация компании Ремарк.Интеграция
О системе 1С-Битрикс, презентация компании Ремарк.ИнтеграцияО системе 1С-Битрикс, презентация компании Ремарк.Интеграция
О системе 1С-Битрикс, презентация компании Ремарк.Интеграция
 
Portal
PortalPortal
Portal
 
Бери и делай. «1C-Битрикс» — готовая платформа для интернет-магазина.
Бери и делай. «1C-Битрикс» — готовая платформа для интернет-магазина.Бери и делай. «1C-Битрикс» — готовая платформа для интернет-магазина.
Бери и делай. «1C-Битрикс» — готовая платформа для интернет-магазина.
 
Redsoft - проектирование интернет магазинов 2017
Redsoft - проектирование интернет магазинов 2017Redsoft - проектирование интернет магазинов 2017
Redsoft - проектирование интернет магазинов 2017
 
1С-Битрикс Платформа для разрабоки интернет-магазина
1С-Битрикс Платформа для разрабоки интернет-магазина1С-Битрикс Платформа для разрабоки интернет-магазина
1С-Битрикс Платформа для разрабоки интернет-магазина
 
Поисковое продвижение интернет-магазина: подготовка,этапы, проблемы
Поисковое продвижение интернет-магазина:  подготовка,этапы, проблемыПоисковое продвижение интернет-магазина:  подготовка,этапы, проблемы
Поисковое продвижение интернет-магазина: подготовка,этапы, проблемы
 
Готовим сайты на 1С-Битрикс
Готовим сайты на 1С-БитриксГотовим сайты на 1С-Битрикс
Готовим сайты на 1С-Битрикс
 
Webuibasics - Lesson 1 - Overview (in russian)
Webuibasics - Lesson 1 - Overview (in russian) Webuibasics - Lesson 1 - Overview (in russian)
Webuibasics - Lesson 1 - Overview (in russian)
 
1c bitrix-cp 21-09
1c bitrix-cp 21-091c bitrix-cp 21-09
1c bitrix-cp 21-09
 
1c bitrix-cp 21-09
1c bitrix-cp 21-091c bitrix-cp 21-09
1c bitrix-cp 21-09
 
1c bitrix-cp
1c bitrix-cp1c bitrix-cp
1c bitrix-cp
 
1c bitrix-cp
1c bitrix-cp1c bitrix-cp
1c bitrix-cp
 
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-casesInformatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
 
SharePoint Introduction
SharePoint IntroductionSharePoint Introduction
SharePoint Introduction
 

More from Anna Tarasenko

Отсутствие ценности для клиента - главный убийца бизнеса
Отсутствие ценности для клиента - главный убийца бизнесаОтсутствие ценности для клиента - главный убийца бизнеса
Отсутствие ценности для клиента - главный убийца бизнесаAnna Tarasenko
 
Выступление на YouLead-2016, Омск, Youth speak
Выступление на YouLead-2016, Омск, Youth speakВыступление на YouLead-2016, Омск, Youth speak
Выступление на YouLead-2016, Омск, Youth speakAnna Tarasenko
 
Выступление на Youlead-2016, Омск, Speak big
Выступление на Youlead-2016, Омск, Speak bigВыступление на Youlead-2016, Омск, Speak big
Выступление на Youlead-2016, Омск, Speak bigAnna Tarasenko
 
Geek week 2015. Создание полезных приложений в оговоренный срок.
Geek week 2015. Создание полезных приложений в оговоренный срок.Geek week 2015. Создание полезных приложений в оговоренный срок.
Geek week 2015. Создание полезных приложений в оговоренный срок.Anna Tarasenko
 
Тенденции в ИТ (Breakpoint-форум, 2015)
Тенденции в ИТ (Breakpoint-форум, 2015)Тенденции в ИТ (Breakpoint-форум, 2015)
Тенденции в ИТ (Breakpoint-форум, 2015)Anna Tarasenko
 
Инструменты командной разработки (HappyDev-lite'2014)
Инструменты командной разработки (HappyDev-lite'2014)Инструменты командной разработки (HappyDev-lite'2014)
Инструменты командной разработки (HappyDev-lite'2014)Anna Tarasenko
 
Методы генерации идей, Гео-хакатон от EST Technologies, Omsk, 2014
Методы генерации идей, Гео-хакатон от EST Technologies, Omsk, 2014Методы генерации идей, Гео-хакатон от EST Technologies, Omsk, 2014
Методы генерации идей, Гео-хакатон от EST Technologies, Omsk, 2014Anna Tarasenko
 
Скорость не в ущерб качеству, web-разработка на Java, Java day, Omsk, 2014
Скорость не в ущерб качеству, web-разработка на Java, Java day, Omsk, 2014Скорость не в ущерб качеству, web-разработка на Java, Java day, Omsk, 2014
Скорость не в ущерб качеству, web-разработка на Java, Java day, Omsk, 2014Anna Tarasenko
 
Эффективное взаимодействие ИТ-компаний и вузов на примере Омска
Эффективное взаимодействие ИТ-компаний и вузов на примере ОмскаЭффективное взаимодействие ИТ-компаний и вузов на примере Омска
Эффективное взаимодействие ИТ-компаний и вузов на примере ОмскаAnna Tarasenko
 
Производство счастья промышленными методами, для программистов и их менеджеров
Производство счастья промышленными методами, для программистов и их менеджеровПроизводство счастья промышленными методами, для программистов и их менеджеров
Производство счастья промышленными методами, для программистов и их менеджеровAnna Tarasenko
 

More from Anna Tarasenko (10)

Отсутствие ценности для клиента - главный убийца бизнеса
Отсутствие ценности для клиента - главный убийца бизнесаОтсутствие ценности для клиента - главный убийца бизнеса
Отсутствие ценности для клиента - главный убийца бизнеса
 
Выступление на YouLead-2016, Омск, Youth speak
Выступление на YouLead-2016, Омск, Youth speakВыступление на YouLead-2016, Омск, Youth speak
Выступление на YouLead-2016, Омск, Youth speak
 
Выступление на Youlead-2016, Омск, Speak big
Выступление на Youlead-2016, Омск, Speak bigВыступление на Youlead-2016, Омск, Speak big
Выступление на Youlead-2016, Омск, Speak big
 
Geek week 2015. Создание полезных приложений в оговоренный срок.
Geek week 2015. Создание полезных приложений в оговоренный срок.Geek week 2015. Создание полезных приложений в оговоренный срок.
Geek week 2015. Создание полезных приложений в оговоренный срок.
 
Тенденции в ИТ (Breakpoint-форум, 2015)
Тенденции в ИТ (Breakpoint-форум, 2015)Тенденции в ИТ (Breakpoint-форум, 2015)
Тенденции в ИТ (Breakpoint-форум, 2015)
 
Инструменты командной разработки (HappyDev-lite'2014)
Инструменты командной разработки (HappyDev-lite'2014)Инструменты командной разработки (HappyDev-lite'2014)
Инструменты командной разработки (HappyDev-lite'2014)
 
Методы генерации идей, Гео-хакатон от EST Technologies, Omsk, 2014
Методы генерации идей, Гео-хакатон от EST Technologies, Omsk, 2014Методы генерации идей, Гео-хакатон от EST Technologies, Omsk, 2014
Методы генерации идей, Гео-хакатон от EST Technologies, Omsk, 2014
 
Скорость не в ущерб качеству, web-разработка на Java, Java day, Omsk, 2014
Скорость не в ущерб качеству, web-разработка на Java, Java day, Omsk, 2014Скорость не в ущерб качеству, web-разработка на Java, Java day, Omsk, 2014
Скорость не в ущерб качеству, web-разработка на Java, Java day, Omsk, 2014
 
Эффективное взаимодействие ИТ-компаний и вузов на примере Омска
Эффективное взаимодействие ИТ-компаний и вузов на примере ОмскаЭффективное взаимодействие ИТ-компаний и вузов на примере Омска
Эффективное взаимодействие ИТ-компаний и вузов на примере Омска
 
Производство счастья промышленными методами, для программистов и их менеджеров
Производство счастья промышленными методами, для программистов и их менеджеровПроизводство счастья промышленными методами, для программистов и их менеджеров
Производство счастья промышленными методами, для программистов и их менеджеров
 

Архитектура в web, доклад на Women techmakers, Omsk, 2014

  • 1. Архитектура в web – грабли, боль или красота Анна Тарасенко, 7bits
  • 2. Типы web-проектов • Контентные: Instagram, twitter, habrahabr • Интернет-магазины • Бизнес-приложения: автоматизация процессов • Распределенные сервисы: RTB, картография, поиск, анализ метаданных, телекоммуникации
  • 3. Характеристики Контентные Магазины Бизнес RTB, поиск Объем данных ++++ +++ ++ +++++++ Число пользователей +++++ +++ ++ ++ Число запросов ++++++ ++++ +++ +++++++ Время отклика ++ +++ ++++ + Публичность +++ +++ -/+ -/+ Стоимость разработки ++ + +++++ +++++ Надежность хранения данных + +++ +++ ++ Сложность логики + ++ +++++ +++++
  • 4. Контентные сайты • Content management system (CMS) – Drupal, Wordpress, Joomla и т.д. • Много серверов, много файлов (видео, аудио) по сравнению с объемом данных в БД • Кэширование контента, пользователи не терпят задержек • Тюнинг за счет инфраструктуры
  • 5. Магазины • Специализированные CMS, интеграция с бухгалтерскими и складскими системами • Работа с финансовыми транзакциями • Пользователи лояльнее к времени открытия страницы • Многое как в контентных сайтах
  • 6. Бизнес-приложения • Web-фреймворки: PHP, Ruby, Python, Java, C# • Данные в SQL БД, один сервер БД, один сервер приложения • Пользователи часто корпоративные или лояльны к интерфейсу и задержкам ради функций • Тюнинг за счет асинхронных задач, оптимизации алгоритмов
  • 7. RTB, поиск и т.д. • Сервисы без интерфейсов: Java, C++ и т.д. • NoSQL БД, специальные файловые системы • «Пользователи» – внешние системы • Тюнинг за счет оптимизации алгоритмов, MapReduce, оптимизации хранения данных
  • 8. Архитектура Определяющие вещи (по убыванию сложности изменения): • Предметная область • Слои абстракции • Протоколы взаимодействия • Структура хранения данных
  • 9. Архитектура – это то, что сложнее всего поменять в проекте
  • 10. Слои по Э. Эвансу • Интерфейс пользователя (UI) • Уровень приложения (Application layer) • Уровень предметной области (Domain layer) • Инфраструктурный уровень (Infrastructure layer)
  • 11. Инфраструктура • Хранение данных (Persistence): БД, файловая система • Службы рассылки email, sms и т.д. • Логгирование и мониторинг • Очереди задач, кэширование данных и страниц
  • 12. UI • Шаблоны для отображения: HTML + JS и вот это все • Представление в виде документов • Локализация и интернационализация • Usability
  • 13. Уровень приложения Основной объект – контроллеры: • Принимают данные от слоя бизнес-логики, выбирают отображение • Управляют службами инфраструктурного уровня (иногда кроме слоя хранения) • Управляют правами доступа и протоколами безопасности
  • 14. Предметная область • Изолирована от специфики хранения данных • Изолирована от специфики приложения: web, консоль, десктоп • Манипулирует сущностями (Entities) и объектами-значениями (Value objects) • Содержит слой сервисов для работы с бизнес- правилами (Business rules)
  • 16. По типам проектов • Контентные и Интернет-магазины: вся логика в CMS, нужно заниматься в основном инфраструктурой • Распределенные сервисы: в основном логика в поиске закономерностей в больших объемах данных • Бизнес-приложения: вся основа – в предметной области
  • 18. Суть DDD Типы объектов: • Entity – сущность, объект обладающий уникальным существованием • Value object – объект-значение, не является уникальным, много копий в системе
  • 19. Суть DDD Типы объектов: • Service – не представляет реальный объект, манипулирует сущностями, реализует бизнес-правила. На стыке с уровнем приложения • Repository – хранилище объектов. На стыке с инфраструктурным слоем
  • 25. Литература • Стивен МакКоннел. «Совершенный код» • Мартин Фаулер. «Архитектура корпоративных программных приложений» • Эрик Эванс. «Предметно-ориентированное проектирование» • Джоэл Спольски. «Джоэл о программировании», «Джоэл снова о программировании»