Задонатить и смотреть →
Открой безлимитный доступ к 100+ полезных скринкастов и получай скидки на все предстоящие мероприятия

Публикация и переиспользование

Улучшения компонента перед публикацией. Идеи по подключению сторонних библиотек. Обзор результата.

  • 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
Комментарии (12)
Rodion

Добрый день! Было бы очень полезно и интересно, чтобы собрать данную структуру воедино с единой точкой входа. Также увидеть правильно распределение архитектуры проекта. Из фронта - просто поле для ввода ip. Будет ли у Вас возможность написать данный урок? Спасибо.

Ответить
Дмитрий Елисеев

Можно добавить в проект на любом фреймворке, как мы будем добавлять всё в серии по Slim.

Ответить
Андрей

Исходный код можно на github'е посмотреть?)

Ответить
Дмитрий Елисеев

Кода здесь мало, так что на GitHub не выкладывали.

Ответить
fedot

А можно выложить? Хотелось бы иметь пример этого мастер класса.

Ответить
Фарух

Залил код: https://github.com/farukh-narzullaev/geo-locator Правда кэширование еще не прикрутил. Буду рад любой критике. Файл index.php как пример.

Ответить
fedot

Спасибо

Ответить
Фарух

Есть ли смысл тестировать объект Location? Я почти никогда не писал тесты, опыта мало, но как тестить DTO объекты, типа Location, там ведь никакой логики не прописано или я чего то не понимаю?

Ответить
Дмитрий Елисеев

В своём коде смысла особого нет. Но если делаем библиотеку, то желательно протестировать всё.

Ответить
Airat Petuch

Дмитрий, напишите, пожалуйста, как бы выглядела структура файлов и директорий этой библиотеки.

Ответить
Дмитрий Елисеев

Классов у неё немного, поэтому все файлы можно оставить в одной папке src с тестами в tests. Но для минимализма можно класс для каждого конкретного API вынеси в свою отдельную библиотеку как это сделано в библиотеке league/flysystem, где реализации публикуются отдельными пакетами вроде league/flysystem-ftp.

Ответить
Dzianis

Спасибо за подробное описание хода мыслей. Было очень интересно.

Ответить
Зарегистрируйтесь или войдите чтобы оставить комментарий

Или войти через:

Google
GitHub
Yandex
MailRu