Агрегаты в Domain-Driven Design часто понимают неправильно. Разработчик видит таблицы orders, order_items, products, users, переносит эти связи в объектную модель один к одному и считает, что теперь у…
Рефакторинг
Прекратите использовать “extends” в PHP
Архитектура многих фреймворков зачастую требует расширения своих классов. Но сегодня речь только про чистый от фреймворков код, за который вы и/или ваша команда несет ответственность. В первую очередь…
Руководство для начинающих по unit тестам
Что такое модульный тест Модульный тест – это категория тестов с самой высокой степенью детализации, основанная на тестовой пирамиде. Обычно он ориентирован на функциональность класса, функции или компонента пользовательского интерфейса…
Советы по тестированию исключений PHP
Давайте посмотрим на такой совершенно простой пример, как этот: Начиная с PHPunit 9.0 и далее аннотация expectedException была признана устаревшей и удалена. Теперь мы можем сосредоточиться на существующих решениях….
Замена условного оператора полиморфизмом: как убрать if/switch и не усложнить код
Условные операторы — нормальная часть программирования. if, else, switch, match сами по себе не зло. Проблема начинается тогда, когда один и тот же выбор по типу начинает расползаться…
Это не легаси – это php!
За последний год разработчики Vimeo написали бэкенд-код на множестве языков-PHP, Go, Ruby, Python, NodeJS, Java, C, C++ и немного Rust. В 2004 году мы начинали только с одного:…
Зачем и как писать качественные Unit-тесты
В этом видео разберемся что такое чистые и грязные функции. Вместе разберемся как из грязных сделать чистые. Что такое качественный unit-тест. И конечно же увидим, как сделать это…
Рефакторинг Устаревшего Кода
Одна из первых вещей, которые вы обычно хотите сделать при работе с устаревшим кодом – это написать все правильно тесты. Таким образом, вы можете позже внести изменения в код…
Как сделать тестирование приложений проще и читабельнее
Автоматизированные тесты служат нескольким целям. Тесты гарантируют, что код по-прежнему работает так, как вы ожидаете, после внесения изменений. Но они также служат другой цели, которую, как мне кажется, часто упускают из виду:…
Исправление чужого кода
Иногда встречаются такие ситуации, когда один программист видит, что другой программист написал код не очень корректно и молча исправляет его. Он думает что совершил хорошее дело, исправил ошибку,…