Принимаем оплату российскими и иностранными картами, системами МИР Pay, Яндекс Pay и Tinkoff Pay.
Публикация и переиспользование
Улучшения компонента перед публикацией. Идеи по подключению сторонних библиотек. Обзор результата.
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Подведение итогов
Скрытый контент (код, слайды, ...) для подписчиков. Открыть →
Дмитрий Елисеев
elisdn.ru
Чтобы не пропускать новые эпизоды подпишитесь на наш канал @deworkerpro в Telegram
Комментарии (12)
Rodion
Добрый день! Было бы очень полезно и интересно, чтобы собрать данную структуру воедино с единой точкой входа. Также увидеть правильно распределение архитектуры проекта. Из фронта - просто поле для ввода ip. Будет ли у Вас возможность написать данный урок? Спасибо.
Дмитрий Елисеев
Можно добавить в проект на любом фреймворке, как мы будем добавлять всё в серии по Slim.
Андрей
Исходный код можно на github'е посмотреть?)
Дмитрий Елисеев
Кода здесь мало, так что на GitHub не выкладывали.
fedot
А можно выложить? Хотелось бы иметь пример этого мастер класса.
Есть ли смысл тестировать объект Location?
Я почти никогда не писал тесты, опыта мало, но как тестить DTO объекты, типа Location, там ведь никакой логики не прописано или я чего то не понимаю?
Дмитрий Елисеев
В своём коде смысла особого нет. Но если делаем библиотеку, то желательно протестировать всё.
Airat Petuch
Дмитрий, напишите, пожалуйста, как бы выглядела структура файлов и директорий этой библиотеки.
Дмитрий Елисеев
Классов у неё немного, поэтому все файлы можно оставить в одной папке src с тестами в tests. Но для минимализма можно класс для каждого конкретного API вынеси в свою отдельную библиотеку как это сделано в библиотеке league/flysystem, где реализации публикуются отдельными пакетами вроде league/flysystem-ftp.
Dzianis
Спасибо за подробное описание хода мыслей.
Было очень интересно.
Добрый день! Было бы очень полезно и интересно, чтобы собрать данную структуру воедино с единой точкой входа. Также увидеть правильно распределение архитектуры проекта. Из фронта - просто поле для ввода ip. Будет ли у Вас возможность написать данный урок? Спасибо.
Можно добавить в проект на любом фреймворке, как мы будем добавлять всё в серии по Slim.
Исходный код можно на github'е посмотреть?)
Кода здесь мало, так что на GitHub не выкладывали.
А можно выложить? Хотелось бы иметь пример этого мастер класса.
Залил код: https://github.com/farukh-narzullaev/geo-locator Правда кэширование еще не прикрутил. Буду рад любой критике. Файл index.php как пример.
Спасибо
Есть ли смысл тестировать объект Location? Я почти никогда не писал тесты, опыта мало, но как тестить DTO объекты, типа Location, там ведь никакой логики не прописано или я чего то не понимаю?
В своём коде смысла особого нет. Но если делаем библиотеку, то желательно протестировать всё.
Дмитрий, напишите, пожалуйста, как бы выглядела структура файлов и директорий этой библиотеки.
Классов у неё немного, поэтому все файлы можно оставить в одной папке
src
с тестами вtests
. Но для минимализма можно класс для каждого конкретного API вынеси в свою отдельную библиотеку как это сделано в библиотекеleague/flysystem
, где реализации публикуются отдельными пакетами вродеleague/flysystem-ftp
.Спасибо за подробное описание хода мыслей. Было очень интересно.
Или войти через: