40
Inversion of Control в деталях Кожевников Дмитрий Неизвестный банк DevDay 06.2015

Inversion of Control в деталях, Дмитрий Кожевников

  • Upload
    devday

  • View
    124

  • Download
    2

Embed Size (px)

Citation preview

Inversion of Control в деталях

Кожевников Дмитрий

Неизвестный банк

DevDay 06.2015

Это я

• Кожевников Дмитрий

• Неизвестный банк

• 4+ года enterprise

[email protected]

• vk.com/id14244254

• github.com/KozhevnikovDmitry

• dev2dev.ru, vk.com/dev2dev

2

Обыкновенный энтерпрайз

3

Поддержка бизнес-пользователей

4

Эволюционный дизайн

• Дерево развесистое

5

Долгоживущий дизайн

6

Простой дизайн

• Лего

7

Больше классов

8

Больше вариантов стратегий

9

Инверсия управления

10

Инфраструктура

11

Dependency Injection

12

Constructor Injection

13

Управление зависимостями

14

Собираю каркас

15

Добавляю на ходу

16

Централизация

17

Composition Root и RRR

18

IoC-контейнеры

19

Конфигурация контейнера

20

Convention over Configuration

21

Маппинг реализаций

22

Выбор стратегии по ключу

23

Архитектура

24

Луковая архитектура

25

26

Регистрируем в одном месте

27

Structuring with modules

28

Structuring with modules

29

Меньше связей

30

Немного итогов

• Что получил:

– Декларативность управления

– Настройки инфраструктуры

– Инкапсуляция сборок

– Поддержка SOLID

• Что пришлось:

– Перестроить мышление

– Подраться с коллегами

31

О динамике

32

ViewModel

33

Service Locator

34

Религия

35

Прагматика

36

Как бы фабрика

37

Немного итогов

• Что получил:

– Лёгкое создание объектов

– Внедрение инфраструктуры

• В чём трудность:

– Контроль времени жизни

– Контроль связности

– Безблагодатность

38

Ещё итоги

• Фреймворк или библиотека

• Каркас и динамика

• Эволюция системы

39

Спасибо за внимание!

40

Кожевников Дмитрий[email protected]