@prophp7

Страница 6 из 1387
Ilya
07.06.2016
16:09:16
а чего там сложного?

есть интерфейсы почти в каждом фреймворке

оно само работает

Aleh
07.06.2016
16:09:48
Да скорее интересно как в сущности подставляете

Google
Aleh
07.06.2016
16:09:57
Наследует или трейты

Ilya
07.06.2016
16:09:57
а, в этом смысле

я давно отказался от моделей

они дают непредсказуемый sql

руками точу через explain с простановкой оптимальных индексов

Aleh
07.06.2016
16:11:12
Сущности слабо связаны с sql

Sergey
07.06.2016
16:11:29
ага, в лаварале

Aleh
07.06.2016
16:11:45
А, active record)

Sergey
07.06.2016
16:11:47
ларавеле блять*)

Aleh
07.06.2016
16:12:14
Кстати, иногда сложно переключаться между ларавелем каким и скажем prooph

И там, и там модель это AR

Ilya
07.06.2016
16:12:36
в ларавел да, там можно скармливать в модели результат из кверибилдера

в той же доктрине с этим хуже

Google
Aleh
07.06.2016
16:12:50
Только в одном месте active record, а в другом aggregate root

Sergey
07.06.2016
16:13:14
а че хуже?

Ilya
07.06.2016
16:14:01
мне проще кверибилдером сделать запрос, чем плодить классы наследники, переопределяющие кусочки доктрины

Sergey
07.06.2016
16:14:15
все равно не вижу связи

Aleh
07.06.2016
16:14:38
Так кверибилдером и делаешь запрос

Sergey
07.06.2016
16:15:21
метод из репозитория: public function getDistributorsByUserId($userId) { $query = $this->createQueryBuilder('i') ->select('r.id, r.name') ->leftJoin('i.orderItems', 'oi') ->leftJoin('oi.order', 'o') ->leftJoin('oi.reseller', 'r') ->where('o.user = :userId') ->andWhere('r.id IS NOT NULL') ->setParameter('userId', $userId) ->groupBy('r.id') ->orderBy('r.name') ->getQuery(); return $query->getResult(); }

можно тоже самое на DQL сделать, но мне проще билдером

Ilya
07.06.2016
16:19:01
а если у тебя где-то по-соседству уже в кэше лежит кусочек информации, которая пришла бы в запросе

грех не заюзать ее и уменьшить траф

опять же не всем нужно подобное

кому-то и select * from table норм

Sergey
07.06.2016
16:20:18
ну я чаще делаю запросы и получаю DTOшки, там совсем кастрированная доктрина

Alex
07.06.2016
17:49:56
Так и не смог сегодня погонять ничего из-за работы

Новые деньги, мать их

Aleh
07.06.2016
18:28:28
типа из редиса достать? Так не проблема же

ну или in-memory, в этом и фишка ж, сущность вообще игнорит вопрос о том, откуда она или куда ей потом, этим занимаются отдельные инфраструктурные штуки

Ilya
07.06.2016
18:32:26
ну да, например, с редисом работать

сущности же еще правильно класть нужно туда

Google
Ilya
07.06.2016
18:33:24
они же обычно просто в сериализованную строку кладутся

а если подзаморочиться, то можно положить в лист с правильным порядком расстановки полей и уменьшить раз в 5 размер хранимых в редисе данных

и тянуть прямо совсем атомарно почти всегда из редиса

с моделями такое не сделаешь

Aleh
07.06.2016
18:38:37
они же обычно просто в сериализованную строку кладутся
так блин, ты можешь заюзать event sourcing, где евент у тебя будет очень простая структура данных аля - пользователь зарегался - пользователь поменял пароль - пользователь запостил что-то ... складывать это списком в редисе, а потом когда нужна модель просто восстанавливать по ивентам

фишка в том, что тебе с большего пофиг)

а можешь json агрегата полностью в монге держать

вот когда ты говоришь модель, ты же подразумеваешь active record?

потому что модель это ж все-таки не тольк это)

Ilya
07.06.2016
18:40:06
ORM

конкретные реализации

doctrine, propel, AR из yii и тд

Aleh
07.06.2016
18:41:04
ну так в случае doctrine у тебя простой объект

он же тоже модель

ну, т.е. часть доменной модели

и эта сущность вообще ни про какие sql ничего не знает

ну и опять же, модель может вообще к orm не относится

Ilya
07.06.2016
18:42:42
если в таком ключе смотреть, то тем более не нужны orm

Aleh
07.06.2016
18:42:45
если ты будешь сохранять в монгу или редис, у тебя уже не будет никакой orm

Ilya
07.06.2016
18:42:48
просто модель = класс

Google
Aleh
07.06.2016
18:43:03
ну не совсем

модель это совокупность сущностей и сервисов, представляющие что-то из мира бизнеса

http://t0.gstatic.com/images?q=tbn:ANd9GcR_BD83pqXSbXax5x9hYUWqqAzTXpYLG_blvXj7avCIggCKCaq9

Ilya
07.06.2016
18:44:03
я понял, что ты про ддд

моя модель из обычного mvc

Aleh
07.06.2016
18:44:40
так в обычном mvc за моделью просто стоит application layer

под моделью, не весь конечно, а именно тот объект, который является интерфейсом к каким-то бизнес-транзакциям

Ilya
07.06.2016
18:45:41
вообще стоит в ддд вникать углубленно?

Aleh
07.06.2016
18:46:12
если у тебя есть проекты со сложной бизнес-областью

что угодно, то да, очень классная тема

Ilya
07.06.2016
18:46:45
у меня в целом сложилось впечатление, что приверженцы ддд - это как веганы

всем рассказывают о том, что они на ддд

Aleh
07.06.2016
18:46:58
кстати, Тругве(автор mvc) в статье 2003 года как раз часто вместо модели использует "Domain model"

Ilya
07.06.2016
18:47:17
а каких-то примеров использования в крупных компаниях я не слышал

“twitter построен через ддд”

типа того

Aleh
07.06.2016
18:47:48
у твиттера как раз очень бедная предметная модель

у фейсбука тоже

ну, в плане там нет сложной бизнес-логики

у них другие проблемы

Google
Aleh
07.06.2016
18:48:07
типа нагрузки

быстрая доставка контента

Ilya
07.06.2016
18:48:56
ну в целом у меня тож самое

rtb на go + php

Aleh
07.06.2016
18:50:17
вот например в случае у @beerseller с теми же отчетами, если код выражает ровно то, что говорят специалисты(бухгалтеры и т.д.), тогда код легко подстраивать. Если ему говорят, что пеня это блаблабла, а у него как раз под все это есть именно так названные методы, он в явном виде это и записывает, а не здесь приджойнить эту табличку и просуммировать этот столбец, ага)

короче хз, для общего кругозора

Ilya
07.06.2016
18:51:52
хм

когда пилил на одной из прошлых работ ERP именно так и делал

называл классы и методы в бухгалтерских/hr-ских терминах

сейчас вроде хайп спал вокруг всяких методологий

Aleh
07.06.2016
18:53:22
@iGusev https://www.infoq.com/minibooks/domain-driven-design-quickly вот глянь, тут маленькая книжка, там с примером вроде аэропорта

Ilya
07.06.2016
18:54:47
106 страниц)

Aleh
07.06.2016
18:54:56
ну глянь первые 20 или 30)

там вроде страницы маленькие)

я не помню, емнип она маленькая

Ну как?)

zhikiri
08.06.2016
07:55:50
Цікаво, хто що думає про TDD?

Yura
08.06.2016
07:56:42
Стараюсь работать по BDD

zhikiri
08.06.2016
07:57:46
І як відчуття ? :)

Страница 6 из 1387