@oop_ru

Страница 601 из 785
da horsie
10.04.2018
23:24:42
Простите :)

Алексей
10.04.2018
23:43:42
на кого-то похож

Hell
11.04.2018
07:13:49
у меня заработал контейнер

Sergey
11.04.2018
07:14:52
у меня заработал контейнер
продолжай держать нас вкурсе

Google
Hell
11.04.2018
07:29:39
ОК

сейчас делаю замену на sqlite для "холостых прогонов "

Kirill
11.04.2018
09:17:21
@fes0r , приветствую. Стоит ожидать вашего выступления на fwdays? : )

Sergey
11.04.2018
09:18:09
я в этом году не выступаю

Kirill
11.04.2018
09:18:51
Жаль

Будем верить и надеяться на другой раз)

Hell
11.04.2018
12:16:58
https://github.com/simpleinjector/SimpleInjector/issues/531

Sergey
11.04.2018
13:06:06
с тех пор как ты начал с этим возиться

мне кажется ты занимаешься херней

F01134H
11.04.2018
13:12:06
?

Like
11.04.2018
13:12:58
Еще и шарп, изыди ?

Google
Evgeniy
11.04.2018
13:16:55
Hell
11.04.2018
13:17:13
Evgeniy
11.04.2018
13:17:15
сейчас он расскажет что в его крупной компании в германии так принято

Hell
11.04.2018
13:18:13
https://github.com/simpleinjector/SimpleInjector/issues/71#issuecomment-118638873

аффтар SI первый начал

или у вас более эффективые методы соединения с несколькими базами данных ?

я имею ввиду паттерны UOW и Repo

Ihor
11.04.2018
13:25:50
Господа, кто может внятно объяснить SRP?

все остальные для меня очень понятны

но SRP это прям холивар какой-то

Hell
11.04.2018
13:32:19
существует одна и только одна причина для изменения чего-то

F01134H
11.04.2018
13:35:29
Господа, кто может внятно объяснить SRP?
У тебя есть класс Pizza, в нем не должно быть методов типа humanEatPizza, т.к. этот метод относится к контексту класса Human или чего-либо еще

Ihor
11.04.2018
13:36:25
Это другое больше

Депенденси инаерсион

F01134H
11.04.2018
13:36:36
шта)

они не являются взаимозаменяемыми, эт вообще разные вещи

Aleh
11.04.2018
13:36:54
но SRP это прям холивар какой-то
Количество причин для изменения, для использования

F01134H
11.04.2018
13:37:16
Hell
11.04.2018
13:37:22
Пасиба, усьо понял)
а теперь идем по ссылке на гитхаб и думаем, где я допустил мыслительную ошибку

Google
F01134H
11.04.2018
13:37:27
мне тоже интересно, как правильно

Ihor
11.04.2018
13:39:42
Да?

F01134H
11.04.2018
13:39:59
Да?
Да чего там думать, SRP простой как пробка)

Ihor
11.04.2018
13:40:28
Пример норм, но я не думал что это можно отнести к срп

Sergey
11.04.2018
13:41:24
Да чего там думать, SRP простой как пробка)
сам принцип простой, а вот соблюдать его пипец сложно

для этого надо постоянно следить за тем как твой модуль используется, кем, и на кого это влияет

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

Ihor
11.04.2018
13:43:01
Кто что думает? Подходит пример к срп вообще?

Like
11.04.2018
13:43:40
Кто что думает? Подходит пример к срп вообще?
Ну, вообще, да Пицца не должна уметь кормить кого-то, у нас все таки приближенное к реальному миру

Sergey
11.04.2018
13:43:42
Кто что думает? Подходит пример к срп вообще?
да, подходит. SRP в целом про то как ты делаешь декомпозицию, выделяешь роли тех кто влияет на требования (генерит изменения)

Ну, вообще, да Пицца не должна уметь кормить кого-то, у нас все таки приближенное к реальному миру
почему это?) она вполне может уметь "кормить", это ж не пицца а ее модель

Sergey
11.04.2018
13:44:09
это как дверь вполне может открываться

Pizza{ eat(); }

вполне себе норм

Like
11.04.2018
13:44:28
почему это?) она вполне может уметь "кормить", это ж не пицца а ее модель
Ну как это почему? :с Пицца на то и пицца, чтобы ее ели, а не она кормила ?

Sergey
11.04.2018
13:44:58
Ну как это почему? :с Пицца на то и пицца, чтобы ее ели, а не она кормила ?
адвокаты по бракоразводному процессу представляют мужа и жену но не обязательно должны ими являться. (с) Дядя Боб

Ihor
11.04.2018
13:44:59
Открывать пицце не нужный ей контекст плохо да

Google
Like
11.04.2018
13:45:12
Pizza{ eat(); }
Human { eat(Pizza pizza); } Тоже не плохо вроде

F01134H
11.04.2018
13:45:38
Pizza{ eat(); }
это скорее к тому, что пицца кого-то съест :D

Sergey
11.04.2018
13:45:41
Human { eat(Pizza pizza); } Тоже не плохо вроде
я ж говорю, SRP только в самых простых случаях можно рассматривать в открыве от контекста

Sergey
11.04.2018
13:45:59
это скорее к тому, что пицца кого-то съест :D
ну окей, разрезать пиццу - кому этот метод принадлежит?)

F01134H
11.04.2018
13:46:24
Ihor
11.04.2018
13:46:38
Может ссылку норм кто-то знает?

Sergey
11.04.2018
13:46:38
Тому кто готовит)
с такой логикой у двери не может быть метода open

Like
11.04.2018
13:46:54
с такой логикой у двери не может быть метода open
Согласен Чо это дверь сама себя открывает, непорядок!

F01134H
11.04.2018
13:47:01
хотя, сложно, блин. Ой всё

Sergey
11.04.2018
13:47:25
ну то есть у тебя методы - это операции которые ты можешь производить над сущностью

то что сущность умеет делать

дверь умеет открываться, пиццу можно разрезать или сьесть

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

Like
11.04.2018
13:48:24
Sergey
11.04.2018
13:48:39
Human { bite(pizza) { pizza.bite() } }

Like
11.04.2018
13:48:41
Но здесь уже столько раз набрасывали за SRP, что страшно

Sergey
11.04.2018
13:49:05
Google
F01134H
11.04.2018
13:49:34
Human { bite(pizza) { pizza.bite() } }
понятно то, что непонятно - съедает ли человек пиццу, либо пицца съедается человеком)

Sergey
11.04.2018
13:49:52
F01134H
11.04.2018
13:50:07
Вот как раз тут и сложность SRP возникает)

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

Sergey
11.04.2018
13:50:26
ну как бы да)) более того - один и тот же модуль в разных ситуациях может соблюдать и нарушать SRP

SRP и OCP это те принципы которые ты нарушишь рано или поздно

ну просто у тебя нет вариантов

невозможно предсказать как там бизнес требования поменяет

Ihor
11.04.2018
13:51:33
OCP понятен и есть хорошие примеры

Sergey
11.04.2018
13:51:44
OCP понятен и есть хорошие примеры
ну и как он тебе понятен?

Like
11.04.2018
13:51:51

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