Какой рейтинг вас больше интересует?
|
Главная / Главные темы / Тэг «matthias»
[Перевод] Киски: Рефакторинг. Часть третья или причесываем шероховатости 2015-07-24 15:00:23
+ развернуть текст сохранённая копия
В первой и второй частях серии статей мы проделали немного работы по разделению того кода и тех лишних действий, которые мы понаписали в одной функции. В основном же мы имели дело с классами HttpClient и Cache, и их разными реализациями, чтобы написать тестируемый клиент для апи кисок.
Представление данных
До этого мы обращали много внимания на поведение и общую структуру кода, но заб иывали про на данные, с которыми имеем дело. Сейчас у нас все является строками, включая возвращаемое значение CatApi::getRandomImage(). То есть вызывая этот метод, мы «знаем», что получим строку. Говорю «знаем», так как PHP может вернуть все — объект, ресурс, массив и т.д. Тем не менее, хоть в случае с RealCatApi::getRandomImage() мы и можем быть уверенны, что нам придет строка, так как мы явно приводим значение к ней, мы не можем точно сказать, что эта строка будет «полезна» (валидна) для того, кто вызвал этот метод: это может быть и пустая строка, строка, которая не содержит URL (типа «I am not a URL») и так далее.
Читать дальше →
Тэги: matthias, noback, php, refactoring, киски, кисок, клиент, программирование, проектирование, рефакторинг
[Перевод] Киски: Рефакторинг. Часть вторая или лечение зависимостей 2015-07-22 15:00:42
+ развернуть текст сохранённая копия
Этот перевод является продолжением цикла статей про рефакторинг от Matthias Noback.
Мир не так надежен, чтобы на него опираться
Во время юнит тестирования нет необходимости в том, чтобы внешняя среда была вовлечена в сам процесс тестирования. Выполняя реальные запросы к базе данных, HTTP запросы или же запись в файлы, вы замедляете тесты, так как эти операции непредсказуемы. Например, если сервер, к которому вы совершаете запросы во время тестирования упал или же ответил не лучшим образом — юнит тест упадет даже в том случае, если все остальное работает верно. Это плохо, так как юнит тесты должны падать только тогда, когда код выполняет что-то, чего он делать не должен.
Как можно было заметить в прошлой статье, оба класса (CachedCatApi и RealCatApi) зависят от внешних факторов. Первый из них записывает файлы в файловую систему, второй — делает реальные HTTP запросы, в то время как эти моменты довольно низкоуровневые и для них не используются правильные инструменты. Более того, в этих классах не учитывается большое количество пограничных случаев.
Оба класса могут быть лишены подобных зависимостей и для этого достаточно того, чтобы новые классы инкапсулировали все эти низкоуровневые детали. Например, мы запросто можем убрать вызов file_get_contents() в другой класс с названием FileGetContentsHttpClient.
class FileGetContentsHttpClient
{
public function get($url)
{
return @file_get_contents($url);
}
}
Читать дальше →
Тэги: dependency, injection, matthias, noback, php, refactoring, зависимостей, киски, кисок, клиент, лечение, программирование, проектирование, рефакторинг
[Перевод] Киски: Рефакторинг 2015-07-20 15:00:21
+ развернуть текст сохранённая копия
Добрый день, Хабровчане!
Продолжаю совмещать развитие навыков перевода c английского и изучение интересных, с моей точки зрения, материалов по программированию и делюсь с вами слегка адаптированным переводом первой части из небольшого цикла статей про рефакторинг от голландца Matthias Noback, который живет в городе Зейст что вблизи Утрехта.
По большей части, в трех статьях речь идет о рефакторинге, а именно о выделении отдельных сущностей и создании самостоятельных частей кода, которые затем удобно тестировать и модифицировать. Это, естественно, приведет к увеличению количества абстракций и усложнению всей задачи, но Noback без этого не может.
Смысловое значение этой статьи не затронуто, а все изменения (заголовок и пара замен названия сервиса) сделаны лишь с целью разбавить довольную сухую и, надеюсь, простую в плане сложности материала статью, чтобы затем перейти к следующим частям всего цикла.
Все подробности, как обычно, под хабракатом..
Тэги: api, cat, matthias, noback, php, refactoring, киски, кисок, клиент, программирование, проектирование, рефакторинг, тестирование
Нина Добрев (Nina Dobrev) в фотосессии Маттиаса Вринса-МакГрата (Matthias Vriens-McGrath) для журнала Cosmopolitan (2013). 2013-11-29 12:38:09
+ развернуть текст сохранённая копия
Тэги: (matthias, (nina, 2013, cosmopolitan, dobrev), vriens-mcgrath), актрисы, вринс-макграт, добрев, маттиас, нина
Дженнифер Лоуренс (Jennifer Lawrence) в фотосессии Маттиаса Вринса-МакГрата (Matthias Vriens-McGrath) для журнала Interview (2013). 2013-11-16 11:38:44
+ развернуть текст сохранённая копия
Тэги: (matthias, 2013, interview, vriens-mcgrath), актрисы, вринс-макграт, маттиас, рубрики, черно-белые
Главная / Главные темы / Тэг «matthias»
|
Взлеты Топ 5
Падения Топ 5
|