Как же я заебался делать эти чаты…
Вот как это было - подготовили с ИИ из lovable всю инфраструктуру в БД, сделали таблички, добавили новый код в компонент, сделали всю логику отправки сообщений, подгрузки сообщений, просмотра чата и тд. Я думал, основная проблема будет в риалтайме - боялся, что lovable не умеет работать с websocket. Оказалось, на это вообще похуй - в supabase есть отдельный интерфейс supabase realtime, который позволяет риалтайм данными обмениваться между сервером и клиентом. С этим вообще проблем не возникло.
Проблемы нашлись там, где я их вообще не ожидал. Во первых, он промптов 5 не мог мне просто интерфейс чата зарендерить. Забыл, что у нас хэдер и панелька управления общие на всю прилу и их надо явно отключать там, где мы хотим.
Дальше он мне предложил настроить rls политики для новых таблиц в бд, мол, чтобы в чат могли заходить только участники (и это проверялось на уровне запроса в бд), читать сообщения могли только участники события, писать тоже. Я подумал, что идея вообще-то православная довольно, и мы погнали настраивать. Сначала поломалась отправка сообщений - проебывался chat_id при отправке. Потом почему то бд отказалась давать мне данные о чате, хоть я и участник. Lovable сказал надо фиксить авторизацию, а то мы auth_uid не так передаем. Я сказал что-то вроде “ну хуй с тобой, давай”. После этого авторизация отъебнула в принципе. Полез в консоль с томным вздохом, и увидел ошибку, которая описывать что что-то не по формату jwt. А у нас вообще то изначально авторизация не через jwt, мы это с ИИ обсуждали.
Тут я окончательно заебался, отключил все rls политики для новых таблиц, ресторнул работающую версию чата и решил, что следующие проекты на lovable я делать не буду.
Проблема стандартная у него, как и у остальных ИИ - он теряет контекст. И это у меня еще не большое приложение. Из-за этого, когда надо чето пофиксить, начинает вносить пулеметом какие-то изменения во всех файлах, после чего отъебывает что-то другое. И так как он вносит сразу много изменений - это супер трудно дебажить точечно. Из-за чего приходится полагаться на него полностью и умолять, мол “пожааалуйста, ну исправь проблему, умоляю”. Короче, получается неконтролируемая разработка, которая порой больше времени жрет на дебагинг, чем писать код вручную.
Так что я затарил курс на codefa.st у моей главной ролевой модели сейчас по имени Marc Lou, буду вспоминать код и следующие проекты уже делать вручую на стеке next.js+mongodb (ну или продолжу supabase использовать). А dayoff допинаю через lovable, попробуем качнуть, если пойдет движ - буду перерабатывать на новом стеке, если нет - прикрою проект и пойду новые запускать. Скорее всего уже не на РФ и с более явной монетизацией:)
Post #17
131