@oop_ru

Страница 136 из 785
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
а что есть в ioc чего нет в di ?
service locator, factory, strategy и тд

Evgeniy
03.03.2017
13:56:59
я читал много раз

и эти ссылки сюда выкладывал

Илья
03.03.2017
13:58:02
а что есть в ioc чего нет в di ?
немного некорректный вопрос, кмк

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
я хочу ioc - di посмотреть что за множество осталось
выше ж кучу раз написали, strategy, events, factory, sl

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 в контроллерах

Но инъектить куда-то контейнер обычно плохая практика

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
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
это в целом логично если с позиции декомпозиции смотреть

большинство по моим наблюдениям начинают проектировать как-то снизу вверх

Страница 136 из 785