Инверсии зависимостей управления впрыском

Вступление
Наверняка первый вопрос, который возник у вас при взгляде на заголовок, был "Шта?". На самом деле я просто перевел фразу "Инверсия управления, внедрение зависимости" в Google Translate на китайский, а затем обратно. Зачем? Затем, что на мой взгляд, это хорошая иллюстрация того, что происходит на самом деле. Люди вокруг путают, коверкают и извращают эти понятия. По долгу службы я провожу много интервью, и 90% того, что я слышу, когда задаю вопрос про DI — честно говоря, откровенный бред. Я сделал поиск по Хабру и нашел несколько статей, которые пытаются раскрыть эту тему, но не могу сказать, что они мне сильно понравились (ладно, ладно, я проглядел только три первых страницы, каюсь). Здесь же на Хабре я встречал в комментариях такую расшифровку IoC, как Injection of Container. Кто-то всерьез предполагает, что есть некий механизм инъекции контейнеров, который сосуществует где-то рядом с DI, и, видимо, даже делает нечто похожее. Только с контейнерами. Мда. На самом деле понять внедрение зависимости очень просто, надо всего лишь…







Работа программиста — это борьба со сложностью. Один из популярных вопросов про облачную телефонию — «А зачем ее использовать, если можно самим взять Asterisk, вжух, и все сделать?». Любопытная деталь из практики: много тех, кто приходит к нам после Asterisk. То есть сперва они приходят к нам, смотрят, что платформа стоит денег, говорят «да сами все сделаем» и уходят. Через полгода возвращаются со словами «Мы поняли, что хотим заниматься своим бизнесом, а не Asterisk». Как программисты, мы очень любим бороться со сложностью: заменять Asterisk на тулбокс с JavaScript полуфабрикатами, использовать облачные сервисы для работы с кодом и задачами, делить все на небольшие части и экспериментировать с версиями. Как оказалось, не только мы это любим. В новогодние праздники я совершенно случайно прочитала о том, что у Толкиена тоже был свой Git. Под катом — адаптированный для Хабра перевод.







