Как стать автором
Обновить

Python Community Meetup 8/07: видео и материалы встречи

Время на прочтение 2 мин
Количество просмотров 2.5K
Блог компании Райффайзен Банк Python *ООП *Конференции

Первый открытый онлайн-митап сообщества, для которого собрали огонь-программу. Вместе со спикерами из Райффайзенбанка и Яндекса обсудили новости с полей — «Python ускоряется?», поговорили об использовании Dependency Injection и применении Python в highload-проектах с большой кодовой базой.

Смотрите митап в записи

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

Компонент Dependency Injection

Время на прочтение 1 мин
Количество просмотров 6.4K
Symfony *
Новый компонент от Symfony касается крайне важного паттерна проектирования — Dependency Injection. Честно говоря, я много про него читал, но на практике не очень видел как применить, и теория была для меня довольно абстрактной. Симфонисты и здесь выдержали фирменный стиль. К компоненту приложена книжка, которая начинается с главы «что такое Dependency Injection»? И шаг за шагом некоторый учебный класс рефакторится в элегантное решение. Чтобы показать, что компонент может использоваться не только с Симфони, в качестве примеров используются и классы из Zend-фреймворка. Жалко только, что книжку нельзя скачать.

Вот еще один пример использования этого компонента с Zend-фреймворком.
Всего голосов 5: ↑3 и ↓2 +1
Комментарии 4

Phemto и Паттерн Dependency Injection. Часть 1

Время на прочтение 6 мин
Количество просмотров 24K
PHP *
Перевод
Я не встречал хорошего описания паттерна Dependency Injection применительно к PHP.

Недавно ребята из Symfony выпустили свой контейнер DI, снабдив его подробной и хорошей книжкой о том как работать с этим паттерном.

Я вспомнил еще об одной библиотеке для DI, Phemto. Ее автор, — Маркус Бэйкер, создатель SimpleTest. К сожалению на сайте содержится краткая и невнятная справка. тем не менее, проект развиавется, а внутри дистрибутива лежит статья с крайне хорошим объяснением про DI, ну и руководством конечно. Phemto, — очень миниатюрный проект, состоящий из трех не очень больших файлов.

Мне показалось, полезным перевести статью на русский язык и выложить сюда. Статья не очень большая, но содержательная. Ссылку на оригинал дать не могу, оригинал внутри дистрибутива :)

Читать дальше →
Всего голосов 41: ↑38 и ↓3 +35
Комментарии 31

Dependency injection для Scala: Cake Pattern

Время на прочтение 4 мин
Количество просмотров 14K
Разработка веб-сайтов *
Я совсем недавно начал изучать Scala. Для тех, кто еще не в курсе, что это за язык, небольшая выдержка с официального сайта:

Scala — лаконичный, элегантный и статически типизированный язык программирования, который сочитает в себе возможности обьектно-ориентированного и функционального языка. Scala полностью совместима с Java.

Сегодня я хотел бы показать вам, как, используя богатые выразительные способности этого языка, решить проблему, актуальную для любого более-менее крупного проекта, а именно работу с зависимостями компонентов или dependency injection. Последние несколько лет я использовал spring ioc для решения этой проблемы, однако у этого фрэймворка есть несколько недостатков, самый очевидный из которых это сборка приложения из компонент в runtime и наличие xml-дескрипторов (да, конечно можно использовать и autowiring и аннотации, но и у этих возможностей есть свои серьезные проблемы).
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 2

Unity Auto Registration

Время на прочтение 2 мин
Количество просмотров 2K
.NET *

Unity Auto Registration


Unity Auto Registration расширяет возможности Unity контейнера, предоставляя fluent interface для автоматической регистрации типов по установленным правилам. Используя всего несколько строк кода вы можете отсканировать указанную сборку и зарегистрировать все соответствующие указанным правилам типы.

Читать дальше →
Всего голосов 35: ↑21 и ↓14 +7
Комментарии 9

Как подружить ASP.NET Controls и DI-контейнер

Время на прочтение 5 мин
Количество просмотров 1.6K
.NET *

Интро

В последнее время решил немного освежить свои знания в ASP.NET, в связи с чем углубился в процессы генерации кода контролов по разметке (*.ascx, *.aspx) и обнаружил что можно делать очень интересные решения, о которых  о хочу поведать. Итак сегодня мы узнаем, как подружить наш Dependency Injection контейнер с генерируемым контролами кодом.
Читать дальше →
Всего голосов 30: ↑18 и ↓12 +6
Комментарии 12

Реализуем DI-контейнер на PHP5 с помощью Reflections

Время на прочтение 5 мин
Количество просмотров 889
Чулан
Этот топик для тех, кто представляет, что такое DI (Dependency Injection) но никогда не задумывался «как оно там унутре все работает».
Прочитать, что такое DI, можно например тут или тут

Не ставилось целью разработать свой Production DI-фреймворк. Хотелось разобраться как можно реализовать подобную функциональность наиболее удобно (Phemto, упомянутый выше, показался менее удобным, чем, например, способ от Microsoft Unity)

Реализованный вариант конфигурируется в коде (не через XML, как некоторые другие реализации, хотя это кому как удобнее).
Каждый используемый тип должен быть предварительно зарегистрирован, но не надо перечислять его аргументы, как например в Phemto — контейнер сам выяснит типы аргументов конструктора через Reflection.

Посмотреть код реализации...
Всего голосов 8: ↑4 и ↓4 0
Комментарии 4

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

Время на прочтение 1 мин
Количество просмотров 5.3K
Разработка веб-сайтов *
Я рассмотрел, как эволюционировал подход к управлению зависимостями в коде. Какие проблемы возникали на каждом этапе и как эти проблемы решались. Возможно на каком-то этапе вы узнаете свой проект и поймете куда двигаться дальше.

Основные темы:




Исходники проекта
Всего голосов 50: ↑40 и ↓10 +30
Комментарии 39

Symfony Components, Event Dispatcher (теория, часть 2)

Время на прочтение 5 мин
Количество просмотров 4.2K
Symfony *
Перевод
image
Привет. Это вторая часть перевода документации по Symfony компоненту Event Dispatcher, первая часть здесь. Вторая часть перевода представляет собой сборник общих рецептов по использованию компонента Event Dispatcher. Для тестирования приведенных примеров не нужно подключать фреймворк Symfony — как отмечалось в первой части, компоненты независимы от фреймворка. Еще раз хочу отметить, что код Symfony компонентов сейчас перерабатывается для использования с Symfony 2 (PHP >= 5.3.2). Данный перевод относится к стабильной версии компонента Event Dispatcher. Но, насколько я понял из сравнения стабильной версии компонента с текущей под Symfony 2, — функционально они мало чем отличаются, то есть документация будет полезна и использующим новую версию компонента (PHP >= 5.3.2). Итак начнем.
Читать дальше →
Всего голосов 20: ↑16 и ↓4 +12
Комментарии 12

Тестирование контроллера в Symfony2

Время на прочтение 5 мин
Количество просмотров 8.5K
Symfony *
Перевод
Предлагаю вашему вниманию перевод вчерашнего поста одного из разработчиков Symfony2 о подходе к unit-тестированию контроллеров в Symfony2. Тема очень актуальна для Symfony2 разработчиков. Также стоит отметить, что в посте упоминается результат дискуссии на dev-groups об использовании контроллера в роли сервиса в Symfony2.
Читать дальше →
Всего голосов 19: ↑15 и ↓4 +11
Комментарии 25

Антипаттерн settings.py

Время на прочтение 4 мин
Количество просмотров 17K
Python *


Хабрапитонерам привет!

Время от времени я сталкиваюсь с паттернами разработки, которые существуют не потому что они хорошо решают какую-то проблему, а потому что так сделано в популярном фреймворке X, следовательно, думают многие — это хорошо.

Сейчас я хочу понегодовать на паттерн «все настройки — в settings.py». Понятно, что популярность он набрал благодаря Django. Я то и дело встречаю в проектах, никак не завязанных на этот фреймворк ту же самую историю: большая кодовая база, маленькие, хорошенькие никак не связанные друг с другом компоненты, и нате вам: все дружно из произвольных мест лезут в волшебный недомодуль settings за своими константами.

Итак, почему же такой подход на мой взгляд отвратителен.

Читать дальше →
Всего голосов 102: ↑86 и ↓16 +70
Комментарии 111

RoboGuice или «Андроид подсел на инъекции»

Время на прочтение 8 мин
Количество просмотров 12K
Разработка под Android *
imageRoboGuice — это библиотека, которая позволяет пользоваться всеми преимуществами Contexts and Dependency Injection при разработке приложений на Андроиде.
Как несложно догадаться, RoboGuice основан на Google Guice.
Сразу оговорюсь, что в качестве перевода слова «injection» я буду использовать слово «инъекция».

Зачем колоться?


Думаю, что у многих читателей сразу возникнет вопрос: «Зачем эти сложности с CDI на мобильной платформе? Наверняка это всё занимает много места и медленно работает.»
Попробую убедить таких читателей в обратном, а именно в том, что CDI на мобильной платформе очень даже жизнеспособен и существенно облегчает жизнь разработчикам.
Читать дальше →
Всего голосов 39: ↑35 и ↓4 +31
Комментарии 23

Symfony2 Dependency Injection в разрезе

Время на прочтение 7 мин
Количество просмотров 33K
Symfony *
Из песочницы
Из статьи можно узнать как стартует и работает приложение Symfony2. Мне бы хотелось продолжить цикл статей про этот современный фреймворк и уделить более пристальное внимание такому компоненту как Dependency Injection (DI — внедрение зависимости) так же известный как Service Container.
Читать дальше →
Всего голосов 28: ↑27 и ↓1 +26
Комментарии 14

PostSharp. Отложенная загрузка зависимостей

Время на прочтение 7 мин
Количество просмотров 1.9K
.NET *
Перевод
Кусок кода, представленный ниже, вы наверняка писали не один раз. А что более вероятно – десятки раз. Обычно это пишется, когда необходимо использовать некий репозиторий, который будет предоставлять данные для вашего приложения. Если у вас мало времени, и вы торопитесь, это отличный способ получить что-либо таким образом, что это будет загружено в память только тогда, когда это вам понадобится, но не раньше (например, операция сохранения повлекла за собой обращение к подсистеме сериализации, однако до этого она не была нужна). И ведь на самом деле получается, что этот кусок кода с одной стороны одинаков, а с другой – его приходится писать не один раз.
Как правило, я и многие программисты, предпочитаем использовать в данном месте IoC контейнер, чтобы решать задачи такого рода. Однако это не всегда так просто сделать, особенно когда я программирую в рамках отсутствия Dependency Injection в библиотеке, которую я использую (WinForms, WebForms, …). Давайте разберемся, почему решая эту задачу без использования PostSharp, вы потратите гораздо больше времени и проделаете больше работы.
Читать дальше →
Всего голосов 12: ↑8 и ↓4 +4
Комментарии 13

Получение экземпляра класса запроса по сигнатуре его интерфейса

Время на прочтение 7 мин
Количество просмотров 12K
.NET *
Не так давно на Хабре была опубликована статья (ссылка на топик) моего коллеги AlexanderByndyu, описывающая уход от использования Repository в сторону применения связки QueryFactory + классы запросов Query. При этом в комментариях разгорелся весьма интересный диспут, касающийся целесообразности приведенного в статье решения. Было достаточно много интересных отзывов, среди которых особенно выделялись высказывания о том, что, дескать, QueryFactory не нужен и является лишней обузой, мешающей безболезненному добавлению, изменению и удалению классов запросов. В данной статье я хочу показать подход, который позволяет избавиться от применения QueryFactory, через активное использование IoC контейнера. Данную организацию работы со структурой классов запросов мы использовали в одном из наших недавних проектов, где в качестве IoC использовался Castle.Windsor.
читать далее
Всего голосов 23: ↑18 и ↓5 +13
Комментарии 25

IoC, DI, IoC-контейнер — Просто о простом

Время на прочтение 4 мин
Количество просмотров 410K
.NET *
Из песочницы
Думаю сейчас слова IoC, DI, IoC-контейнер, как минимум у многих на слуху. Одни этим активно пользуются, другие пытаются понять, что же это за модные веяния.

На данный момент, на эту тему уже довольно сказано, написано, в том числе и на хабре, но как раз из-за обилия информации сложно найти действительно полезный контент. Кроме того, данные понятия часто смешивают и/или путают. Проанализировав множества материалов я решил изложить вам свое видение предмета.
Читать дальше →
Всего голосов 41: ↑31 и ↓10 +21
Комментарии 28

Aibolit для android

Время на прочтение 4 мин
Количество просмотров 2.6K
Разработка под Android *
Из песочницы
Как же утомителен процесс инициализации UI при разработке android-приложений. Раз за разом приходится писать горы шаблонного кода: findViewbyId, setOnClickListener, getResources().getDrawable, … Возникает естественное желание переложить эту работу на плечи AOP. Беглый поиск готовых решений, адаптированных под android, навел разве что на RoboGuice, о котором уже упоминалось на хабре. Однако библиотека имеет значительный размер (~0.5 mb), что для многих приложений недопустимо много, и к тому же требует наследования ваших классов application и activity от RoboApplication и RoboActivity, чего не всегда хочется делать. Потому и появился Aibolit, легкая (~40kb), простая в использовании и функциональная библиотека, использующая dependency injection для инициализации UI на android.

Читать дальше →
Всего голосов 54: ↑52 и ↓2 +50
Комментарии 26

Почему в Perl так редко используется IoC, DI и магическая пилюля Kaiten::Container

Время на прочтение 3 мин
Количество просмотров 1.8K
Perl *
Думаю многие понимают значение баззвордов Inversion of Control (Ioc) и Dependency Injection (DI). Если не очень, но интересно — на хабре было несколько статей на эту тему, очень познaвательно и доступно изложено.
Методики отличные, но применить их в настоящей жизни как-то не получалось.

Под катом — небольшой обзор плачевного состояния дел в Perl и самостийное «кажется» решение.
Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 56

Приезжай в Харьков и отожги вместе с нами на Ciklum Mobile Субботнике и iPhoneDevCamp 2012

Время на прочтение 3 мин
Количество просмотров 1.5K
Блог компании Ciklum
Вы не поверите, но начало 2012 года началось для нас жаркой зимой! Все дело в том, что мы, в Сиклум, ежемесячно проводим около 60(!) как внутренних, так и внешних мероприятий для разработчиков, таких как тематические Сиклум Субботники, Хакатоны, кемпы и т.д.

Обмен опытом и знаниями, живые дискуссии и неформальное общение — вот цель таких мероприятий, на которые, кстати говоря, может прийти любой разработчик. И представьте себе, такой формат мероприятий пришелся по душе многим в разных городах в Украине! Например, недавно мы провели самый первый .NET Субботник в Виннице, а также очередной .NET Субботник в Харькове, поддержали DOU STARTUP MIXER и Drupal Cafe в Киеве.

11 февраля 2012 в рамках Мобильного Сиклум Субботника пройдет и iPhoneDevCamp 2012, который все так долго ждали! Таким образом, суббота в нашем харьковском офисе будет очень насыщенной. По нашей замечательной традиции, мы открыты к тем, кто хочет выступить. Так, на Мобильный Сиклум Субботник мы пригласили зубров мобильной разработки, отчаянных борцов за чистоту кода и ярых яблочников.

Читать дальше →
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 5