@prophp7

Страница 61 из 1387
Julia
08.11.2016
09:35:19
я даю платежу ID по сути только там

метод store мне там некуда запихнуть, вот что

Roman
08.11.2016
09:36:00
Я думаю, если тебе надо вылезть из тех рамок, в которые тебя пихает ларавель, используй валидатор внутри метода

Т.к. форм реквест тебе уже навязывает определенную структуру

Google
Anton
08.11.2016
09:48:53
@Enleur проверть вхождение ключевых слов в выдаче?))

Julia
08.11.2016
09:57:35
Сделал валидацию в функции, 5 строк, за это можно любить laravel

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

Anton
08.11.2016
10:47:03
почему?

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

Sergey
08.11.2016
10:56:47
работать с фикстурами как "запихнуть сущность в базу" тоже анриал

тяжело потом поддерживать

потому элис и говно

Anton
08.11.2016
10:57:22
так я и не хотел в базу пихать

Sergey
08.11.2016
10:57:30
тогда не понял что ты хочешь

Anton
08.11.2016
10:57:53
нужно было на основе сущностей нагенерить фикстур, погонять их в юнитах или функциональных, и убить нахер

Google
Anton
08.11.2016
10:58:18
фэйкер умеет их создавать, но он тут же их флашит

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

Roman
08.11.2016
11:09:17
еще вопросы)) если функция будет иметь очень много всяких проверок, их надо будет вынести за пределы этой функции (иначе много кода будет очень), в отдельные функции, которые я буду вызывать, куда их лучше всего складировать?
Никто же не запрещает тебе вынести валидацию в отдельные классы, и сделать реюзабельной. Закинь валидации в middleware, и юзай там например. Получишь некий аналог форм реквестов.

Julia
08.11.2016
11:10:39
Вот, хотел узнать, куда класть свои вспомогательные классы, так понимаю в middleware?

Sergey
08.11.2016
11:14:01
@fes0r что ты кстати думаешь по поводу "реюзабельности"? мне кажется из-за этого основные беды сильной связанности

Sergey
08.11.2016
11:14:59
и слишком сложному коду

или я тебя не так понял?

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

Anton
08.11.2016
11:16:25
@fes0r так фэйкер записывает в бд

Sergey
08.11.2016
11:16:42
@fes0r так фэйкер записывает в бд
фэйкер не записывает в бд, фэйкер это фэйкер

он тупо генерит рандом

ты можешь им писать в бд а можешь и просто строчку например сгенерить

Roman
08.11.2016
11:17:05
Вот, хотел узнать, куда класть свои вспомогательные классы, так понимаю в middleware?
Ложи их куда хочешь. Главное неймспейс правильно пропиши

Если middleware, то для них есть отдельная папка в ларавеле

Anton
08.11.2016
11:18:19
@fes0r https://github.com/fzaninotto/Faker/blob/4e81236d14da84c86f3e96561d689845bcf559ef/src/Faker/ORM/Doctrine/Populator.php#L77

Sergey
08.11.2016
11:18:35
вот и весь секрет успеха)

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

единообразие

Google
Sergey
08.11.2016
11:19:07
поддерживать проще, и фикстуры в целом можно использовать как смоук тесты)

Anton
08.11.2016
11:19:54
а, тип ты в билдер суешь именно значения, и они втыкаются в ентити?

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

к тому же не всем сущностям нужны билдеры

*доктриновским, а не доменным

Sergey
08.11.2016
11:23:39
> тогда тесты по кол-ву кода будут превосходить домен)) да не то что бы

> к тому же не всем сущностям нужны билдеры ну такое, не всем но тем у кого больше 2-х аргументов в конструкторе

> и они втыкаются в ентити? гугли шаблон "Builder"

прикол в том что билдеры можно реюзать

Roman
08.11.2016
11:26:51
Чуваки, которые обсуждали здесь CQRS и прочее. Посоветуйте, какие книжки курить, чтобы разбираться в этом более глубоко? И какие ресурсы читаете? Иногда когда читаю, о чем вы общаетесь, и слабо понимаю, о чем идет речь. Читать по кусочкам статьи, иногда не очень практично, потому что информацию сложно получить всю целостно. Ну и плюс, скоро мне задача предстоит, переписывать самописную систему. Я здесь типа за главного, и какого-то лида спросить совета нет возможности, поэтому хочется по минимуму на грабли попасть.

Sergey
08.11.2016
11:28:06
но лепить event sourcing или cqrs надо только тогда когда надо

главное правило - если хочешь сделать хорошо ты должен разобраться что ты делаешь

и тесты писать)

и "разобраться что ты делаешь" не только в техническом плане, но и зачем ты это делаешь (кому профит будет с точки зрения пользователей) и т.д.

если система существующая - почему было решено ее именно переписывать?

Roman
08.11.2016
11:30:22
Не так обьяснился. Переписывать, это я её хочу :) А так, её надо будет рефакторить на данном этапе.

Sergey
08.11.2016
11:31:06
Не так обьяснился. Переписывать, это я её хочу :) А так, её надо будет рефакторить на данном этапе.
"переписывание" - это крайняя мера которую стоит по возможности избегать

Roman
08.11.2016
11:31:23
Да я понимаю. Тем более, всё без тестов

Google
Sergey
08.11.2016
11:31:28
ну начни с тестов

только не юнит тестов

интеграционные, e2e

хотя бы минимально

Roman
08.11.2016
11:32:04
Да это все понятно. Мне больше про архитектурные решения, но чуть больше чем просто паттерны

Sergey
08.11.2016
11:33:30
https://gist.github.com/fesor/48677298a04357bb62ac0205f91603ab

можно с этого начать

https://www.youtube.com/watch?v=WpkDN78P884

Admin
ERROR: S client not available

Sergey
08.11.2016
11:33:58
можно еще вот это, книжки там мелькали

Roman
08.11.2016
11:34:05
Хорошо, спасибо

Sergey
08.11.2016
11:34:10
ну а по книжкам

Эванс, Фаулер, "Working efficiency with lagecy code" не помню чья

и главное при всем это KISS и YAGNI

SOLID и GRASP)

Sergey
08.11.2016
11:35:06
?

Sergey
08.11.2016
11:35:07
ну или "изолированный говнокод не говнокод"

Anton
08.11.2016
11:45:11
@fes0r ладно, убедил

но с популятором было бы проще)

https://github.com/giorgiosironi/eris можно было бы сюда его воткнуть, а так придется велосипедить

Google
Sergey
08.11.2016
11:58:57
@fes0r ладно, убедил
с популятором было бы проще но только для простых случаев

вообще надо просто популятор написать более адекватный

Anton
08.11.2016
12:01:07
хммм... если сделать аргументами - каллабле билдер, и ентити с аннотациями и валидацией, тогда это даже не костылизация будет, мне кажется

старина Боб очень быстро и не всегда разборчиво говорит :с

Sergey
08.11.2016
12:05:31
чта?

ну так не делай так как ты описал)

и все будет ок)

короч мое имхо - faker + билдеры = норм.

зато не тратишь время на булшит, мэппинги и прочее

да и генерить все это можно

потом

Anton
08.11.2016
12:08:30
я к тому, что в аннотациях ты описываешь валидное состояние сущности, и надо его скармилвать фэйкеру, чтоб он генерил нужные поля

Sergey
08.11.2016
12:08:45
ээээм

ну такое

если бы ты назвал это DbC то норм, а так - это лишняя работа

да и потом

в моем случае у тебя просто не выйдет сделать "невалидную" сущность

Anton
08.11.2016
12:09:17
наоборот, меньше лишней работы

Sergey
08.11.2016
12:09:35
нарисуй пример в gist

мой консерн - время которое я трачу на билдеры + фэйкер будет незначительно отличаться от прописывания аннотаций и прочего булшита

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