@oop_ru

Страница 341 из 785
BioBodya
21.09.2017
14:11:56
Мне вот интересно, есть ли какие-то механизмы защиты каналов от этих ботов?

Sergey
21.09.2017
14:12:17
BioBodya
21.09.2017
14:12:44
Skynet. Начало.

Alexey
22.09.2017
07:07:08
Всем привет. Например есть каталог и есть группа. Каталог корень агрегата. Группу я добавляю и удаляю из под каталога. addGroup($name, ...) и removeGroup(Group $group). Как правильно. Если я хочу переименовать группу или сделать что-то другое с ее свойсвами, я должен это делать из каталога или можно делать через группу?)

Google
Sergey
22.09.2017
07:09:03
а как ты получаешь группу для removeGroup(Group $group)?

f4rt~
22.09.2017
07:09:44
извечная проблема что лучше

1) $school == $pupil->getSchool() 2) $pupil->isMemberOf($school)

?

Sergey
22.09.2017
07:10:22
Деметра с тобой не согласится что тут есть какая-то проблема.

f4rt~
22.09.2017
07:10:50
а инкапсуляция согласится?

Sergey
22.09.2017
07:11:06
нет, с ее точки зрения тоже только второй вариант

Alexey
22.09.2017
07:11:44
Sergey
22.09.2017
07:12:13
Catalog => collection group find по id
то есть и удалять мы можем по id минуя выборку

ну мол сразу делать remove(groupId)

Alexey
22.09.2017
07:13:37
то есть и удалять мы можем по id минуя выборку
Так меня интересует после создания группы, манипуляции с ее филдами нужно делать из по каталога?

Sergey
22.09.2017
07:13:56
хороший вопрос на самом деле, я не знаю(

можешь рассказать почему ты решил поместить эти две сущности в один агрегат?

Google
Alexey
22.09.2017
07:15:22
Ну у меня логика проста. Есть каталоги и есть группы, в одном каталоге может быть много групп, но группа не может быть без каталога => значит каталог корень )

Sergey
22.09.2017
07:17:39
Ну у меня логика проста. Есть каталоги и есть группы, в одном каталоге может быть много групп, но группа не может быть без каталога => значит каталог корень )
по логике, если у тебя есть необходимость что-то делать с группами в отрыве от каталога - то он выходит самодостаточным агрегатом

а вот модет ли один агрегат входить в другой - тут я хз

Alexey
22.09.2017
07:20:35
по логике, если у тебя есть необходимость что-то делать с группами в отрыве от каталога - то он выходит самодостаточным агрегатом
Ну вот в чем вопрос. В другом контексте он является агрегатом. Но в контексте добавления новой группы, все таки находится в контексте каталога. Либо все таки $group = new Group(Catalog $catalog, ...), т.к. группа без каталога невалидная сущность

Sergey
22.09.2017
07:22:01
А почему группа часть агрегата каталог?
потому что начало жизненного цикла у группы зависит от каталога

Sergey
22.09.2017
07:22:33
ну на самом деле я тоже не уверен)

Aleh
22.09.2017
07:22:43
Как пример - файл и директория

Sergey
22.09.2017
07:22:47
как по мне я не вижу проблемы сделать new Group($catalog)

Aleh
22.09.2017
07:23:01
Два разных агрегата, но файл не может существовать без директории

Alexey
22.09.2017
07:23:56
Как пример - файл и директория
Но файл может существовать без директории, а в моем случае это невлидно

Sergey
22.09.2017
07:24:13
иначе это еще не файл

Alexey
22.09.2017
07:24:29
Sergey
22.09.2017
07:24:39
В linux все есть файл)
и у всего есть директория

вопрос - должен ли каталог знать о группах или группы должны знать о каталоге?

или у тебя там циклическая зависимость?

Google
Sergey
22.09.2017
07:26:50
самое пожалуй сложное для осознания для меня является "держать агрегаты маленькими". А точнее как при этомм сделать красиво начало жизненного цикла. Мне же нужна какая-то фабрика для этого

Anton
22.09.2017
07:26:52
В разных Bounded Context одни и теже сущности могуть быть разными агрегатами

Aleh
22.09.2017
07:26:54
Ну да, если что-то часть аггрегата, то оно должно быть в нем хорошенько инкапсулировано

Иначе это просто связанные агрегаты

Anton
22.09.2017
07:27:26
Always get en Entity (c) не помню кто

http://udidahan.com/2009/06/29/dont-create-aggregate-roots/

Sergey
22.09.2017
07:28:54
вот может и меня просвятите. Есть у меня продукты и отзывы. Отзывы я могу оставлять только к продуктам которые я заказывал. И продукты и отзывы являются самодостаточными агрегатами. Как запустить жизненный цикл отзыва?

какой агрегат мне поможет? Агрегат пользователя? агрегат продукта?

Sergey
22.09.2017
07:30:59
На самом деле нет разницы, имхо
но где мне проверить этот бизнес рул о том что я уже заказывал продукт?

Anton
22.09.2017
07:31:20
$product->attachReview(...) или $customer->writeReview($product, 'blabla')

Sergey
22.09.2017
07:32:11
а что делать если кастомер запускает еще с десяток таких вот вещей и класс становится перегруженным штуками

Anton
22.09.2017
07:32:35
Выносить Saga как вариант

Sergey
22.09.2017
07:32:54
типа сначала проверяем бизнес рул, кидаем событие о том что челу можно делать делать, делать дела?

Anton
22.09.2017
07:33:02
С недавних пор очень активно пользую данный паттерн в CQRS / ES

Alexey
22.09.2017
07:33:22
Выносить Saga как вариант
Можешь просветить, что есть Saga?

Google
Sergey
22.09.2017
07:33:38
http://microservices.io/patterns/data/saga.html

Anton
22.09.2017
07:33:44
http://blog.jonathanoliver.com/cqrs-sagas-with-event-sourcing-part-i-of-ii/

Alexey
22.09.2017
07:34:09
Спасибо)

Anton
22.09.2017
07:34:59
Очень подробно и понятно как по мне есть в документации микрософта: https://msdn.microsoft.com/en-us/library/jj591569.aspx

Sergey
22.09.2017
07:39:02
а такой вопрос, в целом мне всеравно надо лесть в заказы что бы узнать заказывал кастомер продукт или нет

как лучше делать это с cqrs, по read model определять айдишку агрегата и тогда только ее доставать?

или вообще обойтись без сущностей и просто заэмитить следующую фазу - добавление отзыва

Anton
22.09.2017
07:44:51
Если есть бизнес требование что отзыв можно написать только к продукту который ты заказывал, я бы хранил у Customer список ID товаров.

Это вполне себе его обязанность

Илья
22.09.2017
08:07:51
Какой язык программирования можно изучить кроме java, js, c#

Sergey
22.09.2017
08:08:21
разрешаю

например haskell

или rust

?
22.09.2017
08:08:43
Go)

Sergey
22.09.2017
08:08:56
go учить просто так скучно

Roman ?
22.09.2017
08:09:11
go учить просто так скучно
а все остальное - нет?)

Nikita
22.09.2017
08:09:18
Ну так задачу себе надо поставить, чтобы скучно не было

Проект

Roman ?
22.09.2017
08:09:27
любые штуки прикольно учить привязывая к практике

Google
Sergey
22.09.2017
08:09:39
а все остальное - нет?)
сам язык скучный. На нем удобно что-то писать но просто так учить... скучно

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

Roman ?
22.09.2017
08:10:07
не знаю, мне после пхп знатно мозг ломало по первости :)

Sergey
22.09.2017
08:10:28
не знаю, мне после пхп знатно мозг ломало по первости :)
ну я то помимо php еще языки знаю... потому мне go скучно

Roman ?
22.09.2017
08:12:32
я как бы тоже не пхп единым.. он не скучный, он простой, надо брать и сразу писать на нем что то, в принципе как и в любом другом случае имхо

Sergey
22.09.2017
08:13:05
эрланг лучше, будет так же мозг ломать и чуть-чуть интереснее

Anton
22.09.2017
08:13:14
Elixir, Go, Rust - трендовые штуки C++, Java, C# - старая добрая классика PHP - Java для бедных, но все равно его не брошу :)

Sergey
22.09.2017
08:24:27
ну я то помимо php еще языки знаю... потому мне go скучно
а я вот наоборот на го хочу пописать, чтобы проникнуться всеми паттернами по корутинам

Anton
22.09.2017
08:25:42
Горутинам :) Они там особенные

Sergey
22.09.2017
08:27:37
Горутинам :) Они там особенные
чем особенные? тем что они умеют шедулится на несколько ядер?

Anton
22.09.2017
08:30:25
Ага, как минимум

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