Какой рейтинг вас больше интересует?
|
Главная / Главные темы / Тэг «киски»
[Перевод] Киски: Рефакторинг. Часть третья или причесываем шероховатости 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, киски, кисок, клиент, программирование, проектирование, рефакторинг, тестирование
Россия Украине ничего не простит 2015-05-21 10:24:30
Президент Украины Петр Порошенко надеется, что на саммите «Восточного партнерства» в Риге, который ...
+ развернуть текст сохранённая копия
Президент Украины Петр Порошенко надеется, что на саммите «Восточного партнерства» в Риге, который пройдет 21-22 мая, Украина получит подтверждение ее евроинтеграционных стремлений, и будет дан четкий сигнал о безвизовом режиме с ЕС, что станет стимулом для страны урегулировать все технические вопро...
Тэги: андрей, европа, евросоюз, киска, мнения, петр, порошенко, россия, словакия, украина
Украина: у разбитого корыта, в ожидании «российских войск» 2015-04-30 14:00:21
Конец апреля внес дополнительную ясность в украинский кризис, обозначив те тенденции, которые ...
+ развернуть текст сохранённая копия
Конец апреля внес дополнительную ясность в украинский кризис, обозначив те тенденции, которые проявлялись и ранее, и нанеся киевскому режиму несколько болезненных ударов. Речь, конечно, идет о результатах саммита Украина-ЕС, состоявшегося в Киеве 27 апреля. Саммит, который нужен был Вальцману (Порош...
Тэги: аналитика, андрей, бронислав, владимир, гатилов, геннадий, греция, днр, дональд, донбасс, евросоюз, жан, йоханнес, киска, клод, кокс, коморовский, крым, лавров, лнр, майкл, макфол, мид, минские, миротворцы, москва, мун, нато, оон, оун, пан, пасе, петр, политика, польша, порошенко, рогов, россия, сергей, совбез, соглашения, сша, тини, туск, украина, упа, хан, хунта, юнкер
Главная / Главные темы / Тэг «киски»
|
Взлеты Топ 5
Падения Топ 5
|