
F01134H
20.06.2018
10:43:52
Сергей, а можно пример плиз :)
или куда гуглить

Nurik
20.06.2018
10:44:19
Ну так и делают же уже. даже делегирование генераторов есть.

Sergey
20.06.2018
10:44:20
ну на вскидку.... что можно придумать

Google

Sergey
20.06.2018
10:44:38
но это не отменяет того факта что 99% php разработчиков считают это колдунством и магией
Сергей, а можно пример плиз :)
вот тебе такая задачка....
есть функция robot. Она идет. То есть генерит тебе новые координаты просто своего положения. Вызывающая сторона должна иметь возможность менять направление робота.
дальше уже можно мутить какие-то задачки на мультикурл

Dmitry
20.06.2018
10:46:35
потому что для 99% разработчиков в их работе им не нужно это все ;)

Sergey
20.06.2018
10:46:49

F01134H
20.06.2018
10:46:53

Nurik
20.06.2018
10:46:59
Для парсеров норм идут генераторы. Для краулеров всяких.

Dmitry
20.06.2018
10:47:20
да даже и симфони если... просто задачи все синхронные

Nurik
20.06.2018
10:47:32
Типа ленивость добавляем.
)

Dmitry
20.06.2018
10:49:22
Даже не в этом дело... а в том, что знания асинхронности им ничего не добавит в их работе. Вот информация о каком-нибудь ES - может, а о async - маловероятно ;) И вообще пока 99% не ведает, з/п у 1% растет ;)

Sergey
20.06.2018
10:50:14

Google

Nurik
20.06.2018
10:50:34
Ахах ) общий уровень среднего разработчика php очень низкий.

Sergey
20.06.2018
10:50:42
имхо нехвотает докладов на тему "какие же php-ники тупые"
точнее не так.... "недальновидные" или там "очень узкий кругозор"
но я не очень думаю что есть хоть какой-то смысл инвестировать свое время в подобные меморандумы, поржут и пойдут дальше на yii писать

Nurik
20.06.2018
10:51:49

Sergey
20.06.2018
10:52:43

Dmitry
20.06.2018
10:52:52
ES позволяет перейти в пониманию, что можно хранить не стейт, а историю

Sergey
20.06.2018
10:53:37
тут вон люди yii любят за крудогенераторы и сонату в симфони юзают, какой к черту ES

Dmitry
20.06.2018
10:54:13
во, видишь... там 99% было, тут уже 90% ;)

F01134H
20.06.2018
10:55:02
не понимаю, как можно любить yii
:)
хотя будь я говнокодером, который любит деньги а не кодить, то возможно и зашло бы

Dmitry
20.06.2018
10:55:32
yii замечательна, хренакс хренакс и работает ;)

Sergey
20.06.2018
10:55:34
а то что это думать надо - это как бы подразумевается но тож php-ники
опасно скармливать неподготовленным людям, которые толком не понимают что такой сайд эффекты, концепты типа ES
это как микросервисы где по итогу есть микросервис базы данных

Dmitry
20.06.2018
10:56:54
ну я скорее про то, что знание про ES в практике рядового программиста скорее пригодится, чем знание асинхронности... глядишь, в следующем проекте, где должна быть хорошо логируемая на изменения сущность, он и попробует что-то подобное для нее сделать

Nurik
20.06.2018
10:58:16
ES это EventSourcing или EcmaScript ? Чёт я запутался.

Google

Dmitry
20.06.2018
10:58:34
EventSourcing

Nurik
20.06.2018
10:58:44
Ясно, спс)

Dmitry
20.06.2018
10:59:11
про Ecma без номера версии странно говорить как-то было бы

Nurik
20.06.2018
11:02:57
Вот я хз, почему бы не использовать C# например для таких целей. Взять какой-нибудь EventFlow например.

Sergey
20.06.2018
11:03:06
у людей у которых не один запрос синхронно на процесс приоритеты уже будут чуть другими)

Nurik
20.06.2018
11:05:37

Bohdan
20.06.2018
11:10:57

Nurik
20.06.2018
11:13:54
Вообще в первое время очень страшно было после php, что процесс висит в памяти, и хрен знает что там происходит. И вот мне кажется что задачи асинхронности у php разрабов будут возникать чаще, только если он перестанет умирать. Потому что как бы в памяти можно хранить всякий мусор по началу, забить на атомарность операций, чтобы прочувствовать всю боль, когда у тебя асинхронно происходят всякие штуки в приложении.

Sergey
20.06.2018
11:20:20
демоны на пхп уже больше 10 лет пишут

Sergey
20.06.2018
11:20:25
еще с тех пор как 5.3 вышел

Artem
20.06.2018
11:20:29
вы вот про event sourcing-и всякие, а у обычного дно пхп-шника(по себе сужу) проблема вообще добиться хоть какого-то применение ООП, вместо статик функций в классах.
Тут на собеседование приходишь, говоришь "хочу ООП, хочу писать тесты", а тебе отвечают, шо нет такой возможности и "вам будет сложно у нас работать" Т_Т

Борис
20.06.2018
11:21:37

Artem
20.06.2018
11:21:43
ну про перезвоним - это всегда так говорят) Хотя не знаю, у меня не такой богатый опыт

Nurik
20.06.2018
11:26:06
в галерах, вообще никогда перехода от кол-ва к кач-ву не происходит. Вот никогда. Поэтому там впринципе рости некуда.

Artem
20.06.2018
11:32:13
на самом деле меня не жрали как раз за попытки, просто их скорее игнорировали, потому-что чтобы этим заниматься - нужна квалификация и опыт в этом. На самом деле в такой ситуации они даже пожалуй правильно поступали, потому-что квалификации ни у кого нет, а на живом проекте эксперименты ставить никто не даст.
Короче, жизнь сложная штука (внезапно!) :D

Google

Nurik
20.06.2018
11:37:30

Artem
20.06.2018
11:38:26
может быть отмазки. Да, нужна мотивация, мотивации не было - это правда и этого никто не отрицал вроде

Maksim
20.06.2018
11:40:45
охёпт) чёт триггер не сработал)
эти ваши async\await, es и прочий модный булшит кабину разрабам проламывают насквозь)

Nurik
20.06.2018
11:45:07

Maksim
20.06.2018
11:45:26

Admin
ERROR: S client not available

Maksim
20.06.2018
11:45:59
вопрос не в том, куда это сувать. А как и зачем это сувать. И вот тут начинаются проблемы
p.s. да, я один из тех мудаков, которые нашли куда всунуть и async\await, и cqrs, и es

Nurik
20.06.2018
11:49:23
Ну так почему сразу мудаков ? Если ты можешь обосновать себе и бизнесу зачем ты это заюзал, и чем это хорошо, то это как бы норм.)

Maksim
20.06.2018
11:50:33

Denis
20.06.2018
11:51:34

Maksim
20.06.2018
11:52:09
ушёл за попкорном)

Nurik
20.06.2018
11:59:56
Юзай раст))
На нем веб пишут ? Просто как бы фреймворк вроде есть. Но хз, что там.

Denis
20.06.2018
12:02:23
что-то там есть)

Батманов
20.06.2018
12:06:24
ребят, а подскажите реальные примеры использования паттерна наблюдатель? Ну то есть почему нельзя явно объявить какое то действие в месте, где событие регистрируется?

Sergey
20.06.2018
12:08:12
и почему нельзя?
регистрируются все же слушатели, события публикуются

Google

Sergey
20.06.2018
12:09:25
ну и лучше будет если ты попробуешь придумать зачем нужен наблюдатель, попробовать сфомулировать какие проблемы он решает и предложить свой вариант толпе. И смотреть реакцию. Будет продуктивнее

Maksim
20.06.2018
12:10:13
И стриггерится Фесор,который отправит гуглить что такое эвент)

Sergey
20.06.2018
12:12:14

Maksim
20.06.2018
12:12:31
Окей, пардон)

Artem
20.06.2018
12:18:58
Если надо проверить имя пользователя при создании на пустоту (правило - длина имени пользователя должна быть > 0) насколько я понимаю - это правило предметной области, а не проверка для сохранения инфраструктурой. То как это сделать? Проверять на входе пришедшие данные от пользователя? Писать в конструкторе проверку и кидать InvalidArgumentException('name is empty')? Но если надо показать сразу все ошибки?

Sergey
20.06.2018
12:21:44
> Но если надо показать сразу все ошибки?
продублировать
и еще разок на UI для формы
(если у тебя SPA или мобилок)

Artem
20.06.2018
12:24:26
ага, то есть таким образом предохраняем модель от коррапшена но и удобство пользователю оставляем.
Получается 2 разных ответственности - валидация и предохранение модели от коррапшена?

Sergey
20.06.2018
12:25:23
именно так
валидатор валидирует запрос и это правила относятся именно к запросу, а логика предметой области внутри модели оной
в этом и вся разница
дальше уже вопрос насколько ты заморачиваешься
для апишек можно просто исключения кидать и не дублировать правила, всеравно все эти же правила будут продублированы на UI для лучшего UX

Artem
20.06.2018
12:27:33
а вот ещё такой вопрос - что дальше делать с этим вот эксепшеном? По идее он не предназначен для показа пользователю. Это исключительная ситуации попытки повреждения модели, это наша внутренняя ошибка и пользователю в случае чего показываем просто "ой всё плохо"?

Sergey
20.06.2018
12:27:55
да
потому обычно приходится дублировать, просто повторюсь - таргеты валидации различаются
пример более менее понятный - описание необходимых данных для работы юзкейса