Три года назад, я написал статью о DI библиотеке для языка Swift. С того момента библиотека сильно измененилась и стала
лучшей в своем роде достойным конкурентом Swinject, превосходящяя его по многим показателям. Статья посвящена возможностям библиотеки, но и имеет теоретические рассуждения.И так кому интересны темы DI, DIP, IoC или кто делает выбор между Swinject и Swinject прошу подкат:Читать полностью »
Рубрика «dependency injection» - 3
Спокойствие спокойствию рознь
2019-06-22 в 16:43, admin, рубрики: dependency injection, framework, ioc контейнеры, iOS, library, open source, swift, разработка под iOSВведение в Spring, или что делать, если по всему проекту @Autowired и @Component, а вы не понимаете, что это
2019-06-12 в 11:15, admin, рубрики: dependency injection, inversion of control, java, spring framework, spring ioc, внедрение зависимостей, инверсия управленияПриветствую тебя!
Эта статья будет полезна тем, кто уже начал изучать Java и даже успел добиться некоторых успехов в понимании Java Core, и вот услышал слово Spring. И, возможно, даже не один раз: знание Spring Framework, как минимум, фигурирует в описаниях множества вакансий для джавистов. Эта статья поможет вам взобраться на самую первую ступеньку: понять общую идею столь популярного фреймворка.
Начнем издалека. Существует такое понятие как Inversion of Control, по-русски – Инверсия управления, сокращенно – IoC. IoC — один из принципов, приближающий наш код к слабосвязанности. IoC — это делегирование части наших обязанностей внешнему компоненту.
Существуют разные реализации IoC подхода, нас интересует одна из них — Dependency Injection, внедрение зависимостей. Что это такое, название говорит само за себя, так что раскрыть ее я постараюсь на примере. Мы пишем приложение, автоматизирующее работу сети магазинов. Есть классы Shop (магазин) и Seller (продавец). У класса Seller имеется поле типа Shop — магазин, в котором работает продавец. Вот мы и столкнулись с зависимостью: Seller зависит от Shop. Теперь задумаемся, как в объект Seller попадет объект Shop? Есть варианты:
- Внедрить его через конструктор и сразу, при создании продавца, указывать магазин, в котором он работает:
public class Seller {
private Shop shop;
public Seller(Shop shop) {
this.shop = shop;
}
}
- Создать сеттер и с помощью его вызова устанавливать продавцу магазин:
public class Seller {
private Shop shop;
public void setShop(Shop shop) {
this.shop = shop;
}
}
Перечисленные два способа — это реализация Dependency Injection. И, наконец, мы подобрались к спрингу: он предоставляет еще один способ внедрять зависимости.Читать полностью »
Жизнь до рантайма. Доклад Яндекса
2019-06-02 в 10:06, admin, рубрики: AST, dependency injection, javascript, runtime, webpack, Блог компании Яндекс, графы, интерфейсы, Промышленное программирование, системы сборки, технический долгВ большом проекте может возникнуть задача идентификации изменений для конечного пользователя по отличиям в коде фронтенда приложения. Разработчик из Яндекс.Маркета Никита Сидоров рассказал, как мы решали эту проблему при помощи библиотеки Diffector, о построении и анализе графа модулей в Node.js-приложениях и о поиске дефектов в коде до его запуска.
— Сегодня я постараюсь быть с вами максимально откровенным. Читать полностью »
Make it True — Разработка логической игры на Unity
2019-05-26 в 19:32, admin, рубрики: .net, C#, dependency injection, Gamedev, indie, indie gamedev, longread, unity, zenject, логические игры, мобильные игры, разработка игрХочу поделиться процессом разработки простой мобильной игры силами двух разработчиков и художника. Данная статья в большей мере состоит описания технической реализации.
Осторожно, много текста!
Статья не являются руководством или уроком, хотя надеюсь что читатели смогут вынести что то полезное из нее. Рассчитано на разработчиков знакомых с Unity имеющих некоторый опыт в программировании.
Читать полностью »
Dependency Injection in Flutter
2019-03-31 в 10:11, admin, рубрики: dart, dependency injection, di, flutter, inject, mobile development, разработка мобильных приложенийWe’re currently experimenting with Flutter while developing our side project for step challenges with colleagues. This side project should also be considered as a playground, where we can check if we can use Flutter in more serious projects. That’s why we want to use some approaches there that can look like an over-engineering for such a small project.
So one of the first questions was what can we use for dependency injection. A quick search in the internet revealed 2 libraries with positive reviews: get_it and kiwi. As get_it
turned out to be a Service Locator (and I’m not a fan of this pattern), I was going to play with kiwi, which looked more promising, but then I’ve found another one library: inject.dart. It is heavily inspired by Dagger library, and as we use the latest one in our other Android projects, I’ve decided to dig into it.
Vue mixins, the explicit way (by an example of BEM modifiers plugin)
2019-02-24 в 17:11, admin, рубрики: dependency injection, javascript, vue, vuejsVue mixins are the recommended way of sharing common functionality between components. They are perfectly fine until you use more than one for them. That's because they are implicit by design and pollute your component's context. Let's try to fix this by giving them as much explicitness as we can.
Размыкаем замыкания и внедряем Dependency Injection в JavaScript
2019-02-18 в 6:14, admin, рубрики: BIND, coverage, dependency injection, di, functional programming, javascript, jest, node.js, pool, Блог компании Developer Soft, Программирование, Проектирование и рефакторингВ этой статье мы рассмотрим, как писать чистый, легко тестируемый код в функциональном стиле, используя паттерн программирования Dependency Injection. Бонусом идет 100% юнит-тест coverage.
Основы внедрения зависимостей
2019-01-03 в 9:34, admin, рубрики: android, android development, dependency injection, devcolibri, di, kotlin, testing, внедрение зависимостей, никто не читает теги, перевод с английского, Программирование, разработка, разработка мобильных приложений, Разработка под android, тестирование, Тестирование мобильных приложенийВ этой статье я расскажу об основах внедрения зависимостей (англ. Dependency Injection, DI) простым языком, а также расскажу о причинах использования этого подхода. Эта статья предназначена для тех, кто не знает, что такое внедрение зависимостей, или сомневается в необходимости использования этого приёма. Итак, начнём.
Иерархическое внедрение зависимостей в React и MobX State Tree в качестве доменной модели
2018-12-12 в 7:15, admin, рубрики: angular, DDD, dependency injection, di, inversion of control, ioc, javascript, mobx, mobx-state-tree, React, react-ioc, ReactJS, TypeScript, Проектирование и рефакторинг Довелось мне как-то после нескольких проектов на React поработать над приложением под Angular 2. Прямо скажем, не впечатлило. Но один момент запомнился — управление логикой и состоянием приложения с помощью Dependency Injection. И я задался вопросом, удобно ли управлять состоянием в React используя DDD, многослойную архитектуру, и внедрение зависимостей?
Если интересно, как это сделать, а главное, зачем — добро пожаловать под кат!
Kodein. Основы
2018-12-04 в 10:10, admin, рубрики: android, dependency injection, Kodein, kotlin, Разработка под androidНе нашел понятных гайдов для тех, кто Kodein
видит в первый раз, а документация не во всех местах прозрачная и последовательная, поэтому хочу поделиться основными возможностями библиотеки с вами. Некоторые возможности библиотеки будут выпущены, но это в основном advanced часть. Здесь же вы найдете всё, чтобы по ходу чтения статьи нормально стартовать и начать внедрять зависимости с Kodein
. Статья базируется на Kodein 5.3.0
, так как Kodein 6.0.0
требует Support Library 28
или AndroidX
и далеко не скоро все перейдут на них, так как многие сторонние библиотеки ещё не предлагают совместимых версий.
Читать полностью »