Принцип Инверсии Управления – Голливудский Принцип

Оригинал: Inversion of Control – The Hollywood Principle.

Среди программистов (включая и меня, так что здесь я публично признаю свою вину) бытует мнение о том, что Инверсия Управления (IoC) является не более, чем синонимом для старого принципа Внедрения Зависимости (DI). Существует простая причина для такой точки зрения: идея Принципа Внедрения зависимостей состоит в реализации классов, чьи элементы обеспечиваются окружающим контекстом, что позволяет не изменять код программы. Таким образом, процесс может быть рассмотрен как часть принципа IoC.

Но, несмотря на то, что уравнение DI=IoC может рассматриваться в целом как справедливое утверждение, все же концепция Инверсии Управления сама по себе гораздо шире. Фактически мы можем сказать, что DI – это частный случай IoC, но далеко не единственный. Это вновь приводит нас к началу: если DI – это всего лишь шаблон, который опирается на сильные стороны IoC, то что же такое Прицип Инверсии Контроля?

Читать дальше →

Технические проблемы

Уважаемые читатели.

В последние несколько дней наблюдались технические сбои при работе нашего ресурса phptime.ru. Проблема связана с ошибкой в настройках при переходе на http/2. В данный момент проблема исправлена, и ресурс работает в нормальном режиме.

P.s. Да, да. Мы перешли на протокол spdy. Спецификация практически утверждена, и все современные браузеры поддерживают spdy.

Каталог расширений yii1 и yii2 - yiigist.com

Приветствуем, уважаемые читатели!

Хорошие новости для тех, кто ждёт каталог расширений для yii2. Не дождавшись официального сайта, наша команда рада представить свой вариант — yiigist.com.

На данный момент каталог поддерживает только пакеты yii 1.* и yii 2.* опубликованные в packagist.org и расположенные на github.com. Это должно покрыть 80% всех потребностей.

Если вам потребуется новый функционал, или вы встретите ошибку на сайте, смело пишите в форму обратной связи или на почту support@yiigist.com

Надеемся, наше решение вам понравится!

С уважением, команда PHPTime. Приятного кодинга!

Всем, у кого не работает github

Вот и докатились, товарищи.

Расеюшка мать не дает работать. Из этой ситуации есть несколько путей:
  • убежать нафек
  • прекратить говнокодить
  • создать свой православный хостинг для git
  • подключаться через proxy. Прокси впринципе подходит, но композер иногда отказывается находить пакеты.
  • подключаться через top
  • прописать хосты
    192.30.252.128	github.com
    192.30.252.146	codeload.github.com
    192.30.252.88 	live.github.com 
    192.30.252.137	api.github.com
    23.235.43.133 	assets-cdn.github.com
    23.235.43.133 	collector-cdn.github.com
    
    Не уверен, правда, что адреса не меняются. Но их можно актуализировать через онлайн сервисы пинга.

Удачного кодинга!

Ubuntu 14.04, PhpStorm и старый баг горячих клавиш

Приветстсвую, уважаемый читатель!

Сегодня хочу поделиться решением древнего бага, найденым на просторах интернета. Ранее, в ubuntu не работали горячие клавиши в русской раскладке. И вроде какбы этот баг пофиксили, но не везде. В приложениях на яве, например PhpStorm, горячие клавиши в русской расскладке по-прежнему не работали. С чем это связанно — неясно. Кто за это должен отвечать — непонятно.

Но бодрый пользователь гитхаба zheludkovm выпустиль патч, для исправления этого бага.

Читать дальше →

Принцип открытости/закрытости

Оригинал: http://www.sitepoint.com/the-open-closed-principle/

Должен признаться, когда впервые увидел академическое определение принципа открытости/закрытости, его смысл был для меня удивительно ясен. Я отбросил из определения весь технический жаргон, и принцип читался как заклинание, которое мы слышали раньше много раз: «Не ломай ядро».
Ну, правда, здесь существует некоторая двусмысленность высказывания, так как есть по крайней мере два общих подхода к поддержанию «ядра» в полной сохранности, позволяющие аккуратно расширять его функциональные возможности. Первый подход (вот почему я использовал намеренно термин «расширение») — Наследование. Наследование является, пожалуй, самым переоцененным приемом для повторной реализации. Такой процесс легко осуществим, но здесь существует определенный риск разрушить хрупкую иерархию моделей. Второй подход называется Композиция. Подход не так прост, как наследование, но это тоже довольно аккуратный способ расширить программный модуль, не меняя его.


Читать дальше →