Улучшения компонента перед публикацией. Идеи по подключению сторонних библиотек. Обзор результата.
- 00:00:15 - История разработки
- 00:06:05 - Причины разделения на классы
- 00:06:43 - Переиспользование кода
- 00:07:39 - Интеграция с другими компонентами
- 00:08:41 - Рекомендации PSR
- 00:11:48 - Интерфейс для возможности подмены
- 00:12:26 - Комплект для публикации
- 00:13:07 - Адаптеры для интеграции
- 00:14:42 - Плюсы и минусы разделения
- 00:21:30 - Подведение итогов
Скрытый контент (код, слайды, ...) для подписчиков.
Открыть →Чтобы не пропускать новые эпизоды подпишитесь на наш канал @deworkerpro в Telegram

Добрый день! Было бы очень полезно и интересно, чтобы собрать данную структуру воедино с единой точкой входа. Также увидеть правильно распределение архитектуры проекта. Из фронта - просто поле для ввода ip. Будет ли у Вас возможность написать данный урок? Спасибо.
Можно добавить в проект на любом фреймворке, как мы будем добавлять всё в серии по Slim.
Исходный код можно на github'е посмотреть?)
Кода здесь мало, так что на GitHub не выкладывали.
А можно выложить? Хотелось бы иметь пример этого мастер класса.
Залил код: https://github.com/farukh-narzullaev/geo-locator Правда кэширование еще не прикрутил. Буду рад любой критике. Файл index.php как пример.
Спасибо
Есть ли смысл тестировать объект Location? Я почти никогда не писал тесты, опыта мало, но как тестить DTO объекты, типа Location, там ведь никакой логики не прописано или я чего то не понимаю?
В своём коде смысла особого нет. Но если делаем библиотеку, то желательно протестировать всё.
Дмитрий, напишите, пожалуйста, как бы выглядела структура файлов и директорий этой библиотеки.
Классов у неё немного, поэтому все файлы можно оставить в одной папке
src
с тестами вtests
. Но для минимализма можно класс для каждого конкретного API вынеси в свою отдельную библиотеку как это сделано в библиотекеleague/flysystem
, где реализации публикуются отдельными пакетами вродеleague/flysystem-ftp
.Спасибо за подробное описание хода мыслей. Было очень интересно.
Или войти через: