@oop_ru

Страница 67 из 785
Sergey
15.01.2017
18:48:48
ну и еще там есть всякие рейтинги юзеров в этом компоненте

ну то есть самодостаточное приложение

я в своем проекте где-то 5 таких вот самодостаточных контекстов выделил которые вообще не влияют друг на друга (то есть это цель, сейчас по коду есть зависимости)

и пока я неделю кручу в голове доменные ивенты и мне дико нравится

Google
Sergey
15.01.2017
18:50:13
ну и по поводу дебагов и прочего - доменные ивенты весьма легко трекать

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

связь между контекстами

ну и ивенты будут сначала собираться в сущностях и тригериться только по успешному коммиту транзакции в базу

F01134H
15.01.2017
19:24:53
тут случайно нет людей, которые шарят в алгоритмах?

Aleh
15.01.2017
19:27:53
Зависит от алгоритмов)

F01134H
15.01.2017
20:54:30
?

Marat
15.01.2017
21:27:21
пастух люцифера

F01134H
15.01.2017
21:27:46
Какой варик быстрее: заполнять бинарное дерево до полного пустыми значениями и юзать одномерный массив для хранения, или юзать неполное бинарное дерево, но заполнять двумерный массив?

F01134H
15.01.2017
21:29:21
цель - выбрать наиболее быстрый вариант D:

Sergey
15.01.2017
21:29:38
окей, дерево зачем тебе?

Google
Sergey
15.01.2017
21:30:19
ну мол... немного непонятно из описания что ты вообще хочешь сделать и как ты себе представляешь бинарное дерево состоящее из пустых значений

в этом же смысла нет

F01134H
15.01.2017
21:30:55
Есть, можно юзать одномерный массив для хранения

Sergey
15.01.2017
21:31:08
F01134H
15.01.2017
21:31:12
в полном бинарном дереве каждый новый уровень всегда вдвое больше предыдущего

Alexander
15.01.2017
21:32:05
цель - выбрать наиболее быстрый вариант D:
какие операции длжны быть быстрыми?

Aleh
15.01.2017
21:34:55
да, вопрос выше правильный

F01134H
15.01.2017
21:35:25
поиск например

Aleh
15.01.2017
21:35:39
поиск числа в дереве?

пирамида?

красно-черное?

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

Sergey
15.01.2017
21:36:36
поиск например
поиск разный бывает. И на выбор алгоритмов и структур влияет характер данных и поиска.

F01134H
15.01.2017
21:37:40
да

Alexander
15.01.2017
21:45:22
Если только поиск то подумай о хеш таблицах еще.

da horsie
15.01.2017
22:30:19
Дайте-ка я побрежу. Есть набор моделей, например Author, Topic, Comment etc. Они могут быть в отношениях, довольно сложных, например Comment отновится к определенному Topic, и у него есть Author. Конструкции типа comment.getTopics[0].getAuthor.getFolowers понятно нарушают LOD. Может быть тогда вообще сделать так, чтобы сущности не знали друг про друга? У Comment не будет методов вроде getTopic() или getAuthor().

А информация о связях, например, будет храниться отдельно. как-то. Не знаю, как.

Sergey
15.01.2017
22:32:00
может тебе не надо просто гидрировать данные на сущность?)

ну то есть.... что ты сделать хочешь? Подготовить данные для UI?

Google
da horsie
15.01.2017
22:32:17
а как надо?

ну да

Sergey
15.01.2017
22:32:31
ну сделай выборку, жазни все в ArrayHydrator какой

и радуйся

не надо париться о LOD)

не надо париться с геттерами

da horsie
15.01.2017
22:33:04
мне надо нарисовать клиенту сложную структуру типа комменты, их авторы, какие-то данные об авторах, может быт еще что-то

Sergey
15.01.2017
22:33:29
ну так, идеальный кейс для такой штуки как SQL)

da horsie
15.01.2017
22:33:53
Sergey
15.01.2017
22:34:26
ну просто через query builder выбираешь те данные которые тебе нужны

da horsie
15.01.2017
22:34:35
получается у меня DB mapper будет возвращать некий сложный массив?

Sergey
15.01.2017
22:34:46
и говоришь ему в getResult что бы не ObjectHydrator юзало а ArrayHydrator

da horsie
15.01.2017
22:34:48
и этот массив отправится прямо во вью?

Sergey
15.01.2017
22:34:53
ну тип того

еще ты можешь в select писать штуки вроде select new MyViewDTO(author.id)

но я этим пока не пользовался особо(

насколько я понял такое работает хорошо для простых данных

но это если ты хочешь загоняться

если надо оч быстро запилить - вариант с нарушением LoD будет намного быстрее

эдакий прототип

Google
da horsie
15.01.2017
22:36:43
прототип у меня уже работает

щас фаза рефакторинга

Sergey
15.01.2017
22:37:18
ну я хз... было б неплохо выслушать других людей

Admin
ERROR: S client not available

Sergey
15.01.2017
22:37:29
потому что то о чем я тебе вещаю это мой бзик последние пару месяцев

и я еще не наступил с ним на грабли но допускаю что они где-то там... впереди

da horsie
15.01.2017
22:37:49
чуть более в сторону вопрос: зачем вообще моделям знать о своих связях?

зачем Comment знать о своем Author?

Sergey
15.01.2017
22:38:06
что бы построить агрегат сущностей

public function comment(string $message, User $author) { $this->comments->add(new Comment($message, $author); }

ну то есть без связей такое сделать не получится особо

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

вроде "только один автор может постить в этот топик"

if ($this->comments->matching(Comment::byAuthorCriteria($author)) { throw new MultimpleCommentsNotAllowed($author, $topic)l }

da horsie
15.01.2017
22:40:28
а почему агрегат не может знать о связях? ну типа $comenter = new PostCommenter($post); $commenter->comment($text, $date)

Sergey
15.01.2017
22:40:42
посмотри на мой кейс

если бы коммент не знал об авторе

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

их сущности Topic по коллекции комментов по отдельной критерии

ну то есть связи важны. Их количество нужно минимизировать, но в случае авторов-комментов она хотя бы с одной стороны должна быть. И логичнее ее размещать у коммента

Google
Sergey
15.01.2017
22:42:01
односторонюю

не?

da horsie
15.01.2017
22:43:53
смотрю, не понимаю, почему это же самое не реализовать в PostCommenter

Sergey
15.01.2017
22:44:16
через корень агрегата происходят все операции над ним

смотрю, не понимаю, почему это же самое не реализовать в PostCommenter
ну потому что... тогда зачем тебе доктрина и сущности вообще?) юзал бы dao какой-нибудь

da horsie
15.01.2017
22:45:02
а у меня и нет доктрины

Sergey
15.01.2017
22:45:14
а сущности тогда откуда?

da horsie
15.01.2017
22:45:21
ну это модели

просто модели типа Comment

Sergey
15.01.2017
22:45:35
"модели" - это очень абстрактное слово

модель данных типа?

ну тогда она будет просто повторять твою базу данных

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