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

Sergey
08.11.2016
10:46:43

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

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
он тупо генерит рандом
ты можешь им писать в бд а можешь и просто строчку например сгенерить

Roman
08.11.2016
11:17:05
Если 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:27:37
Чуваки, которые обсуждали здесь 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
вообще надо просто популятор написать более адекватный

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