В качестве проекта взяли конвертер валют, использующий веб-сервис ЦБ РФ. Весь процесс поделили на 2 итерации. В первой необходимо было создать приложение с заглушкой, результатом работы которой были бы зашитые фейковые данные. Во второй итерации нужно было реализовать получение данных от сервиса. Использование DI предполагалось именно в красивой "подмене" реализаций в противовес суровым "иф-дефам".
Мы разбились на пары и приступили. Каждая команда соперничала с другими, стремилась выполнить задачу круче и быстрее других. Увы, большую часть времени пришлось уделить созданию каркаса приложения, отладке кода, созданию UI и т.д., а не основной теме, поэтому прочувствовать всю силу DI не получилось. Но все же после 3-х часового мозгового штурма парам удалось реализовать рабочие скелеты приложений с инъекциями.
Мы получили неплохие результаты и ответы на следующие вопросы, которые волновали участников:
- Нужен ли DI, если есть фабрики?
Довольно тонкий вопрос, как мне показалось, здесь немного выигрывает DI. Код становиться менее связанным. - Зачем использовать библиотеку Objection, когда в языке Objective-C поддерживается нечто подобное?
Библиотека предоставляет большую функциональность и избавляет от написания собственного инжектора, хотя никто не гарантирует отсутствие ошибок в самой библиотеки. - Каковы плюсы DI?
Многократное использование кода, минимальная связанность, высокое абстрагирование, хорошее решение для сборки проектов с различными конфигурациями.
Комментариев нет:
Отправить комментарий