@oop_ru

Страница 328 из 785
Артур Евгеньевич
30.08.2017
19:59:48
я думаю это скорее будет реализация иос
Да. Но я имел ввиду когда фабрика внутри диай контейнера и ты как зависимостб передаешь метод возвращающий обьект нужногл типа

da horsie
30.08.2017
20:00:04
IoC это не интерфейс

Evgeniy
30.08.2017
20:02:47
короче смотри примитивный пример

есть у логика работа с бд

Google
Evgeniy
30.08.2017
20:02:55
и бизнес логика

по умолчанию в логике работы с бд не должно быть бизнес логики

Anton
30.08.2017
20:03:22
это ты кому обьясняешь?)

Evgeniy
30.08.2017
20:03:23
но иногда очень хочется

артуру

Игорь
30.08.2017
20:03:40
я тоже слушаю

Evgeniy
30.08.2017
20:04:05
ioc это как бы принцип который говорит что бизнес логика должна лежать на уровне бизнес логики

и вопрос можно решить например в ооп в виде задание интерфейса на уровне логики работы с данными

а его реализация будет лежать на уровне бизнес логики

а вот уже реализация это идеи может быть сделана не только через интерфейсы или ооп

а еще и кучей других способов и подходов

Артур Евгеньевич
30.08.2017
20:06:56
Игорь
30.08.2017
20:07:17
солидарен

Google
Evgeniy
30.08.2017
20:07:21
ога принцип в том что код на уровне бизнес логики не знает когда он вызван

и как вызывается

другой пример оопшный

все понимают что такое агрегация7

Игорь
30.08.2017
20:09:09
да

Evgeniy
30.08.2017
20:09:49
допустим есть объект и по умолчанию без ioc чтобы его создать надо в том месте зависимости и прочие штуки для создания

Anton
30.08.2017
20:09:50
че то ты как то издалека решил подобраться к обьяснению иос))

Evgeniy
30.08.2017
20:09:53
это как бы dip

но когда объект создан поток управления объектом находится в том месте где создали этот объект используя di

и соответственно там работается с объектом

с другой стороны есть фреймворк он используя di запрашивает объекты

вы реализуете эти объекты но код как бы одинаквый обрабатывается и потоком управления вы уже не рулите

пример в паттерн наблюдатель

Игорь
30.08.2017
20:12:32
ну вот, это понятно

спасибо

Evgeniy
30.08.2017
20:13:45
получается что ioc это dip, di. полиморфизм на интерфейсах и тд

связка разная может быть

как то так но это очень грубо

лучше погуглите более авторитеные источники

https://martinfowler.com/bliki/InversionOfControl.html

Google
Evgeniy
30.08.2017
20:15:13
более подробно и понятно а не как я через одно место

ну и вот хороший краткий ответ https://toster.ru/q/287877

че то ты как то издалека решил подобраться к обьяснению иос))
можно еще зайти с типо патернов структрные и поведенческие)

и от туда плясать

сейчас коняш придет и скажет все не так

Игорь
30.08.2017
20:18:58
ну вот опять: DI - это частный случай IoC, с IoC вам нужно самим вызвать/доставать нужные "компоненты", когда DI сам их вам поставляет, например в качестве параметров в ф-ии.

Evgeniy
30.08.2017
20:19:40
никто не мешает юзать di в ioc

суть ioc не в создание объекта

а в его поведение после создания

Игорь
30.08.2017
20:20:11
почему DI считаеют частным случаем IoC

Evgeniy
30.08.2017
20:20:13
в одном случае ты его контролируешь и используешь

Игорь
30.08.2017
20:20:13
?

Evgeniy
30.08.2017
20:20:24
а в другом не ты

почему DI считаеют частным случаем IoC
второй ответ на тостере хуйня

читай только первый ответ

или читай фаулера

Игорь
30.08.2017
20:22:57
про IoC и DIP я понял

я не пойму почему DI считают частным случаем IoC? неужели это настолько распространенное заблуждение?

или это я заблуждаюсь, что так перестал считать?

Evgeniy
30.08.2017
20:27:38
имхо распространенное заблуждение

Google
Игорь
30.08.2017
20:27:57
блин, спасибо огромное)

теперь буду унижать людей рассказывая им про di ioc dip)

Sergei
30.08.2017
20:39:35
а где тип возвращаемого значения?
ну видишь там function в php скорее всего функции первого класса, как в js, а классы эмулируются через мапы в которых ключ строка, а значение функция.

KPABE
01.09.2017
07:11:33
я правильно понял что если код тестируемый то это и есть правильное ооп?

ну само собой с оговорками)

Serge
01.09.2017
07:13:53
...то это и есть тестируемость / модульность / разделение ответственности / whatever. Код при этом вполне себе может быть не в парадигме ООП.

sss3 ?
01.09.2017
07:14:51
функциональный код == не тестируемый код

KPABE
01.09.2017
07:51:29
опять неразбериха)

Evgeniy
01.09.2017
08:17:54
функциональный код или функциональное программирование?)

потому что функциональное программирование приносит хорошее определение чистой функции

которое тестировать просто замечательно

KPABE
01.09.2017
09:04:35
это была отсылка к этому
по итогу я правильно понял?

sss3 ?
01.09.2017
09:04:47
Нет

KPABE
01.09.2017
09:05:31
Нет
получается не тестируемый код это хорошо спроектированный ооп код)))

sss3 ?
01.09.2017
09:06:27
Тесты никак не связаны с парадигмой

Троль

KPABE
01.09.2017
09:08:08
Тесты никак не связаны с парадигмой
если код легко ттестируется в ооп парадигме значитт код хорошо написан...

f4rt~
01.09.2017
09:08:41
спорное заявление

Google
sic transit
01.09.2017
09:08:49
Если код написан - он тестируется

sss3 ?
01.09.2017
09:09:18
sic transit
01.09.2017
09:09:21
Если тесты есть - код можно писать

Совсем нет
Чего у тебя нет?

Max
01.09.2017
09:34:56
Странные у вас разговоры ? Код может либо подлежать тестированию, либо не подлежать. Если подлежит, то это хороший код и тесты там будут адекватные, если не подлежит - код нуждается в совершенствовании, без которых покрывать его тестами будет проблематично, но возможно. Парадигма может накладывать лишь свои особенности в покрытии тестами, но на уровне тестируемости кода не сказывается

Aleh
01.09.2017
09:42:22
тестируемый код необязательно хороший, а нетестируемый необязательно плохой

sic transit
01.09.2017
09:46:56
Да, не... Просто меня уже много лет умиляют споры про тесты. Причем на любом уровне экспертизы народ диаметрально противоположенные вещи втирает.

Виталий
01.09.2017
09:51:15
Любой мало-мальски нормальный программист пишет тесты. Просто некоторые пишут их каждый раз заново.

Виталий
01.09.2017
09:55:21
Я про другое. Все проверяют свой код на работоспособность. Но не все сохраняют проверки как автотесты.

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