+1.93
Рейтинг
3.84
Сила

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

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

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


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

Декаплинг и фреймворки

Оригинал: Living Apart Together: Decoupling Code and Framework

Вы, конечно, используете в своей работе новейшие технологии и фреймворки. Более того, вы самостоятельно написали 2,5 фреймворка, ваш код  PSR-2 совместим, полностью юнит-тестирован, имеет сопровождающие PHPMD  и PHPCS конфигурации, и даже может поставляться с надлежащей документацией (на самом деле, она существует!). При выпуске новой версии вашего любимого фреймворка вы захотите побыстрее использовать его в своем ​​проекте и получите пару отчетов об ошибке. Вы, может быть, даже воспользуетесь модульным тестированием, чтобы определить ошибку и сделаете патч, чтоб исправить ее. Если это может помочь вам стать тем разработчиком, которым вы хотите быть, — пересмотрите отношения вашего кода и фреймворка.

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

Перевод: Начало работы с PHPUnit, Composer и Omniture API

Оригинал: First Serious Attempts with PHPUnit, Composer, and the Omniture API

Мы работаем с системами аналитики веб-приложений от компании Omniture. У меня давно возникло желание запросить текущие данные из дата-центра Omniture для формирования некоторых внутренних отчетов. Omniture при составлении отчетов использует RESTful API, после непродолжительной работы с которым, я решил, что неплохо было бы написать специально для него библиотеку оболочки.

Недавно я прошел курс PHP Testing Bootcamp от Криса Хартджеса, и решил, что хочу написать библиотеку с помощью разработки через тестирование (TDD). Тут я понял, что сталкиваюсь с этим впервые. Кроме того, мне хотелось сделать библиотеку, совместимую с Composer. И для этого мне хватило уикенда. Когда выходные закончились, у меня на руках была почти законченная библиотека, которая требовала лишь внесения небольших изменений. Я многое узнал за эти два дня. Хочу поделиться с вами своим опытом.

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