Всем привет! Наш первый поток курса «Разработчик JavaScript» выпускается уже через десять дней и мы запускаем потихоньку второй поток. Соответственно, мы снова делимся как и полезными материалами, так и проводим открытые уроки, где мы можете познакомится ближе с преподавателями и узнать что-нибудь интересное. Сегодня у нас урок по «Dependency Injection в Angular», который провёл создатель курса Александр Коржиков, где он разбирал основные понятия связанные с паттернами проектирования Dependency Injection — Dependency Injection / Service Locator / Inversion of control.
Рубрика «dependency injection» - 4
Открытый вебинар «Dependency Injection в Angular»
2018-07-04 в 19:41, admin, рубрики: dependency injection, javascript, Блог компании Отус, ПрограммированиеВнедрение зависимостей в Go
2018-05-29 в 7:34, admin, рубрики: dependency injection, funcorp, Go, golang, java, uber, Блог компании FunCorp, Программирование, разработка мобильных приложенийНедавно я создал небольшой проект на языке Go. После нескольких лет работы с Java я был сильно удивлён тем, как вяло внедрение зависимостей (Dependency Injection, DI) применяется в экосистеме Go. Для своего проекта я решил использовать библиотеку dig от компании Uber, и она меня по-настоящему впечатлила.
Я обнаружил, что внедрение зависимостей позволяет решить множество проблем, с которыми я сталкивался в работе над Go-приложениями: злоупотребление функцией init
и глобальными переменными, чрезмерная сложность настройки приложений и др.
В этой статье я расскажу об основах внедрения зависимостей, а также покажу пример приложения до и после применения этого механизма (посредством библиотеки dig
).Читать полностью »
Инверсия управления в iOS
2018-04-24 в 10:36, admin, рубрики: dependency injection, ioc, iOS, iOS разработка, swift, Блог компании REDMADROBOT, разработка под iOS
Евгений Ёлчев rsi, iOS-тимлид KODE
В последнее время я все чаще слышу о DI. Им интересуются мои студенты в Geek University, его упоминают в чатах. Хотя паттерн далеко не молод, многие не совсем верно его понимают.
Часто под DI подразумевают фреймворк, например, typhoon или swinject. В статье подробно разберем принципы реализации DI, а также принцип IoC. Если интересно, прошу под кат.
Паттерны внедрения зависимостей. Часть 2
2018-04-06 в 17:16, admin, рубрики: .net, C#, dependencies, dependency injectionВ прошлый раз разобрали базовые, самые часто используемые паттерны внедрения зависимостях. Сегодня разберем, остальные два, которые также используются при проектировании гибких систем. Сегодня поговорим, про внедрение через метод и про окружающий контекст. Поехали!
Читать полностью »
Как протестировать SkyNet? (если он написан на JS)
2018-04-05 в 13:13, admin, рубрики: dependency injection, javascript, mocking, rewiremock, testing tools, Тестирование IT-системДавным давно я посмотрел Терминатор1. Немного подрос и посмотрел немного отрефакторенный Терминатор 2. Третьей интерации пришлось ждать немного дольше.
И каждый раз бедному СкайНету не везло, и каждый раз все наперекосяк, и секрет этого невезения очень прост — СкайНет не был Subject Under Test (SUT).
Другими словами SkyNet подзабила на тестирование, и производила разведку боем. И, как это обычно бывает, падала в корку(под пресс, в лаву, далее не помню) примерно сразу после выкладки в продакшен.
И весь вопрос — как же протестировать что-то до этой выкладки, до того момента как станет поздно поворачивать назад. И убить всех человеков, конечно же.
Паттерны внедрения зависимостей. Часть 1
2018-04-01 в 11:53, admin, рубрики: .net, C#, constructor injection, dependency injection, injectionДавайте разберемся с внедрением зависимостей в .Net, так как данная тема является одним из обязательных к изучению для написания качественного, гибкого к изменениям и тестируемого кода. Начнем мы с самих необходимых и базовых паттернов внедрения зависимостей — внедрение через конструктор и через свойство. Итак, поехали!
Читать полностью »
Нативная инверсия зависимостей в TypeScript и React
2018-03-12 в 7:48, admin, рубрики: architecture, composition root, constructor injection, dependency injection, inversify, javascript, React, service locator, solid, TypeScript, Блог компании ДоксВижн, Разработка веб-сайтовКогда я задумался о внедрении зависимостей в TypeScript, то первое, что мне посоветовали — inversify. Я посмотрел эту и другие библиотеки, реализующие паттерн Service Locator, и даже сделал свою собственную — typedin.
Но когда я работал над версией typedin 2.0, то в конце концов понял, что вообще никакой библиотеки не нужно. В TypeScript есть все необходимое.
Dagger 2 для начинающих Android разработчиков. Dagger 2. Продвинутый уровень. Часть 1
2017-12-23 в 9:49, admin, рубрики: android development, dagger 2, dependency injection, java, перевод, Разработка под androidДанная статья является шестой частью серии статей, предназначенных, по словам автора, для тех, кто не может разобраться с внедрением зависимостей и фреймворком Dagger 2, либо только собирается это сделать. Оригинал написан 23 декабря 2017 года. Перевод вольный.
Dagger 2 для начинающих Android разработчиков. Dagger 2. Часть 2
2017-12-17 в 1:52, admin, рубрики: dagger 2, dependency injection, java, перевод, Разработка под androidДанная статья является пятой частью серии статей, предназначенных, по словам автора, для тех, кто не может разобраться с внедрением зависимостей и фреймворком Dagger 2, либо только собирается это сделать. Оригинал написан 17 декабря 2017 года. Перевод вольный.
Внедрение зависимостей в .Net Марка Симана 2 — Внедрение конструктора, время жизни
2017-12-11 в 8:19, admin, рубрики: .net, asp.net mvc, dependency injection, ioc, ioc/di, mvc, внедрение зависимостей, ооп, паттерны, паттерны проектирования, Программирование, Проектирование и рефакторинг, Профессиональная литератураЗависимости между слоями приложения | Внедрение конструктора, время жизни
Продолжаем борьбу за слабую связанность. В предыдущей заметке мы рассмотрели зависимости между слоями приложения, прейдем к меньшим формам.
Агрегация, внедрение конструктора
Объекты/классы системы, как и слои, взаимодействуют друг с другом. Между классами тоже есть зависимости.
Например, в листинге 1 MyService использует MyDataContext (EF) – имеет зависимость MyDataContext.
class MyService
{
public void DoSomething()
{
using(var dbCtx = new MyDataContext())
{
// используем dbCtx
}
}
}
Листинг 1. Сильная зависимость MyService от MyDataContext