Суть паттерна Проблема Решение Аналогия из жизни Структура Псевдокод Применимость Шаги реализации Преимущества и недостатки Отношения с другими паттернами Особенности паттерна на PHP Примеры реализации паттерна Концептуальный пример Пример из реальной жизни Суть паттерна Одиночка — это порождающий паттерн проектирования, который гарантирует, что у класса есть […]
Суть паттерна Проблема Решение Аналогия из жизни Структура Реализация с общим хранилищем прототипов Псевдокод Применимость Когда ваш код не должен зависеть от классов копируемых объектов. Когда вы имеете уйму подклассов, которые отличаются начальными значениями полей. Кто-то мог создать все эти классы, чтобы иметь возможность легко порождать […]
Суть паттерна Проблема Решение Директор Структура Псевдокод Применимость Когда вы хотите избавиться от «телескопического конструктора». Когда ваш код должен создавать разные представления какого-то объекта. Например, деревянные и железобетонные дома. Когда вам нужно собирать сложные составные объекты, например, деревья Компоновщика. Шаги реализации Преимущества и недостатки Отношения с […]
Изучаем вопрос покрытия тестами того, что уже написано … Пишем свой тест-case /**/ Примеры Демо-тест Пишу свой тест Тест для Subtask.calcSupplierPrice Примеры Пример теста (1): Тебе надо протестировать запросы к api, в этом случае просто чекаешь response примерно так $response = $this->post('/api/upload'); $response ->assertStatus(200) ->assertExactJson([ 'code' […]
Union Types JIT Nullsafe-оператор Именованные аргументы Атрибуты Выражение соответствия Краткий синтаксис для объединения свойств класса и конструктора Новый тип возврата static Новый тип mixed Throw-выражения Наследование частными методами Weak maps ::class на объектах Неименованные исключения Завершающая запятая в списках параметров Создать DateTime объекты из интерфейса Новый […]
SOLID (S) Single-responsibility principle (Принцип единственной ответственности) (O) Open–closed principle (Принцип открытости-закрытости) (L) Liskov substitution principle (Принцип подстановки Лисков) (I) Interface segregation principle (Принцип разделения интерфейсов) (D) Dependency inversion principle (Принцип инверсии зависимостей) Заключение В этом тексте приводится набор принципов, которые должен знать любой разработчик, и […]
Базовые принципы ООП (DRY, KISS, YAGNI) YAGNI DRY KISS Big Design Up Front APO: Avoid Premature Optimization Бритва Оккама Заключение В этом тексте приводится набор принципов, которые должен знать любой разработчик, и которые следует периодически освежать в памяти. Считайте их своим секретным оружием при программировании. Последовательное […]
ПРИНЦИПЫ REST API Единый интерфейс Клиент-сервер Сохранение состояния Кэширование Многоуровневая система Запрос кода СТАНДАРТЫ АРХИТЕКТУРА REST API URL-адрес конечной точки Метод HTTP Заголовки HTTP Данные тела (body) КАК ЭТО РАБОТАЕТ? Где используется ПРИМЕР REST API — это прикладной программный интерфейс (API), который использует HTTP-запросы для получения, […]
Мне нравятся книги из серии Head First O`Reilly — они рассказывают просто о сложном. И я стараюсь делать также. Когда речь идёт о базах данных, могут всплыть магические слова «Требования ACID». На собеседовании или в разговоре разработчиков — не суть. В этой статье я расскажу о […]