Submit Search
Upload
"Архитектура модели в Сбербанк-Онлайн" Крыгин Иван, Сбербанк-Технологии
•
0 likes
•
418 views
it-people
Follow
Выступление на конференции DUMP-2017
Read less
Read more
Internet
Report
Share
Report
Share
1 of 46
Download now
Download to read offline
Recommended
Роман Ивлиев (banki.ru)
Проектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-систем
TKConf
Картинки к моему выступлению в Ростове про проектирование крупных веб-систем. Сам рассказ без глубоких технических деталей. Тут скорее про идеологию
Точка кипения: проектирование крупных веб-систем
Точка кипения: проектирование крупных веб-систем
Roman Ivliev
Мой второй доклад на Uneta.ua
разработка Metro style приложений
разработка Metro style приложений
Олег Винников
Расскажу об организации процесса разработки Frontend в единый конвейер, чтобы увеличить скорость и минимизировать затраты с рисками. Как организовать верстку макета по фантастичному макету дизайнера при этом не вогнав в когнитивный диссонанс результатом на Bootstrap. Каким образом объединить воинствующие стороны: Frontend, Backend и дизайнеров.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TKConf
адаптация модели DevOps и модели инженеров бизнес-приложения для технологического стека 1С Предприятие. Infostart Connect 2015
DevOps для 1С
DevOps для 1С
Alexey Lustin
November 1, 2014
Михаил Лебединский (Termopal) “Особенности разработки веб и мобильных приложе...
Михаил Лебединский (Termopal) “Особенности разработки веб и мобильных приложе...
Provectus
HighLoad++ 2017 Зал Дели + Калькутта, 7 ноября, 13:00 Тезисы: http://www.highload.ru/2017/abstracts/2867.html Последние несколько лет в продуктовой разработке проблемы масштабирования решаются через переход на микросервисную архитектуру. На эту тему было сказано много про подходы, плюсы и минусы, но мало кто рассматривал эту проблематику со стороны фронтенда. В ЦИАН мы идем по пути перехода от монолита к микросервисам, в том числе и на фронтенде. Задачи и проблемы, с которыми мы сталкиваемся, очень близки к аналогичным на бэкенде, но в то же время совершенно другие.
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Ontico
Последние несколько лет в продуктовой разработке проблемы масштабирования решаются через переход на микросервисную архитектуру. На эту тему было сказано много про подходы, плюсы и минусы, но мало кто рассматривал эту проблематику со стороны фронтенда. В ЦИАН мы идем по пути перехода от монолита к микросервисам, в том числе и на фронтенде. Задачи и проблемы, с которыми мы сталкиваемся, очень близки к аналогичным на бэкенде, но в то же время совершенно другие. В своем докладе я расскажу про архитектуру фронтенда (и так называемого миддленда) в ЦИАН: какие задачи перед нами стояли, что мы решили, где мы находимся сейчас и с какими проблемами мы столкнулись.
Микросервисный фронтенд
Микросервисный фронтенд
Viacheslav Slinko
Recommended
Роман Ивлиев (banki.ru)
Проектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-систем
TKConf
Картинки к моему выступлению в Ростове про проектирование крупных веб-систем. Сам рассказ без глубоких технических деталей. Тут скорее про идеологию
Точка кипения: проектирование крупных веб-систем
Точка кипения: проектирование крупных веб-систем
Roman Ivliev
Мой второй доклад на Uneta.ua
разработка Metro style приложений
разработка Metro style приложений
Олег Винников
Расскажу об организации процесса разработки Frontend в единый конвейер, чтобы увеличить скорость и минимизировать затраты с рисками. Как организовать верстку макета по фантастичному макету дизайнера при этом не вогнав в когнитивный диссонанс результатом на Bootstrap. Каким образом объединить воинствующие стороны: Frontend, Backend и дизайнеров.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TKConf
адаптация модели DevOps и модели инженеров бизнес-приложения для технологического стека 1С Предприятие. Infostart Connect 2015
DevOps для 1С
DevOps для 1С
Alexey Lustin
November 1, 2014
Михаил Лебединский (Termopal) “Особенности разработки веб и мобильных приложе...
Михаил Лебединский (Termopal) “Особенности разработки веб и мобильных приложе...
Provectus
HighLoad++ 2017 Зал Дели + Калькутта, 7 ноября, 13:00 Тезисы: http://www.highload.ru/2017/abstracts/2867.html Последние несколько лет в продуктовой разработке проблемы масштабирования решаются через переход на микросервисную архитектуру. На эту тему было сказано много про подходы, плюсы и минусы, но мало кто рассматривал эту проблематику со стороны фронтенда. В ЦИАН мы идем по пути перехода от монолита к микросервисам, в том числе и на фронтенде. Задачи и проблемы, с которыми мы сталкиваемся, очень близки к аналогичным на бэкенде, но в то же время совершенно другие.
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Ontico
Последние несколько лет в продуктовой разработке проблемы масштабирования решаются через переход на микросервисную архитектуру. На эту тему было сказано много про подходы, плюсы и минусы, но мало кто рассматривал эту проблематику со стороны фронтенда. В ЦИАН мы идем по пути перехода от монолита к микросервисам, в том числе и на фронтенде. Задачи и проблемы, с которыми мы сталкиваемся, очень близки к аналогичным на бэкенде, но в то же время совершенно другие. В своем докладе я расскажу про архитектуру фронтенда (и так называемого миддленда) в ЦИАН: какие задачи перед нами стояли, что мы решили, где мы находимся сейчас и с какими проблемами мы столкнулись.
Микросервисный фронтенд
Микросервисный фронтенд
Viacheslav Slinko
Andersen-Portfolio-Latest Projects-ru
Andersen-Portfolio-Latest Projects-ru
Sergey Kryvorotchenko
a3e1917f-9566-4f56-b687-950439a65e27-150519115945-lva1-app6891
a3e1917f-9566-4f56-b687-950439a65e27-150519115945-lva1-app6891
Aleksey Sergienko
Andersen-Portfolio-Latest Projects-ru
Andersen-Portfolio-Latest Projects-ru
Владимир Ничипорович
"Что там писать клиентское приложение - вот сервер, который выдерживает 10 тысяч запросов в секунду!"... "Да они там только API делают, вот бы хоть одно приложение под iOS написали!" Подобный обмен претензиями частенько можно услышать в спорах клиентских и серверных разработчиков. В этом докладе я попробую примирить обе стороны. Только от успешного взаимодействия клиентского приложения и серверной части зависит успех высоконагруженного проекта в целом. * Как сделать так, чтобы клиент не "завалил" сервер? * Коммуникация ошибок от сервера к клиенту. * Синхронизация, разрешение конфликтов. * Работа в offline-режиме. * Разработка эффективного и корректного API. * Асинхронное взаимодействие. * Почему клиент и сервер на самом деле очень похожи?
Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)
Andrey Smirnov
Доклад Андрея Смирнова с HighLoad++ 2014.
Клиентские приложения под нагрузкой, Андрей Смирнов
Клиентские приложения под нагрузкой, Андрей Смирнов
Ontico
ляпин Bdd и coded ui для прагматиков
ляпин Bdd и coded ui для прагматиков
Magneta AI
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
Ontico
Презентация компании БМС Софт
Презентация компании БМС Софт
БМС Софт
Speech about Symfony in Upwork Enterprise
Symfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork Enterprise
Dmitry Semenov
Cистема управления рисками на SharуPoint и PowerPivot
Cистема управления рисками на SharуPoint и PowerPivot
Cистема управления рисками на SharуPoint и PowerPivot
Boris Zhurkin
Dashboard for security
[1.3] Мониторинг событий ИБ — мастерим «дашборд» - Тарас Иващенко
[1.3] Мониторинг событий ИБ — мастерим «дашборд» - Тарас Иващенко
OWASP Russia
РИТ++ 2017, Backend Conf Зал Сан-Паулу, 6 июня, 14:00 Тезисы: http://backendconf.ru/2017/abstracts/2778.html Хотите научиться принимать решения на основе данных, но не знаете, с чего начать? Нужно записать миллионы событий, но не уверены, как делать это правильно? Вы не знаете, как быстро и дёшево строить аналитические отчеты или запутались в инструментах? На примере DocDoc я расскажу о плюсах и минусах различных подходов: как выбрать систему хранения, почему мы остановились на Google BigQuery. Как правильно организовать данные, записать свой clickstream, отказаться от сэмплирования в GA, а также строить простые и понятные отчеты.
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Ontico
Resco mobile CRM - DevDay Kiev, Ukraine 2014 - Презентация Антона Витязя
Resco mobile CRM - DevDay Kiev, Ukraine 2014 - Презентация Антона Витязя
Anton Vityaz
Мировой опыт и тренды. Концепция и задачи. Процесс разработки. Схема управления и распределение ролей. Как все было реализовано и что в итоге получилось.
Разработка нового сайта компании «Росгосстрах»
Разработка нового сайта компании «Росгосстрах»
РОСГОССТРАХ
Презентация с федерального семинара
Современные технологии сайтостроения для решения бизнес-задач
Современные технологии сайтостроения для решения бизнес-задач
simai
#AgileDays2016. Внедрение Agile в Банке HomeCredit
AgileDays 2016. Внедрение Agile в Банке
AgileDays 2016. Внедрение Agile в Банке
Михаил Кононов
Do not be a JEE dinosaur! Use Backend as a Service for your server side needs and focus on the code that matters.
Backendless BaaS. Dinosaurus for Jeeconf 2013
Backendless BaaS. Dinosaurus for Jeeconf 2013
backendless
Форум InterSystems во Владивосттоке, 26.05.2015
владивосток форум Deep_see
владивосток форум Deep_see
Elena Ometova
2011 мастер класс в британке по таск-менеджерам
2011 мастер класс в британке по таск-менеджерам
Анна Ковалева
Лекция 2. Инструменты, использующиеся для профессиональной разработки ПО.
Промышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. Инструменты
Mikhail Payson
Выступление на PYCON RUSSIA 2017
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
it-people
Выступление на PYCON RUSSIA 2017
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub
it-people
More Related Content
Similar to "Архитектура модели в Сбербанк-Онлайн" Крыгин Иван, Сбербанк-Технологии
Andersen-Portfolio-Latest Projects-ru
Andersen-Portfolio-Latest Projects-ru
Sergey Kryvorotchenko
a3e1917f-9566-4f56-b687-950439a65e27-150519115945-lva1-app6891
a3e1917f-9566-4f56-b687-950439a65e27-150519115945-lva1-app6891
Aleksey Sergienko
Andersen-Portfolio-Latest Projects-ru
Andersen-Portfolio-Latest Projects-ru
Владимир Ничипорович
"Что там писать клиентское приложение - вот сервер, который выдерживает 10 тысяч запросов в секунду!"... "Да они там только API делают, вот бы хоть одно приложение под iOS написали!" Подобный обмен претензиями частенько можно услышать в спорах клиентских и серверных разработчиков. В этом докладе я попробую примирить обе стороны. Только от успешного взаимодействия клиентского приложения и серверной части зависит успех высоконагруженного проекта в целом. * Как сделать так, чтобы клиент не "завалил" сервер? * Коммуникация ошибок от сервера к клиенту. * Синхронизация, разрешение конфликтов. * Работа в offline-режиме. * Разработка эффективного и корректного API. * Асинхронное взаимодействие. * Почему клиент и сервер на самом деле очень похожи?
Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)
Andrey Smirnov
Доклад Андрея Смирнова с HighLoad++ 2014.
Клиентские приложения под нагрузкой, Андрей Смирнов
Клиентские приложения под нагрузкой, Андрей Смирнов
Ontico
ляпин Bdd и coded ui для прагматиков
ляпин Bdd и coded ui для прагматиков
Magneta AI
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
Ontico
Презентация компании БМС Софт
Презентация компании БМС Софт
БМС Софт
Speech about Symfony in Upwork Enterprise
Symfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork Enterprise
Dmitry Semenov
Cистема управления рисками на SharуPoint и PowerPivot
Cистема управления рисками на SharуPoint и PowerPivot
Cистема управления рисками на SharуPoint и PowerPivot
Boris Zhurkin
Dashboard for security
[1.3] Мониторинг событий ИБ — мастерим «дашборд» - Тарас Иващенко
[1.3] Мониторинг событий ИБ — мастерим «дашборд» - Тарас Иващенко
OWASP Russia
РИТ++ 2017, Backend Conf Зал Сан-Паулу, 6 июня, 14:00 Тезисы: http://backendconf.ru/2017/abstracts/2778.html Хотите научиться принимать решения на основе данных, но не знаете, с чего начать? Нужно записать миллионы событий, но не уверены, как делать это правильно? Вы не знаете, как быстро и дёшево строить аналитические отчеты или запутались в инструментах? На примере DocDoc я расскажу о плюсах и минусах различных подходов: как выбрать систему хранения, почему мы остановились на Google BigQuery. Как правильно организовать данные, записать свой clickstream, отказаться от сэмплирования в GA, а также строить простые и понятные отчеты.
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Ontico
Resco mobile CRM - DevDay Kiev, Ukraine 2014 - Презентация Антона Витязя
Resco mobile CRM - DevDay Kiev, Ukraine 2014 - Презентация Антона Витязя
Anton Vityaz
Мировой опыт и тренды. Концепция и задачи. Процесс разработки. Схема управления и распределение ролей. Как все было реализовано и что в итоге получилось.
Разработка нового сайта компании «Росгосстрах»
Разработка нового сайта компании «Росгосстрах»
РОСГОССТРАХ
Презентация с федерального семинара
Современные технологии сайтостроения для решения бизнес-задач
Современные технологии сайтостроения для решения бизнес-задач
simai
#AgileDays2016. Внедрение Agile в Банке HomeCredit
AgileDays 2016. Внедрение Agile в Банке
AgileDays 2016. Внедрение Agile в Банке
Михаил Кононов
Do not be a JEE dinosaur! Use Backend as a Service for your server side needs and focus on the code that matters.
Backendless BaaS. Dinosaurus for Jeeconf 2013
Backendless BaaS. Dinosaurus for Jeeconf 2013
backendless
Форум InterSystems во Владивосттоке, 26.05.2015
владивосток форум Deep_see
владивосток форум Deep_see
Elena Ometova
2011 мастер класс в британке по таск-менеджерам
2011 мастер класс в британке по таск-менеджерам
Анна Ковалева
Лекция 2. Инструменты, использующиеся для профессиональной разработки ПО.
Промышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. Инструменты
Mikhail Payson
Similar to "Архитектура модели в Сбербанк-Онлайн" Крыгин Иван, Сбербанк-Технологии
(20)
Andersen-Portfolio-Latest Projects-ru
Andersen-Portfolio-Latest Projects-ru
a3e1917f-9566-4f56-b687-950439a65e27-150519115945-lva1-app6891
a3e1917f-9566-4f56-b687-950439a65e27-150519115945-lva1-app6891
Andersen-Portfolio-Latest Projects-ru
Andersen-Portfolio-Latest Projects-ru
Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой, Андрей Смирнов
Клиентские приложения под нагрузкой, Андрей Смирнов
ляпин Bdd и coded ui для прагматиков
ляпин Bdd и coded ui для прагматиков
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
Презентация компании БМС Софт
Презентация компании БМС Софт
Symfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork Enterprise
Cистема управления рисками на SharуPoint и PowerPivot
Cистема управления рисками на SharуPoint и PowerPivot
[1.3] Мониторинг событий ИБ — мастерим «дашборд» - Тарас Иващенко
[1.3] Мониторинг событий ИБ — мастерим «дашборд» - Тарас Иващенко
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Resco mobile CRM - DevDay Kiev, Ukraine 2014 - Презентация Антона Витязя
Resco mobile CRM - DevDay Kiev, Ukraine 2014 - Презентация Антона Витязя
Разработка нового сайта компании «Росгосстрах»
Разработка нового сайта компании «Росгосстрах»
Современные технологии сайтостроения для решения бизнес-задач
Современные технологии сайтостроения для решения бизнес-задач
AgileDays 2016. Внедрение Agile в Банке
AgileDays 2016. Внедрение Agile в Банке
Backendless BaaS. Dinosaurus for Jeeconf 2013
Backendless BaaS. Dinosaurus for Jeeconf 2013
владивосток форум Deep_see
владивосток форум Deep_see
2011 мастер класс в британке по таск-менеджерам
2011 мастер класс в британке по таск-менеджерам
Промышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. Инструменты
More from it-people
Выступление на PYCON RUSSIA 2017
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
it-people
Выступление на PYCON RUSSIA 2017
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub
it-people
Выступление на PYCON RUSSIA 2017
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
it-people
Выступление на PYCON RUSSIA 2017
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
it-people
Выступление на PYCON RUSSIA 2017
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
it-people
Выступление на PYCON RUSSIA 2017
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
it-people
Выступление на PYCON RUSSIA 2017
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
it-people
Выступление на PYCON RUSSIA 2017
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
it-people
Выступление на PYCON RUSSIA 2017
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
it-people
Выступление на PYCON RUSSIA 2017
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
it-people
Выступление на PYCON RUSSIA 2017
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
it-people
Выступление на PYCON RUSSIA 2017
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
it-people
Выступление на PYCON RUSSIA 2017
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
it-people
Выступление на PYCON RUSSIA 2017
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
it-people
Выступление на PYCON RUSSIA 2017
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
it-people
Выступление на PYCON RUSSIA 2017
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies
it-people
Выступление на PYCON RUSSIA 2017
«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс
it-people
Выступление на конференции DUMP-2017
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
it-people
Выступление на конференции DUMP-2017
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
it-people
Выступление на конференции DUMP-2017
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
it-people
More from it-people
(20)
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
"Архитектура модели в Сбербанк-Онлайн" Крыгин Иван, Сбербанк-Технологии
1.
Архитектура модели в Сбербанк-Онлайн ИВАН КРЫГИН «СБЕРБАНК-ТЕХНОЛОГИИ», ГЛАВНЫЙ ИНЖЕНЕР
2.
Сбербанк-Онлайн •Банковское приложение •20 млн активных пользователей •50 Разработчиков •30 команд
3.
Сбербанк-Онлайн •Переводы •Умный помощник •Уведомления •Бюджет •Финансовый советник •Запросы •Прогресс накоплений
4.
Sbergile Android iOS Аналитики Платежи Мои финансы Уведомления
5.
Насущные проблемы •Программистко-дизайнерское взаимодействие •Взаимодействие логических слоев
6.
P2P-перевод
7.
Типовые задачи •Асинхронная работа •Выбор источника данных •База данных •Парсинг •Работа с HTTP/HTTPS •Обработка результата
8.
Почему своё? •Контроль •Гибкость •Безопасность
9.
Все вместе DefaultManager <<Интерфейс>> IManager <<Интерфейс>> IP2PApiMapperDefaultP2PApiMapper <<Интерфейс>> IAsyncProcessor + submit <<Интерфейс>> INetworkLoaderHelper + T <T> sendAndReceive
10.
Менеджеры •Точка входа для презентера •Определяют состав и идентификатор задачи •Возвращает клиентам отложенный результат
11.
Менеджеры. Схема. <<Интерфейс>> IManager + getItemList + addItem + updateItem + deleteItem DefaultManager IAsyncProcessor mAsyncProcessor IApiMapper mApiMapper IDatabaseDAO mDatabaseDAO
12.
Менеджеры. Фабрика. <<Интерфейс>> IManagerFactory + getP2PPaymentsManager + getSecurityManager + getAnalyticsManager ManagerFactory SbolAplication IManagerFactory mManagerFactory Application
13.
Менеджеры. P2P-платеж public interface IP2PPaymentManager { PendingResult<P2PPaymentResponse> makeP2PPayment(P2PPaymentInfo info, boolean force); PendingResult<P2PPaymentListResponse> getP2PPPaymentList(P2PPaymentFilter filter, boolean force); } public class DefaultP2PPaymentManager implements IP2PPaymentManager { @Override public PendingResult<P2PPaymentResponse> makeP2PPayment(P2PPaymentInfo info, boolean
force) { ... } @Override public PendingResult<P2PPaymentListResponse> getP2PPPaymentList(P2PPaymentFilter filter, boolean force) { ... } }
14.
Менеджеры. P2P-платеж interface IManagerFactory { IP2PPaymentManager getP2PPaymentManager(); } public class ManagerFactory implements IManagerFactory
{ @Override public IP2PPaymentManager getP2PPaymentManager() { return createP2PPaymentManager(); } }
15.
Менеджеры. P2P-платеж public class SbolApplication extends Application implements IManagerFactory { IManagerFactory
mManagerFactory; @Override public void onCreate() { super.onCreate(); mManagerFactory = new ManagerFactory(); } @Override public IP2PPaymentManager getP2PPaymentManager() { return mManagerFactory.getP2PPaymentManager(); } }
16.
Менеджер. P2P-платеж public class P2PPaymentActivity extends Activity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { ... IManagerFactory managerFactory
= (IManagerFactory) getApplication(); mP2PPaymentManager = managerFactory.getP2PPaymentManager(); ... } @Override public void onClick(View v) { mP2PPaymentResult = mP2PPaymentManager.makeP2PPayment(collectP2PPaymentInfo(), true); } }
17.
Асинхронная работа. Требования. •Природа задач скрыта •Задачи идентифицируются по ключу •Задачи могут быть выстроены в очередь •Задачи могут быть перезапущены
18.
Асинхронная работа. Схема <<Интерфейс>> IAsyncProcessor process return <<Интерфейс>> NoExceptionCallable<T> <<Интерфейс>> Callable<T> <<Интерфейс>> IPendingResult<T>
19.
Асинхронная работа. P2P- перевод public class DefaultP2PPaymentManager implements IP2PPaymentManager { @Override public PendingResult<P2PPaymentResponse> makeP2PPayment( final P2PPaymentInfo info, boolean force) { return mAsyncProcessor.submit( P2PPaymentUris.makeP2PRequestUri(info), new NoExceptionCallable<P2PPaymentResponse>() { @Override public P2PPaymentResponse call() { return mP2PPaymentApiMapper.makeP2PPaymentRequest(info); } }, force); } }
20.
База данных. Требования. •CRUD •Сокрытие реализации
21.
Базы данных. Схема. SQLiteDAO RealmDAO StubDAO <<Интерфейс>> IDAO + create + read + update + delete
22.
Парсеры и сериализаторы. Требования. •Парсинг и сериализация •Сокрытие реализации
23.
Парсеры и сериализаторы. Схема. <<Интерфейс>> IParser + serialize + parse JacksonParser SimpleXMLParser
24.
Работа с HTTP(S) •Сбор информации •Построение запроса •Получение данных •Обработка результата
25.
Работа с HTTP(S). Схема. DefaultP2PApiMapper IHttpConnector mHttpConnector <<Интерфейс>> IP2PApiMapper + makeP2PPayment(P2PPaymentInfo info) <<Интерфейс>> IHttpConnector + T sendAndReceive(Request, IHttpResponseReceiver) Create <<Интерфейс>> Request <<Интерфейс>> IHttpResponseReceiver Create Use Use <<Интерфейс>> P2PPaymentResponse return ServerEntity ConnectorStatus ConnectorExceptionthrow
26.
Работа с HTTP(S). Сбор информации о запросе •Части URL (хост, путь, query-параметры) •Тело запроса (для POST и PUT) •HTTP-заголовки
27.
Работа с HTTP(S). Тело запроса •form-urlencoded •Сериализованный объект в виде XML, JSON
28.
Работа с HTTP(S). Тело запроса. Схема. Request + composeUrl + setBodySender(IBodySender sender) + setHeader(String key, String value) <<Интерфейс>> IBodySender + flushBody(OutputStream stream) FormattedBodySender IParser mParser NameValueBodySender Map<String, String> mValues
29.
Работа с HTTP(S). Сбор информации. P2P-перевод public class DefaultP2PPaymentApiMapper implements IP2PPaymentApiMapper { @Override public P2PPaymentResponse makeP2PPaymentRequest(P2PPaymentInfo info) { P2PPaymentResponse result; NameValueBodySender bodySender = setupBodySender(info); Request request = setupRequest(bodySender); ExtendedParser
parser = new DefaultParserFactory().newXMLParser(); DefaultHttpResponseReceiver<P2PPaymentResponse> httpResponseReceiver = setupHttpResponseReceiver(parser); try { result = mHttpConnector.sendAndReceive(request, httpResponseReceiver); } catch (ConnectorException e) { result = new P2PPaymentResponse(); result.setConnectorStatus(e.getConnectorStatus()); } return result; } }
30.
Работа с HTTP(S). Получение данных. •Преобразование InputStream в данные •Обработка заголовков HTTP-ответа
31.
Работа с HTTP(S). Получение данных. Схема. DefaultHttpResponseReceiver IParser mParser List<IHeaderHandler> mHeaderHandlers Class<T> mClass <<Интерфейс>> IHttpResponseReceiver<T> + handleResponse(InputStream, List<String>) <<Интерфейс>> IHeaderHandler + handleHeaders(Map<String, List<String>>) + T getResult
32.
Работа с HTTP(S). Получение данных. Алгоритм. •По Request построить HttpUrlConnection •InputStream и заголовки ответа передать в HttpResponseReceiver •Закрыть connection •Вернуть ответ из HttpResponseReceiver’а
33.
Обработка результата. Сущность-ответ. •Данные •Статус операции с точки зрения сервера •Статус операции с точки зрения клиента •Сообщения от сервера
34.
Обработка результата. Обработчик результата •Проверяет валидность ответа •Показывает сообщения об ошибке •Показывает информационные сообщение
35.
Обработка результата. Схема. <<Интерфейс>> IResultChecker<T extend ServerEntity> +ValidationResult validate(T, CheckOptions) ServerEntity dispatch CheckOptions use ValidationResult return
36.
Обработка результата. Подписка на данные. Принципы. •Общая логика – прогон через ResultChecker •Специфическая логика – вызов колбеков
37.
Обработка результата. Подписка на данные. Схема. Activity WatcherBundle mWatcherBundle WatcherBundle List<IWatcher> mWatcherList ContentWatcher Function mFunction <<Интерфейс>> IWatcher + onResume + onPause + onSaveInstanceState + onRestoreInstanceState ResultChecker mResultChecker AbstractContentWatcher # onSuccess # onFailure # onLoadStateChanged # onSuccessAndAlertsDismissed # onFailureAndAlertsDismissed
38.
Обработка результата. P2P- перевод. public class P2PPaymentActivity extends BaseCoreActivity implements View.OnClickListener { private IP2PPaymentManager mP2PPaymentManager; @Override public void onClick(View v) { getWatcherBundle().add(new P2PPaymentContentWatcher(this, mResultChecker)); } private class P2PPaymentContentWatcher extends ConditionalContentWatcher<P2PPaymentResponse> { … } }
39.
Обработка результата. P2P- перевод. private class P2PPaymentContentWatcher extends ConditionalContentWatcher<P2PPaymentResponse> { @Override protected PendingResult<P2PPaymentResponse> obtain(boolean force) { return mP2PPaymentManager.makeP2PPayment(collectP2PPaymentInfo(), true); } @Override protected void onSuccess(IContentWatcher watcher, P2PPaymentResponse result, boolean
isAlertsAreShowing) { goToSuccessScreen(); } @Override protected void onFailure(IContentWatcher watcher, P2PPaymentResponse result, boolean isAlertsAreShowing) { goToFailureScreen(); } }
40.
P2P-перевод
41.
Бонус. Мета-модуль аналитики. Проблемы. •Вызов в презентере – раздувается презентер •Вызов в менеджере –
раздувается менеджер
42.
Бонус. Мета-модуль аналитики. Решение. •Покрытие аналитикой конкретного модуля выносится в аналитический плагин •Менеджер аналитики предоставляет доступ к плагину •Движок аналитики обеспечивает отправку события
43.
Бонус. Мета-модуль аналитики. Схема. <<Интерфейс>> IAnalyticsManager + onResume + onPause + addAnalyticsPlugin(int id, IAnalyticsPlugin) + <T extends AnalyticsPlugin> T getAnalyticsPlugin(int id) DefaultAnalyticsManager Map<Int, IAnalyticsPlugin> mPlugins IAnalyticsEngine mAnalyticsEngine <<Интерфейс>> IAnalyticsEngine + onResume + onPause + sendEvent(AnalyticsEvent) <<Интерфейс>> IP2PPaymentAnalyticsPlugin ID onScreenShown() AnalyticsEngineWrapper List<IAnalyticsEngine> mEngines DefaultP2PPaymentAnalyticsPluginBaseAnalyticsPlugin IAnalyticsEngine mEngine <<Интерфейс>> IAnalyticsPlugin
44.
Бонус. Мета-модуль аналитики. public class P2PPaymentActivity extends BaseCoreActivity implements View.OnClickListener { @Override public void onClick(View v) { getWatcherBundle().add(new P2PPaymentContentWatcher(this, mResultChecker)); IP2PPaymentAnalyticsPlugin plugin = getAnalyticsManager().getPluginById(IP2PPaymentAnalyticsPlugin.ID); plugin.onBuyButtonClick(); } }
45.
Архитектура модели. Решенные проблемы. •Контроль •Гибкость •Безопасность
46.
Спасибо за внимание ИВАН КРЫГИН. «СБЕРБАНК ТЕХНОЛОГИИ» IAKRYGIN.SBT@SBERBANK.RU
Download now