Submit Search
Upload
reactive dotNet
•
0 likes
•
455 views
0
0xffAA
Follow
dotNetConf'14 C#, Rx, Akka.Net, Actor model, F#
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 65
Download now
Download to read offline
Recommended
Подход и инструменты измерения эффективности процесса разработки или как держ...
Подход и инструменты измерения эффективности процесса разработки или как держ...
HOWWEDOIT
SQA Days 9. Налютин Никита, Антон Александров. Управление рисками тестирования
SQA Days 9. Налютин Никита, Антон Александров. Управление рисками тестирования
Nikita Nalyutin
Управление проектом
Управление проектом
Nazira Sheraly
Оценка задач выполняемых по итеративной разработке
Оценка задач выполняемых по итеративной разработке
Return on Intelligence
How to fill up your product backlog
How to fill up your product backlog
DevGAMM Conference
Лаборатория риск менеджмента
Лаборатория риск менеджмента
Евгений Пикулев
Применение ТОС подхода на Agile проектах
Применение ТОС подхода на Agile проектах
CEE-SEC(R)
РИК. Планирование сроков для оптимистов и реалистов
РИК. Планирование сроков для оптимистов и реалистов
Kursrik
Recommended
Подход и инструменты измерения эффективности процесса разработки или как держ...
Подход и инструменты измерения эффективности процесса разработки или как держ...
HOWWEDOIT
SQA Days 9. Налютин Никита, Антон Александров. Управление рисками тестирования
SQA Days 9. Налютин Никита, Антон Александров. Управление рисками тестирования
Nikita Nalyutin
Управление проектом
Управление проектом
Nazira Sheraly
Оценка задач выполняемых по итеративной разработке
Оценка задач выполняемых по итеративной разработке
Return on Intelligence
How to fill up your product backlog
How to fill up your product backlog
DevGAMM Conference
Лаборатория риск менеджмента
Лаборатория риск менеджмента
Евгений Пикулев
Применение ТОС подхода на Agile проектах
Применение ТОС подхода на Agile проектах
CEE-SEC(R)
РИК. Планирование сроков для оптимистов и реалистов
РИК. Планирование сроков для оптимистов и реалистов
Kursrik
Insurtech2019 invitation
Insurtech2019 invitation
Инфобанк бай
Manager’s toolbox: popular, familiar or optimal methodology
Manager’s toolbox: popular, familiar or optimal methodology
Victor Bogomolov
электронный проектный офис
электронный проектный офис
Денис Олешкевич
Качество планирования в производстве –реалии против уровня технологий
Качество планирования в производстве –реалии против уровня технологий
Дмитрий Сериков
Dmitry Zavalishin. Successful it-project - where can it fail
Dmitry Zavalishin. Successful it-project - where can it fail
Andrew Mayorov
Eq system производственное планирование - проблемы vs технологии
Eq system производственное планирование - проблемы vs технологии
APPAU_Ukraine
Проекты в срок и в рамках бюджета - ImproveIT на HappyDev
Проекты в срок и в рамках бюджета - ImproveIT на HappyDev
Stepan Volkov
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Ontico
Планирование трудозатрат на тестирование
Планирование трудозатрат на тестирование
SQALab
"Dealing with legacy code"
"Dealing with legacy code"
HYS Enterprise
CodeFest, июль 2012. Мочалкин П, Спиридонов А. — Управление продуктами в 2ГИС
CodeFest, июль 2012. Мочалкин П, Спиридонов А. — Управление продуктами в 2ГИС
CodeFest
Современные подходы к управлению ИТ-проектами
Современные подходы к управлению ИТ-проектами
Евгений Пикулев
Практический BPM или как получить максимальную отдачу от процессного подхода,...
Практический BPM или как получить максимальную отдачу от процессного подхода,...
Aleksandrs Baranovs
How to estimate time for testing
How to estimate time for testing
Alexandr Zinovyev
Bdd with java using concordion and selenium ui tests
Bdd with java using concordion and selenium ui tests
automated-testing.info
Введение в реактивный .NET
Введение в реактивный .NET
DotNetConf
Moscow js node.js enterprise development
Moscow js node.js enterprise development
Pavel Tiunov
Inversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий Кожевников
DevDay
PRJ_CSF_20150312
PRJ_CSF_20150312
Aleksey Fedorov
Введение в Lean и Agile
Введение в Lean и Agile
Kirill Rubinshteyn
Практика работы с крупными проектами - от Scrum с XP к Kanban
Практика работы с крупными проектами - от Scrum с XP к Kanban
Alexander Byndyu
CEE-SECR-2011. Презентация Александра Калугина
CEE-SECR-2011. Презентация Александра Калугина
Alexander Kalouguine
More Related Content
What's hot
Insurtech2019 invitation
Insurtech2019 invitation
Инфобанк бай
Manager’s toolbox: popular, familiar or optimal methodology
Manager’s toolbox: popular, familiar or optimal methodology
Victor Bogomolov
электронный проектный офис
электронный проектный офис
Денис Олешкевич
Качество планирования в производстве –реалии против уровня технологий
Качество планирования в производстве –реалии против уровня технологий
Дмитрий Сериков
Dmitry Zavalishin. Successful it-project - where can it fail
Dmitry Zavalishin. Successful it-project - where can it fail
Andrew Mayorov
Eq system производственное планирование - проблемы vs технологии
Eq system производственное планирование - проблемы vs технологии
APPAU_Ukraine
Проекты в срок и в рамках бюджета - ImproveIT на HappyDev
Проекты в срок и в рамках бюджета - ImproveIT на HappyDev
Stepan Volkov
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Ontico
Планирование трудозатрат на тестирование
Планирование трудозатрат на тестирование
SQALab
"Dealing with legacy code"
"Dealing with legacy code"
HYS Enterprise
CodeFest, июль 2012. Мочалкин П, Спиридонов А. — Управление продуктами в 2ГИС
CodeFest, июль 2012. Мочалкин П, Спиридонов А. — Управление продуктами в 2ГИС
CodeFest
Современные подходы к управлению ИТ-проектами
Современные подходы к управлению ИТ-проектами
Евгений Пикулев
Практический BPM или как получить максимальную отдачу от процессного подхода,...
Практический BPM или как получить максимальную отдачу от процессного подхода,...
Aleksandrs Baranovs
How to estimate time for testing
How to estimate time for testing
Alexandr Zinovyev
Bdd with java using concordion and selenium ui tests
Bdd with java using concordion and selenium ui tests
automated-testing.info
What's hot
(15)
Insurtech2019 invitation
Insurtech2019 invitation
Manager’s toolbox: popular, familiar or optimal methodology
Manager’s toolbox: popular, familiar or optimal methodology
электронный проектный офис
электронный проектный офис
Качество планирования в производстве –реалии против уровня технологий
Качество планирования в производстве –реалии против уровня технологий
Dmitry Zavalishin. Successful it-project - where can it fail
Dmitry Zavalishin. Successful it-project - where can it fail
Eq system производственное планирование - проблемы vs технологии
Eq system производственное планирование - проблемы vs технологии
Проекты в срок и в рамках бюджета - ImproveIT на HappyDev
Проекты в срок и в рамках бюджета - ImproveIT на HappyDev
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Планирование трудозатрат на тестирование
Планирование трудозатрат на тестирование
"Dealing with legacy code"
"Dealing with legacy code"
CodeFest, июль 2012. Мочалкин П, Спиридонов А. — Управление продуктами в 2ГИС
CodeFest, июль 2012. Мочалкин П, Спиридонов А. — Управление продуктами в 2ГИС
Современные подходы к управлению ИТ-проектами
Современные подходы к управлению ИТ-проектами
Практический BPM или как получить максимальную отдачу от процессного подхода,...
Практический BPM или как получить максимальную отдачу от процессного подхода,...
How to estimate time for testing
How to estimate time for testing
Bdd with java using concordion and selenium ui tests
Bdd with java using concordion and selenium ui tests
Similar to reactive dotNet
Введение в реактивный .NET
Введение в реактивный .NET
DotNetConf
Moscow js node.js enterprise development
Moscow js node.js enterprise development
Pavel Tiunov
Inversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий Кожевников
DevDay
PRJ_CSF_20150312
PRJ_CSF_20150312
Aleksey Fedorov
Введение в Lean и Agile
Введение в Lean и Agile
Kirill Rubinshteyn
Практика работы с крупными проектами - от Scrum с XP к Kanban
Практика работы с крупными проектами - от Scrum с XP к Kanban
Alexander Byndyu
CEE-SECR-2011. Презентация Александра Калугина
CEE-SECR-2011. Презентация Александра Калугина
Alexander Kalouguine
14 project-mistakes
14 project-mistakes
Максим Неверов
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
HappyDev
Проекты и Процессы
Проекты и Процессы
Vyacheslav Benedichuk
Performance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon Saransk
Alex Chistyakov
DEV Labs 2016. Искусство быстрого старта
DEV Labs 2016. Искусство быстрого старта
Sasha Soleev
Анна Абрамова. Знакомство с Archimate. Для встречи сообщества аналитиков Санк...
Анна Абрамова. Знакомство с Archimate. Для встречи сообщества аналитиков Санк...
Anna Abramova
СПб СОА Анна Абрамова "Знакомство с Archimate"
СПб СОА Анна Абрамова "Знакомство с Archimate"
SPbCoA
How we built continuous delivery
How we built continuous delivery
Alik Kurdyukov
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
ScrumTrek
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
RIF-Technology
Выбираем стратегию создания бранчей
Выбираем стратегию создания бранчей
Vitebsk DSC
Micro-services, Упрощаем монолитные приложения
Micro-services, Упрощаем монолитные приложения
Rinat Abdullin
How We Improve Performance in Rider. Andrey Akinshin, Senior Developer in Rider
How We Improve Performance in Rider. Andrey Akinshin, Senior Developer in Rider
JetBrains Russia
Similar to reactive dotNet
(20)
Введение в реактивный .NET
Введение в реактивный .NET
Moscow js node.js enterprise development
Moscow js node.js enterprise development
Inversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий Кожевников
PRJ_CSF_20150312
PRJ_CSF_20150312
Введение в Lean и Agile
Введение в Lean и Agile
Практика работы с крупными проектами - от Scrum с XP к Kanban
Практика работы с крупными проектами - от Scrum с XP к Kanban
CEE-SECR-2011. Презентация Александра Калугина
CEE-SECR-2011. Презентация Александра Калугина
14 project-mistakes
14 project-mistakes
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Проекты и Процессы
Проекты и Процессы
Performance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon Saransk
DEV Labs 2016. Искусство быстрого старта
DEV Labs 2016. Искусство быстрого старта
Анна Абрамова. Знакомство с Archimate. Для встречи сообщества аналитиков Санк...
Анна Абрамова. Знакомство с Archimate. Для встречи сообщества аналитиков Санк...
СПб СОА Анна Абрамова "Знакомство с Archimate"
СПб СОА Анна Абрамова "Знакомство с Archimate"
How we built continuous delivery
How we built continuous delivery
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
Выбираем стратегию создания бранчей
Выбираем стратегию создания бранчей
Micro-services, Упрощаем монолитные приложения
Micro-services, Упрощаем монолитные приложения
How We Improve Performance in Rider. Andrey Akinshin, Senior Developer in Rider
How We Improve Performance in Rider. Andrey Akinshin, Senior Developer in Rider
reactive dotNet
1.
Введение в реактивный dotNet Акуляков
Артём Неизвестный банк 9-я конференция .NET разработчиков 12 октября 2014 dotnetconf.ru
2.
Кто я? ● 5+ лет –
Финансовый сектор – Энергетика ● Докладчик и организатор Dev2Dev 2
3.
Реактивное программирование 3
4.
Внимание! Реактивные двигатели тут
совершенно не причем... 4
5.
Реактивный от слова
«реакция». 5
6.
Зачем? 6
7.
Обычное приложение 7
8.
Проблемы ● Не масштабируется ● Отказоустойчивости нет 8
9.
Масштабируем 9
10.
Проблемы ● Сложно ● Масштабирование имеет латентность ● Любая ошибка
приводит к потере сервера 10
11.
Что делать? 11
12.
Решение #1 12
13.
Решение #2 13
14.
Решение #3 14
15.
Решение #4 15
16.
Плюсы ● Гибкое и быстрое
масштабирование ● Просто тестировать ● Ошибки локализованы компонентом ● Эффективное неиспользование ресурсов 16
17.
Минусы ● Сложно на первый
взгляд ● Дополнительные расходы на обмен сообщениями ● Большая инфраструктура под капотом 17
18.
Философия 18
19.
Reactive manifesto 19
20.
Reactive manifesto ● Ориентированность на
события 20
21.
Reactive manifesto ● Ориентированность на
события ● Отказоустойчивость 21
22.
Reactive manifesto ● Ориентированность на
события ● Отказоустойчивость ● Масштабируемость 22
23.
Reactive manifesto ● Ориентированность на
события ● Отказоустойчивость ● Масштабируемость ● Отзывчивость 23
24.
Когда использовать? 24
25.
Использовать ● Transaction processing ● Service backend ● Concurrency/parallelism ● Complex
event stream processing 25
26.
Уже используют ● Box ● Wix ● LinkedIn ● Blizzard ● Twitter 26
27.
С чем работать
в dotNet? 27
28.
Akka.NET ● Actors model 28
29.
ActorModel 29
30.
Actor ● Состояние ● Поведение 30
31.
Actor ● Состояние ● Поведение ● Асинхронность ● Обмен сообщениями 31
32.
Actor ● Supervisor strategy ● Routing 32
33.
33
34.
Пути 34
35.
● akka://my-sys/user/service-a ● akka.tcp://sys@localhost:80/user/service-b ● ../brothers ● ../* ● /user/service-c 35
36.
Как обрабатываются ошибки? 36
37.
Supervisors 37
38.
38
39.
OneForOne vs OneForAll 39
40.
Что с routing? 40
41.
41
42.
Routing ● Broadcast 42
43.
Routing ● Broadcast ● RoundRobin 43
44.
Routing ● Broadcast ● RoundRobin ● ConsistentHash 44
45.
Routing ● ScatterGatherFirstCompleted 45
46.
Routing ● ScatterGatherFirstCompleted ● Random 46
47.
Routing ● ScatterGatherFirstCompleted ● Random ● SmallestMailbox 47
48.
Akka.Net итог ● AkkaDotNet это
framework. ● Многое не озвучено – DI – Remoting – Actor lifecycle 48
49.
Не любишь hardcore? 49
50.
Rx (Reactive Extensions) ● Push-collections 50
51.
Don't call us, We
will call you. -Hollywood principle 51
52.
IEnumerable vs IObservable IEnumerator
vs IObserver LINQ to Events 52
53.
53
54.
54
55.
Итоги ● Удобно работать с
event streams ● Удобно обрабатывать асинхронные операции ● Не позволяет строить реактивные приложения полностью 55
56.
Хочется больше hardcore? 56
57.
F# ● Functional reactive programming –
Actor model – Async – Functional 57
58.
MailboxProcessor 58
59.
F# ● … но это
далеко не все – Rx – Akka.NET 59
60.
Akka.Net F# API 60
61.
Итоги ● Больше возможностей ● Для построения
полностью реактивного приложения необходима Akka.Net 61
62.
Что почитать? ● http://akkadotnet.github.io/ ● https://rx.codeplex.com/ ● http://rxwiki.wikidot.com/101samples ● http://fsharpforfunandprofit.com/ ● http://www.reactivemanifesto.org/ ● https://www.coursera.org/course/reactive 62
63.
Итоги 63
64.
На правах рекламы 64
65.
Спасибо за внимание Акуляков
Артем Неизвестный банк akulyakov.artem@gmail.com
Download now