Постановка задачи. Проектирование интерфейса компонента через юнит-тестирование и разработка абстрактных типов данных. Сознание первоначальной простой версии библиотеки.
- 00:00:07 Компонент геолокатора
- 00:00:48 Внешний вид и тесты
- 00:03:54 Структура Location
- 00:04:52 Первая версия локатора
- 00:06:10 Запрос в API
- 00:07:26 Обработка ответа из API
- 00:08:52 Обзор MVP
- 00:09:27 Инкапсуляция проверок в Value Object
- 00:11:10 Тест для объекта-значения
- 00:11:47 Защита через запрет наследования
- 00:12:32 Разделение тестов
- 00:13:43 Обзор промежуточного результата
Скрытый контент (код, слайды, ...) для подписчиков.
Открыть →Чтобы не пропускать новые эпизоды подпишитесь на наш канал @deworkerpro в Telegram
Спасибо Дмитрий. Как всегда, понятно и познавательно.
(ООП) Просьба. Дмитрий, не могли бы вы в одном из следующих видео хоть мимолётом упомянуть зачем в symfony делают следующее Controller exntends AbstractController а он в свою очередь имплементит ServiceSubscriberInterface. Почему не прямо имплементит интерфейс, а через абстрактный класс? Какой профит? Если можно, на маленьком примере. Где это можно применять в практике? Благодарю за ценные уроки и труд.
Класс Controller теперь deprecated.
1) В конструкторе класса Ip вы добавили валидацию адресов ipv6.
Для корректной валидации необходимо добавить использование ключей
FILTER_FLAG_IPV*
:2) Указанный вами адрес
8:8:8:8:8:8:8:8
функция валидации не воспринимает;3) Добавьте пожалуйста ваши исходники кода этих уроков.
Скрин на 13:40, у меня при запуске этого теста сервис возвращает ошибку:
Подскажите, как ее описать в тестах?
Проверять ответ, если ответ message == 'Provided API key is not valid.'
Unit-тесты не должны ходить в сторонние сервисы.
В следующем эпизоде показано, как вынести HTTP клиент и подменять его в тестах так, чтобы не было реальных обращений на сервер.
Подскажите, я наверное упустил при изучении теории, что означает: : ?Location : ?string без знака вопроса, понятно, тип возвращаемых данных, а вот с вопросом, впервые вижу :(
Знак вопроса показывает, что может быть
null
.у Google ipv6 - 2001:4860:4860::8888
так работает
Спасибо, очень понятно и полезно, за ваши курсы, было бы круто просто кнопку для доната.
Лично можно задонатить у меня на сайте
На тесте LocatorTest::testNotFound , в месте , где array_map() всё падает, потому что хочет array, а получает null.
Или войти через: