
Pavel
13.01.2018
19:18:16
Уговорил, подписываюсь

Артур Евгеньевич
14.01.2018
09:04:10
а на канале есть конкрусы?
@fes0r @mkusher @f3ath

Google

Evgenii
14.01.2018
09:06:05
Dependency injection наглядно

melancholiac
14.01.2018
09:21:10
@f3ath

Артур Евгеньевич
14.01.2018
09:21:36
@Enleur

?
14.01.2018
09:21:39
@oneerror

Sergey
14.01.2018
09:25:52

Maksim
14.01.2018
09:35:06
А кто мешает дёрнуть сей метод потом не прибегая к контейнеру?
Если ещё лучше:
Я, как последний мудак, получил сервис из контейнера дёрнул сеттер.

Sergey
14.01.2018
09:44:21
ну дернул, ну и ничего страшного. Минус не в том что ты можешь его дернуть, а в том что интерфейс твоего объекта сложнее чем надо
ну то есть если для использования либки не предполагается дерганье этого сеттера - все в целом хорошо ж

Maksim
14.01.2018
09:49:10
Ну у меня 2 разных адаптера за интерфейсом. Конфигурил например pdo_mysql, засеттил из вне pdo_pgsql.
Такое себе щасце
даже при наличии контейнера: какой смысл зависимости передавать акцессорами? какие бонусы это даёт?

Sergey
14.01.2018
09:52:13
кастыли короч

Google

Sergey
14.01.2018
09:52:28
при рефакторинге легаси помогает неслабо

Maksim
14.01.2018
09:52:29
ну блин)

Sergey
14.01.2018
09:52:39
но в конечном итоге они должны быть уничтожены

Maksim
14.01.2018
09:53:53
ну так может быть и прокатит. оставлять их - самоубийство) рано или поздно кто-то в ногу выстрелит

Pavel
14.01.2018
11:00:28

Ihor
14.01.2018
18:00:06
http://sergeyteplyakov.blogspot.ru/2014/11/di-vs-dip-vs-ioc.html?m=1
В этой статье используется понятие "контейнер". Что означает термин?

Like
14.01.2018
18:04:08

Ihor
14.01.2018
18:06:55
Нет ) тогда возникает вопрос, что такое di контейнер итд

Артур Евгеньевич
14.01.2018
18:11:46
Контейнер в данном контексте эт такая херь из которой можно получить сервисы
Мне нравится называть его сервис контейнер

Maksim
14.01.2018
18:12:09

Артур Евгеньевич
14.01.2018
18:12:19
А дальнейшее именование это уже вопрос использования

Maksim
14.01.2018
18:12:56
а контейнер - это такая хрень, которая умеет собрать все зависимости, которые необходимы для какого-либо сервиса.

Артур Евгеньевич
14.01.2018
18:13:08
Точнее если мы дергаем напрямую сервисы из этого контейнера то да

Ihor
14.01.2018
18:33:33
то есть контейнер создаёт экземпляр класса, предавая в конструктор экземпляры классов, которые необходимы?
то что я написал, больше смахивает на фабрику

Sergey
14.01.2018
19:46:50
IoC - принцип, DI - имплементация этого принципа (относительно управления зависимостями)
IoC контейнер - как по мне неверное использование термина IoC, DI-контейнер - непосредственно хрень которая разруливает зависимости

Google

Sergey
14.01.2018
19:48:15
если ты запихнешь контейнер, то, как тебе уже описали - выйдет сервис локатор (причем самая хреновая его форма)
нормальные сервис локаторы обычно ограничивают к чему ты имеешь доступ. В идеале у тебя по локатору на сервис. Тогда большая часть минусов у них исчезает. Офигенно помогает когда тебе достался дикий легаси и впихнуть туда DI не выходит

Maksim
14.01.2018
19:50:16
У тебя отдельная графа страданий про легаси)

Sergey
14.01.2018
19:51:54
нет, просто подчеркнуть что сервис локатор не зло и может быть полезной и даже очень штукой0
но только если эти локаторы нормальные (а не один для всего)

Maksim
14.01.2018
19:54:33
В большинстве случаев сервис локатор - самый тупой реестр, в котором всё свалено.
Если не во всех...

Sergey
14.01.2018
19:56:10

Maksim
14.01.2018
19:58:09
Просто каким он должен быть, этот идеал? Именно прям отдельный сервис? Есть какой-нить сферический пример, где оно зайдёт?

Sergey
14.01.2018
20:00:55
у фаулера можешь глянуть)

Maksim
14.01.2018
20:02:17
Доберусь домой, гляну)
Заодно попытаюсь в голове утрясти ценность этой идеи)

Bohdan
14.01.2018
21:14:41
Доброй ночи, прошу помощи!)
Какой патерн лучше реализовать для такой задачи - Нужно сделать интерфейс для вывода информации с разных Api, с разной структурой данных

Aleh
14.01.2018
21:17:29
почему вы решили, что все эти api - одна общая задача?

Bohdan
14.01.2018
21:18:53
Такие условия, система должна быть гибкой для разных Api

Aleh
14.01.2018
21:19:05

Bohdan
14.01.2018
21:19:29
"Нужно сделать интерфейс для вывода информации с разных Api, с разной структурой данных"

Aleh
14.01.2018
21:20:25
если их ничего не объединяет, то под каждый апи делаете отдельную логику и никак ее не объединяете с другой, вам не нужны ни общие интерфейсы, ни что-либо еще

Max
14.01.2018
21:21:09

Bohdan
14.01.2018
21:21:32

Google

Max
14.01.2018
21:24:23
ну так все просто - одна абстракция (интерфейс) за которым инкапсулируешь все твои апи и которая будет возвращать один формат, а потом под конкретное апи делаешь реализацию

Bohdan
14.01.2018
21:24:40
Первый мой шаг был - это сделать интерфейс, сделать несколько разных классов для разных API,
ну и унаследоваться от интерфейса.
Реализовал - заработало.

Max
14.01.2018
21:24:44
и потом через DI уже подкидываешь что нужно

Bohdan
14.01.2018
21:25:39

Like
14.01.2018
21:25:39

Max
14.01.2018
21:26:45
?

Like
14.01.2018
21:27:04
Все таки, ты действительно ничего не понимаешь)

Bohdan
14.01.2018
21:27:50
ладно, я понял, пошла травля, спс за ответы

Like
14.01.2018
21:28:18
О какой травле идет речь?

Max
14.01.2018
21:29:18

F01134H
14.01.2018
21:29:22

Like
14.01.2018
21:29:33

Max
14.01.2018
21:29:58
?
Все таки, ты действительно ничего не понимаешь)

F01134H
14.01.2018
21:31:43
По-моему вы оба ничего не понимаете

Roman
14.01.2018
21:32:34
Че то уже я ничего не понимаю

Sergey
14.01.2018
22:14:25
адаптеры обсуждаете?

Like
14.01.2018
22:15:37
Обсуждаем кто ничего не понимает х2

F01134H
14.01.2018
22:16:42

Google

Sergey
14.01.2018
22:17:44
накину немного - тут есть кто использует CI? Ну то есть не тулы а именно саму концепцию с ежедненой (или чаще) интеграцией?
как держать весь жизненный цикл PR в пределах суток? или забить и только с trunk based dev мы получаем настоящий CI?