Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Event driven refactor #80

Merged
merged 22 commits into from
Jan 21, 2025
Merged

Event driven refactor #80

merged 22 commits into from
Jan 21, 2025

Conversation

Vaniog
Copy link
Member

@Vaniog Vaniog commented Jan 18, 2025

Что я тут сделал:


state.Context[State]

  • Обёртка над неким двусторонним соединением (у нас socket.io).
  • Утверждается, что соединение ассоциируется с пользователем и неким стейтом (в нашем случае *usecase.Room).
  • Не стыдно передавать в бизнес логику.

type state.HanderFunc[State WithID] func(c *Context[State], arg interface{}) error

  • Виденье функции обработчика события.
  • Удобный каст в обработчик функции с типизированным arg, или даже метода State.

Пакет event

  • Пакет событий пересмотрен.
  • Теперь usecase зависит от event, эти же сущности используются бизнес логикой.
  • event самодостаточный, (зависит только от domain). Я его воспринимаю как (к сожалению грустненькое) подобие протоспеки.
  • SDK клиента (например в e2e) соответственно пишется прямо поверх event

Задача сервера предоставляющего двустороннее соединение:

  • Желательно в .On принимать state.HandlerFunc[State]
  • Запаковывать контекст в state.Context[State] (User, Room, Log, ...)
  • Вызывать обработчик

P.s: Очень много вдохновлено gin, хотел добавить middleware, но пока хочется испытать концепцию, а миддлвары ещё одна очень нетривиальная задача

mikedegeofroy and others added 15 commits November 29, 2024 02:58
…aces in AnounceVote events. (#65)

* hotfix(seralization): Interfaces don't serialize properly

* fix(empty-room): Fixed error on empty result.

* updated golden files
* Tag: visible, order

* Update golden
all 2gis functionality has been removed
* Fix tags save (#71)

* Updated SQL requests, TODO: fix error in `RecommendPlaces`

* fixes

* fix db recommend request

---------

Co-authored-by: Vaniog <[email protected]>
Co-authored-by: Vaniog <[email protected]>
Copy link

Connected to Huly®: DD-218

@mikedegeofroy
Copy link
Member

Можем в дев сначала мерджать?

@AlexDyakonov AlexDyakonov self-requested a review January 21, 2025 15:17
Copy link
Member

@AlexDyakonov AlexDyakonov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

добро.

@Vaniog Vaniog merged commit 9b8527c into main Jan 21, 2025
3 checks passed
@Vaniog Vaniog deleted the event-driven-refactor branch January 24, 2025 23:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants