// личный канал‑лог
gavrilovlog
← все записи

Нет ничего более постоянного, чем временное

👁 516💬 3
Пишу этот текст на одном дыхании 😆 Есть вещи в работе программиста, которые стараешься максимально обходить стороной. Потому что просто не хочется с этим связываться. И вот одна из таких вещей это RxJS. Для тех кто не в теме, это библиотека для реактивного программирования. Всю свою жизнь я пишу в императивном стиле, хотя вроде как JavaScript является ассинохронным и под капотом просто требует использование реактивного стиля. Так уже около 7 лет использования NodeJS, я прошел путь от callback до async/await. И именно async/await в nodeJS принес ту самую императивность, к которой мы привыкли в других языках. Дак к чему это я все. Я всегда считал, что смогу избежать использования Observable на Node.js, поскольку он там вроде как не нужен совсем, это же больше для фронтов. Однако жизнь заставила вникнуть и изучить библиотеку RxJS, поскольку только так можно было реализовать функцию Stream из OpenAI SDK с поддержкой Server Sent Event. Я реально не нашел другого способа проксировать поток с OpenAI на Фронт в своем проекте. Поэтому сейчас эта функция выглядит максимально сложно и безобразно, с 10 уровнями вложенности через pipe и switchMap. Надеюсь этот ужас как-то можно отрефакторить, но вот какой вопрос, стоит ли это делать сейчас?! Если оно работает, то наверное лучше пока и не трогать. Так и живем, теперь эта функция останется на долгие годы в этом проекте 😆 @knowyourbackend @kyb_chat #Backend
6

Комментарии · 3

  • @gavrilovlog
    Спроси это у OpenAI 😄
    • @gavrilovlog
      Честно говоря, я его уже замучил с этими вопросами про RxJS )
  • @pewpewst
    Господи какая жиза, был целый проект на RxJs Причем не простенький, а нормальный такой бизнес, онлайн магаз Бэк занимался проксированием и синхронизацией данных, и еще пару мелких фич И все это в монорепе 🥲