Какой рейтинг вас больше интересует?
|
Главная / Главные темы / Тэг «клиенту»
[Перевод] Киски: Рефакторинг. Часть третья или причесываем шероховатости 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, киски, кисок, клиент, программирование, проектирование, рефакторинг, тестирование
Нужна ли CRM-система вашему бизнесу? 2015-07-12 02:07:36
Современный рынок электронной коммерции сегодня уже не тот, который был лет 10 тому назад. ...
+ развернуть текст сохранённая копия
Современный рынок электронной коммерции сегодня уже не тот, который был лет 10 тому назад. Изменилось понимание этого рынка, технологии и инструменты рынка, которые позволяют развивать его большими темпами. Технологии и специализированный софт, все больше и больше входят в офисы современных компаний. Новые векторы развития задают именно интернет-компании, т.к. они более тесно связаны с интернет-технологиями, нежели […]
Тэги: client, crm, crm-система, management, relationship, база, бизнес, бизнес-процесс, взаимодействие, данных, деньги, задачи, защита, информации, клиентская, клиенты, коммуникация, контроль, отчеты, офис, подчиненными, продажи, продуктивность, работа, рубрики, склад, сотрудники, срм, стоимость, црм, эффективность
лекции 2015-06-29 10:20:54
+ развернуть текст сохранённая копия
Если вы любите посещать лекции, литературные вечера, книжные презентации и другие, расширяющие кругозор, мероприятия с большой концентрацией умных и любознательных людей, рекомендую ознакомиться с июльским расписанием лектория «Мой курсив». Нейрофизиолог Ольга Сварник расскажет о том, какие процессы в человеческом мозге подразумевают ученые, говоря о душе. Кинокритик Антон Долин поделится впечатлениями об итогах главных кинофестивалей. Писатель Владимир Новиков рассмотрит творчество Владимира Высоцкого как один цельный «роман в песнях». Детали лекций, билеты и контакты на сайте лектория: moikursiv.ru
Тэги: анонсы, клиентом, предоставлен, реклама, текст
Главная / Главные темы / Тэг «клиенту»
|
Взлеты Топ 5
Падения Топ 5
|