
Sergey
03.03.2017
13:55:40
setter injection это подмножество di
service locator это подмножество ioc

Evgeniy
03.03.2017
13:55:57
а что есть в ioc чего нет в di ?

Sergey
03.03.2017
13:56:48
я написал про service locator

Google

Sergey
03.03.2017
13:56:49
https://martinfowler.com/articles/injection.html
вообще вот почитай

Evgeniy
03.03.2017
13:56:56
в Ioc есть SL которого нет в DI

Sergey
03.03.2017
13:56:57

Evgeniy
03.03.2017
13:56:59
я читал много раз
и эти ссылки сюда выкладывал

Илья
03.03.2017
13:58:02

Evgeniy
03.03.2017
13:58:26
ну если утверждение что di подмножество Ioc
я хочу ioc - di посмотреть что за множество осталось

Илья
03.03.2017
13:59:03
ну тебе ответили, другие сопособы реализации ioc - service locator, factory

Evgeniy
03.03.2017
13:59:11
просто преведущий кто объяснял уже не объясняет(

Aleh
03.03.2017
13:59:20

Evgeniy
03.03.2017
13:59:27
а новые не согласны с тезисами преведущего оратора

Google

Evgeniy
03.03.2017
14:00:29
давай с простого sl, di, ioc это реализации, паттерны или подходы ?)

Aleh
03.03.2017
14:00:45
все подходы

Evgeniy
03.03.2017
14:01:44
хорошо все подходы
пишу пример
http://pastebin.com/q13nMcQA
просто прошлый человек кто объяснял назвал подход SL антипатерном
и SL в его понимание это тот же registry
возможно он не прав)
возможно я )

Aleh
03.03.2017
14:17:31
В симфони/пхп очень распространено использование контейнера как sl в контроллерах
Но инъектить куда-то контейнер обычно плохая практика

Sergey
03.03.2017
14:19:56

Aleh
03.03.2017
14:20:20
Так это ж неплохо)

Evgeniy
03.03.2017
14:22:26
это как пример SL
тут речь не о симфони и не php я могу и в java style переписать пример

Aleh
03.03.2017
14:23:22
Ну ты же понимаешь, что чтобы использовать SL его надо как-то получить?
И я не просто так написал обычно

Evgeniy
03.03.2017
14:23:58
это детали реализации

Sergey
03.03.2017
14:24:06
во времена первой зенды, когда был Zend_Registry мы вручную все сервисы регали, и потом доставали там где нужно. вот адок был)

Google

Evgeniy
03.03.2017
14:24:06
мы сейчас говорим о sl, di, ioc
так это паттерн регистр
я просто сейчас со стороны пытаюсь понять людей
я со многими на своем опыте общался
и каждый понимал sl, di, ioc по своему
очень редко мнения сходились
причем все противоречия были именно в примерах
в обсуждение на словах все было ок)
di это внедрнеие зависимостей, все соглашаются

Sergey
03.03.2017
14:26:07
у тебя может быть класс сервис-локатор, тому пример getRepository метод в entity manager доктрины

Evgeniy
03.03.2017
14:26:08
а на практие говно на вентилятор
кто цитировать фаулера

Evgeniy
03.03.2017
14:26:16
кто русскую вики
кто английскую вики
кто искать статьи на хабре в подтверждение слов
кто то пытался бандой четырех объяснить

Sergey
03.03.2017
14:30:07
размыто только понятие ioc, остальные более чем конкретные

Evgeniy
03.03.2017
14:30:41
да нет вот даже в чате человек
объянсял сейчас мне
он в целом тоже прав

Google

Sergey
03.03.2017
14:31:01
вы тут 2 часа эту тему мусолили. все не читал

Evgeniy
03.03.2017
14:47:25
ну как я теперь определю что читал что нет)
как итог никто до конца не дал определений) так на словах абстрактненько)

Sergey
03.03.2017
14:48:11
по IoC достаточно спросить "почему template method это тоже IoC подход?"

Evgeniy
03.03.2017
14:48:44
template method из фаулеровской статьи?
тут о template method беседы не было
это опять поведенческий паттерн и твои взгляды похожи с тем кто в пример ioc евенты предлогал или стратегию

Sergey
03.03.2017
15:04:45
и мы рассматривали много из подмножества ioc
потому была и про них беседа)

Admin
ERROR: S client not available

Aleh
03.03.2017
15:09:51
Di если что тоже не про создание объектов)

Evgeniy
03.03.2017
15:14:09

Aleh
03.03.2017
15:15:14
Под паттернами обычно подразумеваются gof, иногда грасп. Думаю плохое слово для этого обсуждения

Evgeniy
03.03.2017
15:18:05
так они в этой книге и условно разделены на 3 основные группы
Behavioral - поведенческие
Creational - порождающие
ну и структурные
даже на вики также группируются
ладно настало время работать)

Google

Sergey
03.03.2017
16:13:01

da horsie
03.03.2017
18:06:56
Очень хорошая заметка у дяди Боба сегодня. Помню @fes0r мне тоже самое объяснил, и это открыло глаза на многие вещи. http://blog.cleancoder.com/uncle-bob/2017/03/03/TDD-Harms-Architecture.html

Hell
03.03.2017
18:19:50
Господи, ну как же меня достал мой немецкий CTO!
реально, какой нибудь немец встал бы и ушел. А русский ванька терпит
Указывает на vendor-ные зависмости, как будто это плохо

da horsie
03.03.2017
18:25:38
если бизнес-логика зависит от вендорной библиотеки напрямую, это может быть плохо

Hell
03.03.2017
19:10:17
Прекрасно!
http://oauth2-client.thephpleague.com/
Зависимость от этой библиотеки - это хорошо или таки плохо?

Sergey
03.03.2017
19:13:37
если изолировано от бизнес логики - то норм

da horsie
03.03.2017
19:13:46
я имею в виду прямую зависимость (coupling)

Sergey
03.03.2017
19:13:47
если размазано повсюду - не норм
аккуратные кучки кода удобнее чем равномерно размазанные по стене

da horsie
03.03.2017
19:14:44
your business logic should be decoupled from the framework, which vendors are a part of
бизнес-логика может пользоваться вендорами, но опосредованно, через четко определенный API. и этот API должен контролировать ты

Sergey
03.03.2017
19:17:03
ну и есть нюансы
иногда можно завязать код
ты же завязываешь код на PHP
и его стандартную библиотеку например)

da horsie
03.03.2017
19:17:52
чем сложнее система, тем больше надо абстрагироваться от деталей (фреймворка)

Sergey
03.03.2017
19:18:13
это в целом логично если с позиции декомпозиции смотреть
большинство по моим наблюдениям начинают проектировать как-то снизу вверх