@symfony_php

Страница 155 из 1418
Sergey
27.03.2017
19:36:34
ну то есть...

User сущность у каждого проекта должна быть своя

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

и вот тут уже можно делать прикольные штуки

Google
Sergey
27.03.2017
19:37:16
и стратегии разные делать и много чего еще

Salem
27.03.2017
20:25:39
userbundle на 70% проектов хватает, если что-то хитрое, лучше без него

тут зато все просто, подключил, воткнул - админку завел

Sergey
27.03.2017
21:02:00
что означает что 80% кода этого бандла мне вообще нафиг не уперлось. И не хочу я что бы мои сущности имплементили какой-то там Userinterface

Dmitry
27.03.2017
21:41:10
@fes0r ярый противник FOS бандлов) Во всех больших проектах, которые разрабатывал совместно с командой симфонистов - никогда не юзали фос бандлов, ибо нафиг не нужно, было бы много костылей

Heorhi
27.03.2017
21:55:33
Спорно это всё.

Sergey
27.03.2017
21:56:40
Спорно это всё.
аргументируй)

ну то есть если тебе их хватает - ну ок

мне оно время не экономит а нервов потрепало немало

Heorhi
27.03.2017
21:57:44
Да, скорее так. Пока не было проектов где прочитав пару манов по фосу что-то не мог реализовать.

Sergey
27.03.2017
21:58:05
вопрос не в том "смог или не смог"

вопрос как

Google
Heorhi
27.03.2017
21:58:08
Я понимаю что зачаскую для мелочи он избыточный, но для быстрого старта самое оно

Heorhi
27.03.2017
21:58:29
Без костылей, стандартые "расширения"

Sergey
27.03.2017
21:58:50
Без костылей, стандартые "расширения"
ну тут еще зависит от того как ты пользуешься доктриной

если у тебя сущности это тупые хранилища данных и сверху есть настоящие сущности - то как бы и норм

тогда можно любой трэш спрятать

хотя будет не красиво

Heorhi
27.03.2017
21:59:31
хз, 1kk в сутки, норм.

Всмысле тупые ? Не совсем понял

Sergey
27.03.2017
21:59:52
анемичная модель

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

куда ты его положишь?

и какие геттеры/сеттеры для этого тебе понадобятся ;)

Heorhi
27.03.2017
22:01:25
слушатель на update ентити юзера, там правило валидации

Sergey
27.03.2017
22:01:35
хз, 1kk в сутки, норм.
вон вконтактик живет вообще с процедурами и не тужит. Не вижу корреляции количества запросов и качества кода..

Heorhi
27.03.2017
22:02:05
Ну я думал мы в конце-концов придём к тому что фос избыточен -)

Кстати, вот всплыл вопрос по кешированию. memcached vs redis = один фиг ? кешить буду ответы АПИ

Roman
27.03.2017
22:04:35
HTTP-cache первичнее

а сервер - похуй. берите то что умеете готовить

Sergey
27.03.2017
22:05:43
слушатель на update ентити юзера, там правило валидации
public function changePassword($oldPassword, $newPassword, $encoder) { if ($encoder->isValid($oldPassword, $this->password) { throw new PasswordMismatch(); } $this->passwordHistory[] = $this->password; $this->passwordHistory = array_slice($this->passwordHistory, -5); foreach ($this->passwordHistory as $password) { if ($encoder->isValid($newPassword, $password)) { throw new PasswordAlreadyHasBeenUsed(); } } $this->password = $encoder->encode($newPassword); }

Google
Heorhi
27.03.2017
22:06:02
Сейчас memcached на инстансах, смотрю в сторону redis кластера, есть ли смысл ?

Sergey
27.03.2017
22:06:08
1. явно 2. кохизив 3. легко тестить

Dmitry
27.03.2017
22:09:01
можно вопрос не по теме?) туплю нереально...

Sergey
27.03.2017
22:09:35
Кстати, вот всплыл вопрос по кешированию. memcached vs redis = один фиг ? кешить буду ответы АПИ
с redis-ом можно прикольные штуки вытворять в плане инвалидации кэша

а так зависит от стратегии кеширования выбранной

p.s. а почему не заюзать какой-нибудь varnish или подобные реверс-прокси кэши?

Dmitry
27.03.2017
22:10:06
пишу сейчас расширение для хрома, блин перестала форма реагировать на submit, не пойму в чем дело... $('.contact__form').on('submit', function(event) { console.log('WTF, man???'); }); тупо не отрабатывает



все, разобрался.. required поля если не заполнены (это никак не отображается) - submit не отрабатывает

Sergey
28.03.2017
05:40:32
анемичная модель
rest и анемичная модель друг без друга жить не могут

Jan
28.03.2017
06:08:38
Почему?

Sergey
28.03.2017
06:38:17
потому что тебе для крудов нужно раскрывать все поля сущностей, что несет за собой тонну геттеров и сеттеров в обход основным методам

Jan
28.03.2017
06:39:04
а DTO?

Sergey
28.03.2017
06:40:00
единственное спасение

da horsie
28.03.2017
06:46:20
Feedback request https://github.com/json-api-php/json-api/issues/4

Heorhi
28.03.2017
07:50:58
p.s. а почему не заюзать какой-нибудь varnish или подобные реверс-прокси кэши?
Исторически сложилось. Пришёл на проект, тут memcached, щас смотрю в сторону редис кластера

Sergey
28.03.2017
08:21:00
единственное спасение
Read Model построй себе и радуйся)

p.s. я серьезно подсел на идею дергать из базы сразу DTO минуя сущности и т.д. Пока даже забавно

Boris
28.03.2017
08:23:02
через рид модел и пдо фетч с объектом сразу?

Google
Sergey
28.03.2017
08:23:45
через рид модел и пдо фетч с объектом сразу?
ну тип того, только возможно придется чутка поразвлекаться с pdo а не тупо замэпить на объект (в основном когда тебе надо результат выборки засэтить на граф объектов)

https://github.com/fesor/api-example/commit/6afecee21f983e7db151752a0c0b8fb5ea4db4ce

ну или можно так

правда это пока мега сырой прототип

Boris
28.03.2017
08:25:15
моя прошлая контора тоже на рид перешла в этом плане,а то доктрина на больших объемах всю память выжирала и отваливалась

Boris
28.03.2017
08:25:59
они были =) ну там просто выборка 20-30к айтемов и ей сильно плохело

экстра лейзи и тд не спасало)

Sergey
28.03.2017
08:26:34
то есть 20-30К айтемов и потом вы делали еще и выборки по релейшенам?

Boris
28.03.2017
08:26:41
ессно

Admin
ERROR: S client not available

Boris
28.03.2017
08:26:43
=)

Sergey
28.03.2017
08:26:43
ну то есть N+1 запросов в базе?

Sergey
28.03.2017
08:26:46
кастомные гидраторы вас бы спасли)
отсутствие гидратора спасло бы

Boris
28.03.2017
08:26:57
ну там специфика такая туры , отели и тд

Sergey
28.03.2017
08:27:09
отсутствие гидратора спасло бы
увы приводить плоскую структуру в нетакую плоскую всеравно как-то надо

Boris
28.03.2017
08:29:27
ну там изначально упарывались по ддд сильно))

Sergey
28.03.2017
08:30:23
Sergey
28.03.2017
08:30:57
а запись?
а что запись? приходит DTO на вход, а там дальше билдеры, сущности все как надо. Ни тебе геттеров ни сеттеров

Google
Sergey
28.03.2017
08:31:06
максимум методы аля asId

ну там изначально упарывались по ддд сильно))
вот чисто для статистики, что есть упарываться по ddd?

Sergey
28.03.2017
08:32:01
Sergey
28.03.2017
08:32:31
в итоге ты делаешь анемичную модель поверх своего домена
ээээээм.... с чего это? бизнес логики в моих сущностях хватает.

Boris
28.03.2017
08:32:42
значит не имя базы знаний решили резко перейти на ДДД с МВЦ, на доктрину в полный рост и тд

Sergey
28.03.2017
08:33:09
в итоге ты делаешь анемичную модель поверх своего домена
ну то есть если следовать твоей логике то это не REST виноват, а это просто никогда у тебя не будет моделек без анемии

Sergey
28.03.2017
08:33:38
User -> UserDTO -> Rest resource -> UserDTO -> User

Sergey
28.03.2017
08:33:47
UserProfileBuilder -> User::updateProfile

просто представь что у тебя нет UI)

нет REST или web

Boris
28.03.2017
08:34:53
что значит "на DDD с MVC"?))))
значит были models, стали repositories\entities (doctrine)-> inside -< services как-то так

Sergey
28.03.2017
08:35:00
представь что у тебя есть соната

Sergey
28.03.2017
08:35:02
у меня есть крудогенераторы для ангуляров или реактов

Sergey
28.03.2017
08:35:37
или что у тебя есть фронт который делает таблички с формочками 1 в 1 как на базе

Sergey
28.03.2017
08:36:01
> или что у тебя есть фронт который делает таблички с формочками 1 в 1 как на базе ну так пусть прямо из базы и забирает

ему тут даже DTO не нужны, не говоря уже о промежуточном мэппинга не сущности

Boris
28.03.2017
08:36:27
это не ddd
что есть ддд, на этот вопрос я уже 3й год внятно не могу получить ответ, вот чтоб если а и б - то ддд, если а без Б - то не ддд

Sergey
28.03.2017
08:37:15
Sergey
28.03.2017
08:37:28
значит были models, стали repositories\entities (doctrine)-> inside -< services как-то так
вы просто логику из контроллеров размазали по сервисам и назвали это ддд

Страница 155 из 1418