@oop_ru

Страница 417 из 785
Maksim
08.12.2017
08:34:31
я вот команд бас для чатика с ботом не особо вижу, если честно. как-то расточительно, имхо

Sergey
08.12.2017
08:34:47
я вот команд бас для чатика с ботом не особо вижу, если честно. как-то расточительно, имхо
ну там им не комманд бас нужен а просто маршрутизация сообщения до обработчика

Maksim
08.12.2017
08:34:53
и "обмазываться шинами" тоже странная идея)

Google
f4rt~
08.12.2017
08:34:56
потому, что как раз таки предполагается использовать его в контексте диалога с пользователем

Sergey
08.12.2017
08:35:03
а в чем загвоздка последней части?
command bus = запрет на возврат результатов

это сильное ограничение которое с одной стороны хорошо, с другой стороны зачем

f4rt~
08.12.2017
08:35:47
видимо я никогда не сталкивался с уместной реализацией сего

Maksim
08.12.2017
08:35:50
ну я бы не назвал это ограничением. Опять таки, под задачу

f4rt~
08.12.2017
08:36:23
вообще я понял ваш ход мыслей, благодарю, задача не горит, просто когда то за нее придется взяться, вот потихоньку подготавливаю почву)

Sergey
08.12.2017
08:36:36
ну я бы не назвал это ограничением. Опять таки, под задачу
не. это как раз таки ограничение. А уже от задачи зависит катит тебе такое ограничение или нет. В большинстве случаев как по мне это будет создавать излишнее усложнение. С другой стороны и плюсы тоже есть даже для ситуаций когда в общем-то можно было и без этого

Maksim
08.12.2017
08:36:52
мне, например, нафиг не надо клиентам резалт никакой давать. да, внутри себя неудобно немного айдишники локейтить, да и чёрт с ним

Sergey
08.12.2017
08:37:35
мне, например, нафиг не надо клиентам резалт никакой давать. да, внутри себя неудобно немного айдишники локейтить, да и чёрт с ним
ну так я об этом и говорю - ты осознанно пошел на этот шаг и в целом тебя подобные ограничения устраивают. Ограничения это вообще хорошо, просто их надо выбирать под задачу

f4rt~
08.12.2017
08:37:55
если, я например не отдаю командой результат обработки никакой, а делаю действия внутри коробки, или еще проще заммапил их куда-то, что бы в конце треда засторить, считается? ?

Mykola
08.12.2017
08:38:04
ребят, а почему гексагоналка так называется?

в чем суть именно такого названия?

Google
Maksim
08.12.2017
08:38:57
точнее, результат выполнения команды)

Aleh
08.12.2017
08:39:10
в чем суть именно такого названия?
Гексагон это правильная фигура с самым большим числом углов, которой можно покрыть плоскость. Соединяются гексагоны клево короч)

В cqrs не бывает асинхронных команд кстати)

Aleh
08.12.2017
08:39:57
Команды должны быть синхронными

Maksim
08.12.2017
08:40:14
f4rt~
08.12.2017
08:40:15
В cqrs не бывает асинхронных команд кстати)
да что ж вы за люди. только ко мне пришла мысль, что какой-то % я понял

так вот ты врываешься

Aleh
08.12.2017
08:40:23
с чего вдруг?)
Цитирую грега янга

Maksim
08.12.2017
08:40:32
у него к лету мнение поменяется)

Aleh
08.12.2017
08:40:44
Ну чет за 5 лет не поменялось)

И еще команда без результата с его же точки зрения - бесполезная шляпа

Maksim
08.12.2017
08:41:35
ну тогда надо бы ещё и ра резалт набросить_)

Sergey
08.12.2017
08:41:37
ребят, а почему гексагоналка так называется?
я статью скину - там в начале предыстория

Sergey
08.12.2017
08:41:56
просто Кокберн когда диаграмки рисовал - выходили гексагоны. Он это делал что бы удобнее было связи прописывать (ну мол кружки не удобно было)

Aleh
08.12.2017
08:42:15
Sergey
08.12.2017
08:42:29
спустя время он разобрался что соль не в гексагонах а в портах и адаптерах

вот и все собственно)

Mykola
08.12.2017
08:42:43
понятно...

Google
Mykola
08.12.2017
08:42:48
напридумывали букв

Bohdan
08.12.2017
08:42:48
просто Кокберн когда диаграмки рисовал - выходили гексагоны. Он это делал что бы удобнее было связи прописывать (ну мол кружки не удобно было)
с тех пор что бы не рисовал Кокберн - выходили гексагоны....и даже человечки на салфетках и сердечки всякие

Aleh
08.12.2017
08:43:50


Sergey
08.12.2017
08:43:55
напридумывали букв
короч это слоеная архитектура с упором на инверсию зависимости

Aleh
08.12.2017
08:43:57
https://groups.google.com/forum/m/#!topic/dddcqrs/xhJHVxDx2pM

Mykola
08.12.2017
09:15:40
ану умные оопшники, поясните мне за жизнь: есть класс, в нем есть метод, скажем, getKey() { return "foo"; }

и люди тут выносят этот "foo" в константу

какой принцип они при этом нарушают?

Aleh
08.12.2017
09:16:31
Аксиома эскобара

f4rt~
08.12.2017
09:16:38
??

а это я понял

f4rt~
08.12.2017
09:17:06
какой принцип они при этом нарушают?
можно нарваться на позднее статическое связывание

Sergey
08.12.2017
09:17:39
можно нарваться на позднее статическое связывание
ты не можешь нарваться на позднее статическое связывание если не юзаешь статику)

f4rt~
08.12.2017
09:17:57
ну а константа же?

Sergey
08.12.2017
09:18:17
какой принцип они при этом нарушают?
вот если бы они размазали константу по коду - нарушили бы OCP

Mykola
08.12.2017
09:18:56
дело в том, что эта константа не нужна больше ни в одном месте

f4rt~
08.12.2017
09:19:04
я вообще не видел толкого применения констант, кроме посчитать права доступа

все остальные варианты, даже релевантные, все равно не то, имхо

Google
Mykola
08.12.2017
09:20:14
про позднее статическое связывание это я тоже думал, но мне надо именно понять теоретически: какой принцип нарушается

похоже на SRP

Mykola
08.12.2017
09:20:56
какая такая приватная константа в пхп?

:)

Aleh
08.12.2017
09:21:35
e = mc^2
Не, постоянная планка там или G

Admin
ERROR: S client not available

f4rt~
08.12.2017
09:21:52
e = mc^2
все это есть в bcmatch и ему подобных

Sergey
08.12.2017
09:22:06
Не, постоянная планка там или G
энергия = масса * скорость света в квадрате

f4rt~
08.12.2017
09:22:06
я имел в виду те, которые приходится тебе обозначить самому для каких либо целей

Aleh
08.12.2017
09:22:20
Sergey
08.12.2017
09:22:32
А где константа?
скорость света это постоянная

Aleh
08.12.2017
09:23:00
скорость света это постоянная
А, ну да, просто зачем остальное)

Sergey
08.12.2017
09:23:08
А, ну да, просто зачем остальное)
контекст использования)

и эксплуатация брэнда

Eugene
08.12.2017
09:34:11
какая такая приватная константа в пхп?
может быть такая https://3v4l.org/3p02a

Mykola
08.12.2017
09:34:55
нам нельзя

пхп 7.1 это будущее, а у нас не все еще на 7 перешли

Google
Eugene
08.12.2017
09:35:43
жалко вас

f4rt~
08.12.2017
09:36:27
я недавно одного человека, агитировал проект перевести на 7.2 из-за расширения типа параметра как раз к месту приходилось)

Dmitriy
08.12.2017
09:38:48
расширения типа параметра?

Bohdan
08.12.2017
09:43:08
тайпхинт для object, как понимаю

f4rt~
08.12.2017
09:43:42
https://habrahabr.ru/company/avito/blog/335584/#vozmozhnost-rasshireniya-tipa-parametra-rfchttpswikiphpnetrfcparameter-no-type-variance

с якорем

f4rt~
08.12.2017
09:45:12
один из платежных шлюзов придумал отправлять цифры в постбеке как строку

хотел LSP нарушить или реально нужно было расшрить предусловия?
и что значит нарушить, ты же мне сам во время RFC доказывал что это не нарушает LSP

что происходит с этим миром

Bohdan
08.12.2017
09:46:34
в плюсах ведь только наоборот можно, нет? ужесточать требования к типам

Sergey
08.12.2017
09:47:07
и что значит нарушить, ты же мне сам во время RFC доказывал что это не нарушает LSP
ослабление предусловия не является нарушением RFC. А вот убрать тайпхинт в наследнике ты можешь захотеть что бы именно это сделать)

один из платежных шлюзов придумал отправлять цифры в постбеке как строку
ну то есть смотри. У тебя есть 2 платежных шлюза. Если ты не можешь подменить одну реализацию другой так, что с точки зрения клиентского кода ничего не поменялось - ты нарушил LSP

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

f4rt~
08.12.2017
09:48:56
а как оно тогда с друг другом вяжется если у меня есть какой-то PaymentProvider abstract public function addPayment( int $payment_id, Item $item ) : Payment и есть стратегия для конкретного платежного шлюза но они возвращают payment_id сторокой

Sergey
08.12.2017
09:51:26
а как оно тогда с друг другом вяжется если у меня есть какой-то PaymentProvider abstract public function addPayment( int $payment_id, Item $item ) : Payment и есть стратегия для конкретного платежного шлюза но они возвращают payment_id сторокой
: int - это пост-условие. Его ты не должен "ослаблять". Ты его должен либо оставить как есть либо усиливать. Иначе это будет нарушением LSP. То есть если у тебя один платежный шлюз возвращает int а другой строку - то либо делай так что бы оба возвращали строку, либо не делай общий тип.

f4rt~
08.12.2017
09:52:15
господи я совсем сплю. щас переделаю пример

Bohdan
08.12.2017
09:52:27
либо вообще уходи от примитивов и делай так, чтобы они возвращали PaymentId, в который инкапсулировать логику его подготовки

Sergey
08.12.2017
09:52:34
короч если на выход у функции были инты а потом внезапно строки - что-то может сломаться)

f4rt~
08.12.2017
09:52:40
вот так

Sergey
08.12.2017
09:53:09
если у тебя был int а стал string в наследние - то это ослабление пред-условия а значит с LSP все хорошо

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