📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

ПРОГРАММИСТЫ — ВСЁ. Claude Code пишет Микросервисы

Кирилл Македонский1:04:00

Transcription

Здорово. Я заметил, что когда речь заходит про вайпкодинг, первая реакция примерно такая, что, ну, какие-то лендинги простенькие может ваша нейронка сделать, а вот дай ей кэнд или какой-то большой проект с микросервисами посыпется и никого там не заменит ваш веб-кодинг.

Так что сейчас в видосе проверим, справится ли клод-код с написанием приложения из семи микросервисов. Насколько реально возможно писать такие приложения с нейронкой и выводить их в продакшн, масштабировать?

То есть давай я сразу вот покажу, какая схема примерно ожидается от сегодняшнего проекта. То есть это проект для бронирования созвонов, то есть как есть всякие там календли и так далее. Как раз я бы, может, такое и использовал, чтобы со мной люди созвоны ставили. Вот такие семь микросервисов. Единая точка входа: авторизация, само основное приложение и взаимодействие через Кавку с другими сервисами. То есть тут интеграция с Google календарём, допустим, как вот во всех таких аналогах сделано, сервису уведомлений и аналитиков, которые отдельно будут в другой базе данных храниться данные.

И под конец вот это всё, когда соберём и локально убедимся, что оно корректно работает, я это залью прямо на свой сервер. Ну, буквально вот план написать такой полноценный проект, который, ну, прямо будет на сервере, с которым уже глобально можно хоть пользователей заводить и чтобы они полноценно использовали это приложение. Посмотрим, получится ли сегодня такое сделать или нет.

И про стек забыл упомянуть. Всё будет максимально приближено к требованиям из реальных вакансий. То есть это будут фатапи сервисы, в которых будут там свои базы данных постгрес, где-то дис для шиширования, там селори, фоновые задачи для аналитики клиckхаус через кавку всё будет друг с другом взаимодействовать и деплоится через докер на отдельном сервере, как я уже сказал. То есть, ну, максимально боевые условия, как будто буквально пилим сейчас свой стартап и будем, я не знаю, подписку продавать на вот этот сервис бронирования созвонов. Ну а чего? Нормальная идея, в принципе.

Тему микросервисов, я думаю, тебе стоит отдельно изучить. Там базово спросить Жптишку. Вот в чём суть, там не усложняя, просто чтобы понимать концепцию. Ну вот по сути это те же самые, ну любое приложение, просто оно на несколько частей разделено и чтобы они между друг другом общались наиболее эффективно, то используется брокер сообщений. В данном случае кавка. Ну это просто вот буквально прослойка, через которую общаются сервисы между собой, если такая потребность есть. допустим, там создать уведомления или передать какие-то данные в аналитику, чтобы они были актуальные. Вот.

И, в принципе, давай уже переходить к реализации этого приложения. Я попросил GPT сделать мне промпт для клода. И вот такое он написал, получается, спроектируй, создай монорепа. То есть у нас будет один, в котором будут эти кучи сервисов. Можно полностью как отдельно это делать, но сейчас разницы нет. Это будут просто такие проекты в рамках одной директории. И они все будут со своим, по сути, докер композом, все на разных портах крутиться. Я прямо вот беру, просто копирую то, что мне GPT вставил и открываю клод приложение скачанное. Я купил себе сейчас за 100 долларов подписку Макс для этого видоса.

Так, у меня случайным образом я отображался всё это время клод-код. В общем, вот я ему скормил просто этот промпт, он почему-то начал отвечать на английском. Я ему сказал: "Пиши на русском". Вот как бы, видимо, это только следующим сообщением достанется. Конечно, это не прикольно, но о'кей. И почему-то он мне спрашивает, разрешаю или нет. Что значит all ones, если я специально в настройках выставлял? А, подожди, кстати, подожди. А, вотж всё это время был. А где где русский? Ну, это, наверное, язык интерфейса. Клод должен отвечать на русском. Ну, как бы очевидно. Это же просто нейронка. Но о'кей, это ещё пофиг. Подожди. АYP Permission Mod. Я же специально включил, чтобы он у меня ничего не спрашивал, а он просто берёт и какую-то хрень спрашивает. Ну, типа, очевидно, алло, просто делай всё за меня, ничего у меня не уточняй. Я не понимаю вот этого прикола. Ну, тут 36 минут. Это я просто его игнорировал минут 30. Зачем он у меня просит какие-то разрешения, я не понимаю.

Так, да, я нашёл это. Вот надо байпас поставить. Да, бахай байпас и погнали. Чтобы он у меня эту хрень не спрашивал. Типа мне-то какая разница, что он там запускает. Ну, типа, подумаешь, там комп взломает и, ну, я же синир Python разработчик, если новый куплю просто. Итак, он говорит, что он доделал. Давай ещё посмотрим, что тут происходило. Он на английском отвечал. Всё, а сервис сделал с регистрацией. Я сейчас это посмотрю всё прямо на уровне кода, что он там нашаманил. Так, postg instance analтик в кликхаусе. Так, вот так это запускается. Нужно какие-то настройки поставить. Так, и он неужели он сделал даже фронт? Короче, погнали смотреть уже вот в курсоре. Ну, просто в редакторе кода любом я этот проект открываю. И получается тут у него какие-то настройки. Не знаю, что это. А, ну это то, что я ему аллоу делал, но это можно убрать, потому что я ему теперь сказал: "Работай и всё, что угодно запускай через Bypass." Так. И получается, вот у нас наши все сервисы, микросервисы. И вот Docker Compost, который что он делает? Он их все запускает, я так понимаю, да? Вот а сервис и получается build у него должен быть, значит, вот здесь свой docker файл. Вот это он через этот docker файл билдится, но это просто питон, который через corn запускает эту фаста приложуху. Так, ну и тут, видимо, да, тут объект юзера и всё, что надо для регистрации, там, логина и так далее. То есть это именно, ну, вопрос двитишки нашей. Вот у нас secкюрити, я так понимаю, да? Вот создание декодирование GVT токена. О'кей, тут нормально. Так, где вот календарь сервис? Есть. Короче, в принципе, что если посмотреть, тут всё это есть. Наверное, я не вижу большого смысла сейчас пытаться смотреть в код. Давай я просто запущу сразу. То есть прямо как мне написал. Наш челик. Смотрим, что вви у нас. Не знаю, наверное, тут ничего не надо менять. Я, по крайней мере, на это надеюсь, потому что по задумке мы вообще человек, который с кодингом не знаком. В аналитику интересно посмотреть. Вот тут клиент кликхауса у него. Да. Вот так через прям сырой SQL он с Кликаусом взаимодействует. Тут БДшку создаёт как раз, ну, таблицу, вернее, этих событий для аналитики. Тут консюмер Кавки это читает. Тем временем у меня там докер поднялся, я его бил уже, да, дальше вот таким образом. И первая попытка поднять докер, поднять приложение. И здесь что-то непонятное, какого-то там битнами у нас нет. Ну, я делаю очень просто. Я копирую. Справь проблему. Я не могу поднять приложуху. Просто ему скармливаем, чтобы он, ё-моё, исправил эту хрень, потому что хочется всё-таки запустить, посмотреть, что происходит. И получается, фронт, я так понял, он тоже сделал. Я не знаю, кстати, тут отдельно, по идее, фронт надо запускать. А нет, у нас, если я правильно понял, тут Docker compнда запускает. Это мощно. Так, он починил этот образ, поэтому я то же самое иду, просто запускаю, на чём я остановился. И уже пошла шарманочка. Сейчас запустится. Посмотрим с первого раза, насколько вообще функционал оправдал ожидание, как выглядит интерфейс, насколько вообще эта приложуха может быть использована, ну, вообще как бы для реального приложения, для реального там стартапчика и так далее. У меня, короче, внезапно закончилась память на основном диске. Я переместил этот проект на SSD, и у меня упало упал Docker compost, хотя он и до этого там какая-то ошибка с кавкой была. Я по привычке в кодекс это скормил. Я думал, чтобы он просто меня проконсультировал по вопросу, можно ли на сэссдшнике вообще хранить. В итоге он начал абсолютно всё тут исправлять. И он, в принципе, исправил ту проблему с кавкой, которая была. То, что там не та библиотека была установлена. То есть вот типа просто хрен пойми, что клод поставил. Но я просто не ожидал, что кодекс начнёт это тоже исправлять, но уже ладно, типа, как бы не без помощи кодекса, но сейчас у нас поднимется и уже посмотрим работоспособность. Всё, как раз он досоздался. Он тут всякие докеры игноры добавил, чтобы у меня адекватно запускалось. И я прямо сейчас давай тогда запущу compil. Вот оно всё. Оно в кэше уже, потому что только что запускалось. Ошалеть. Вот абсолютно каждый этот контейнер запускается просто миллиард. Всё, там фронт запустился, во-первых, я видел. И фронт, кстати, я уже посмотрел мельком. Вообще мне не нравится. Так, что тут? Фейт всё нормально, я не понял. Где-то я фейлит, как будто увидел. Да-да. Да, вот это что? Operation not permitted. Что-то ему не нравится. В кликхаусе уже getemм Полиси. Database not exist. Что там всё падает, я не понимаю просто. Absolutely not recommended closing connection. Логи мне не нравятся абсолютно. Ну, notтите, короче, какая-то Давай я просто скормлю это к лоду и спрошу, можно ли это вообще уже запускать. работает оно или нет, или это какая-то Просто ему вот так делаю. Проект мне поднимается, проанализирую ошибки, да, вот, чтобы оно всё работало. Ну да, и мне, в принципе, можно даже логи ему не скидывать. Короче, вот так минимально ему скормим и пусть идёт сам уже всё пробует запускать, чтобы оно всё было безупречно, как я ему в промпте и написал, чтобы я уже пошёл, блин, протыкал функционал, который он сделал. Подожди, я его сразу стопну. Вот он опять отвечает на английском. Вот это я вообще не выкупаю. Отвечай. Всё на русском. Надо, наверное, какую-то глобальную настройку поставить. Ну всё, теперь я точно всё запустил. Мне клод помог, сказал ещё переместить на маковский диск, а не SSD этот проект. И сейчас никаких ошибок нет. И даже вот здесь уже, ну, App Gateway поднялся Jinx, и он сделал, получается, ну, запросы проверил то, что наши сервисы работают. Вот у каждого сервиса есть Health Endpoint, ну, который буквально, если он надаёт 200 ОК, значит, этот сервис работает, значит, он смог обработать этот запрос. И вот он почему-то каждый, я не знаю, не знаю, видимо, 3-5 секунд опрашивает эти сервисы. Но пойдём смотреть, то есть, что нам по сути нужен local host. И тут уже можно писать любой сервис. То есть, если посмотреть вообще, как работает engin >> вот infra. Тут, кстати, постгрес ини тут зачем-то, но о'кей. >> Тут даже doerфайл под engin и получается, давай посмотрим, что тут есть. Вот он берёт каждый этот сервис, пробрасывает. Это из докера берётся. Ну и вот таким образом он опироутит me. Ну да, он пробрасывает, в общем, каждый сервис вот так стучатся, условно, я так понимаю, Booking сервис как в Свагер зайти, типа, типа вот так получается. Почему нет? Сервис нет, вообще не хочет. Так, почему-то пока что он нормально не заходит. Хотя, казалось бы, что мне там GPT пишет, что после вот этого запроса, который я ему сделал, мне надо вот таким образом проверить здоровье сервисов. Ну давай. Нет, он не хочет, кстати, host может 8.000 ему надо прописать или какой у меня там порт. Он просто на фронт меня теперь. То есть куда бы я ни зашёл. Что это за приколы? >> Ну о'кей, давай даже если кул попробовать, как мне GPT пишет. Ну типа да, не получается законнектиться. То есть вот проблема есть. Gateway не работает. А если вот так просто, да, вот просто а в сервис через порт я могу обратиться. Даже мне тогда в таком случае интересно. 8.001 и docs. Я просто хочу посмотреть именно swager. Да, тут уже прогружается. И вот всё у нас есть логин, есть регистр. Это всё мы в отдельном сервисе делаем, чтобы не нагружать всё приложение в целом. И вся регистрация летит чисто сюда. Это мы можем вынести вообще, в принципе, на другой сервер. И в этом и суть. микросервисов, но не работая а gгateway, то есть, чтобы, ну, сейчас у нас пользователь там фронтend должен знать, что ему надо там хоп на 8.001 стучаться для авторизации, потом хоп для основного приложения для букинга на 8.002, а если у нас порт поменяется, то всё, там тоже менять теперь фронтендером. То есть очень много проблем может быть. И как раз мы для этого Engin добавляем, чтобы он вот так проксировал. >> То есть, чтобы вот Analytics Health - это было абсолютно то же самое, что 8.000 Health. Но сейчас не хочет у нас это работать, >> поэтому давай докопаемся до так называемого клода. JinС вообще не работает. И 8.4 не работает. Доведи до момента, что все сервисы поднимаются, и я могу до них достучаться. Затем перейдём к более детальной реализации свого кода, потому что по плану GPT, который я, кстати, вот не знаю, он восемь промптов мне написал, в принципе, видя, что клод реально сейчас, ну, чуть-чуть сыпется, проблемы возникают. Может, это реально оптимально вот так на восемь промптов разделять, но как будто, ну, в вайпкодинге хотелось бы, чтобы это всё в один промт он мне делал эту приложуху. Я потом уже пошагово ему показывал, там вот такая-то ошибка, исправь. И по сути он, я думаю, может так сделать вполне себе. Но сейчас просто я иду вот по плану GPT и вот сейчас подумал, что на самом деле, конечно, интересная тема. Вот просто реально GPT скармливаешь контекст, а он выстраивает брампты, чтобы вот этот как бы мне GPT сказал воспринимать его как джуна, которым я управляю, даю ему задачи. Вот, чтобы этот джун уже корректными промптами двигался, ну и в в процессе всё равно исправлял вот какие-то проблемы, которые возникают без них, видимо, никуда. Кстати, я тут пока решил авторизацию проверить вообще, в принципе, насколько что-то работает. Вот я пользователя зарегал, отправил вот такой запрос, и кажется, что успешно. Вот у него там айдишник нулевой. Сейчас его же залогиню. Тоже user example. И да, он с логинит нормально. И ас токен выдаёт. И по идее сейчас могу в других сервисах вот с этим аess токеном пользоваться. То есть, допустим, list slots я по идее не могу вызвать, мне скажет втора. Если я из Авсервиса авторизуюсь, то он говорит, что всё чётко. Кстати, вот мне интересно, в общую базу данных смотрит или в отдельную? Вот это важный момент. Если в общую, то это хреновый паттерн, и надо это исправить. Будет ему сказать, чтобы, ну, database perвиice был па. Так, он говорит, исправил проблемку. И при этом, оказывается, там у нас фронт. Ну, фронт работает, но это просто ужас, если честно. Что это просто? Что это за бустп дешёвый? Это просто отвратительно. Ну, допустим, давай я залогинюсь. Реально, кстати, интересно, вот как тут происходит подживитишки, типа, наверное. Я вот даже открою F12, посмотрю, куда сейчас запросы полетят. Вот этот пароль я вижу. Да, у меня залогинилось. И куда оно летит? Вот давай посмотрим. Да, он реально летит в другой микросервис просто. Ну, то есть это по сути тоже, что мы и ожидаем. То есть local host - это у нас проксируется как раз-таки. Вот сейчас я могу сделать, получается, не 8.001, а local host of docs. Нет, не могу. Подожди. Свагер он проксирует. Я хочу условно на host of dog зайти. Короче, в принципе, мне уже нравится, что мы отправляем запрос и у нас шлётся в нужные микросервисы. А, ну вот, кстати, это уже наша приложуха просто с дешёвым смешным интерфейсом. Типа я залогинился, у меня отправился запрос в микросервис авторизации. Он сказал, что всё, я успешно залогинен. Вот токен. И этот токен себе уже фронтенд сохранил. И на все следующие запросы отправляет. А отправляет он уже абсолютно в другие сервисы. То есть вот он сделал запрос, чтобы получить слоты доступные. То есть вот он сделал запрос, чтобы получить слоты. И он шлёт его именно на букинг, то есть не на авторизацию, а букинг - это уже другой микросервис, который у нас запускается вот здесь в Докеркомпоусее общем. То есть вот так. Booking в отдельном сервисе вот отсюда он пробрасывается из Docker файла и уже запускается отдельно через UVCorn на вот своём порту, но фронт у нас стучится именно к нему, потому что у нас вот так вот микросервисы реализованы. И даже вот у нас есть аналитика, и он сразу, ну, сразу в общий интерфейс сделал. Это, конечно, уродливо всё это. Вот отдельно я бы фронтенд попросил доработать, потому что, ну, реально это какой-то детский просто сайт некрасивый. Можно сделать лучше и аналитика почему-то на той же странице, но в любом случае вот у нас один создан. Я, кстати, не знаю, что создано. Я ничего не создавал, но оно, видимо, само. Ну, а что если я нажму бук? Опа. А, но он перезапускал, потому что он всё перезапускал, чтобы у меня был теперь свагер. >> Короче, сам факт прикольный. У нас есть микросервисы, и у нас приложение стучится в разные сервисы, как я сейчас продемонстрировал. И вот это уже радует. По сути, остаётся сейчас функционал проработать, который мы изначально хотели, чтобы там кавка была, вот это всё синхронизировалось корректно. Вот сейчас, кстати, надо посмотреть вообще, может, уже кавка есть. Возможно, статистика уже обновляется как надо. Просто сейчас довести функционал до полноценной работоспособности и улучшить интерфейсы. По сути, уже на самом деле это готово будет. Ну, смотри, вот мне GPT пишет сейчас я типа должен промпт клоду скормить, чтобы апи работал сценарий, там регистр логин, получить GVT, он уже работает. То есть клод в этом плане он пошёл, типа он сразу сразу больше, чем надо сделал. И у меня ни черта не работает. Давай опять через терминал я попробую. Условно, если я вот так делаю, работает. Если я делаю вот так, не работает клод. Почему? Я не понимаю. Ты не можешь адекватно проверить, как человек не работает. Опять сломался Джинкс. Давай. Он в очередной раз починил. Обновляю. Ну ничего просто не работает. Я не Короче, он на 8080 всё сделал. Поменял всё на 8080. Теперь я понял. А сам local host. Давай ещё раз frontнд посмотрим. Залогинюсь и проверю, что сейчас работает. Типа, надо ли ещё раз что? Что от found? Я не понимаю, но только не говори, что он стучится на старые. А, ну, видимо, как раз он. Да-дада. Наверное, вот эту тему просто надо сейчас Хлоду скормить. Но, в принципе, давай это сделаем. Пусть он уже всё это разрабатывает. Мы увидели, что микросервис у нас нормальный есть. >> Всё, просто скармливаю его промпт от ГБТшки. Короче, всё он сделал. Давай посмотрим функционал, что работает и код, который он написал. То есть там, например, readyк вот этих двойных записей должен быть. И потом уже я попрошу интерфейс сделать более красивым, потому что это, ну, самое главное, правильно? Так. И получается, тут он скрипт написал, который всё разом проверяет. Я надеюсь, он мне написал, как его запустить. Вот так, видимо, через gatewayй. Погнали. Оба, оба, оба. Всё, все девять шагов он тут прошёл. Повторная бронь того же слота - это 409. Найс. А, ну да, он блокирует на момент букинга этой записи. Он сразу блокирует эту рейди за запись, чтобы никто не написал больше, чтобы в один и тот же момент люди не могли бронировать. Вот в чём моментик тут основной. Ну и выставляют уже, в принципе, статус. В принципе, создаёт запись то, что он забукал. Это получается, кстати, смотри, это это ультра суперстранно. Он просто пишет всё в энпоинте. Что за говнокод дичайший? Он просто с базой данных работает в нпоинте. Подожди, вот сейчас вообще не выкупил. Мы же начинали с того, что он что-то там сервисы репозитории сделает. Я нигде не писал, что надо сервисы репозитории, но это же абсолютно очевидная истина. Ну то есть глобально это функционал там работает, наверное. >> Типа вот я пишустринг, всё работает. >> Вот эти созданные, я так понял, это то, что я скриптом создавал. >> Но давай я даже возьму, я не знаю. 2306 2026 капец тяжело. Так, он создал стата. Что произошло со статой? >> Это через запро А это он запросил новую стату. Но, кстати, ничего же не поменялось. Ничего не поменялось, заметь. Ну-ка, подожди ещё раз. Сегодня, послезавтра. Бам. Да, ничего не меняется, потому что кавка не настроена, потому что у нас сервис аналитики, он в другом сервисе, на другом сервере. Его надо доставлять через А нет, это вот мне надо бук нажать. А это я просто как это я как создатель добавляю слот, что в это время я свободен. И вот тут условно пользователь должен его забукать. Это очень, понятное дело. Странно, что оно всё просто на одной странице. хотелось бы разделить. Можно это попросить, в принципе. А, ну и вот, да, я сам себя букаю. Ну да, я понял. И статистика, в принципе, обновляется. И она прямо через кавку, я так понял, это делает. Но я бы хотел ещё, чтобы он кавдроп добавил, чтобы я посмотрел. >> Смотри. Ну, короче, есть две проблемы. Вот я бы хотел посмотреть в Cdдrop сразу, чтобы в интерфейсе, какие отправляются Кавка сообщения, чтобы видеть, насколько вообще корректно у нас взаимодействуют микросервисы друг с другом. Ну и, конечно же, вот это исправить, это просто ужас. Вот за это убьют просто на проектах, на кодрев. Просто это просто жесть. Клодко, это это же очевидная база. Любой джун понимает, что надо писать в сервисах и репозиториях и в НДинте не надо писать работу с базой данных. Давай пошагово. У тебя впоинтах намешан лютый мусор. Внедри слоистую архитектуру с сервисами с разделением на сервисы и репозитории. Очевидно, впоинте должно быть работы с БД. Ну, всё, вот так пойдёт, пусть исправляют. Да, кстати, вот тут эта тема с продюсером. Вот меня ещё тоже очень бесит, что тут, ну, какой-то супер запутанный код. Вот что это? Get продюсер с нижним подчёркиванием, которые глобальную используют что-то там if not. >> Ну, это очень тоже странно уже выглядит. Емит, что это? Зачем? Зачем так сложно всё? Что такое емит? Можно как бы на более понятных словах, но это типа вот он отправляет отправляет сообщение. Почему эта функция называется емит? Я не понимаю, что это. Емит просто чел какое-то название придумал в мейнфайле. Это всё происходит. Подожди, тут тут же по стапело создаётся. Это просто всё в одном файле. Ну да, вот всё, он сейчас вынесет в слои адекватные уже. Ну код ужасно пишет из того, что сейчас заметно. По факту, учитывая, что оно работает, вопросов-то и нет, если вайпкодить. Но если мы говорим про то, что ты как программист на работе будешь этот инструмент использовать, это ужас, потому что тебя, ну, захейтят коллеги. Поэтому код, видимо, надо, конечно, ревьюить плотно очень в этом плане, либо скармливать ему заранее правила, но я думаю, даже с правилами он будет писать херню неоднократно. По крайней мере, я с этим сталкивался, когда вайпкодил на работе на реальных проектах. Смотри, вайпкодинг - это хорошо, но просто за факт использования нейронок деньги тебе платить не будут. Тебе точно также надо находить работу, обучаться этим навыкам, чтобы понимать, что делает нейронка. И об этом всём я рассказываю в своём Telegram-канале. Там же в закрепе ты найдёшь бота, в котором есть гайд, как двигаться вообще в питон разработки пошагово, там за полгода прийти оферу 200-300.000 руб. И там же гайд на прохождение собеседований. Также там будет гораздо больше контента про использование нейронок, чтобы делать свою жизнь, в принципе, легче и лучше. Например, если там пролистать, недавно был пост, видос, как сделать Telegram бота с чатом GPT, где там пошагово ключи подключить и так далее. Так что переходи, подписывайся. Он прямо достаточно быстро секунд за 20 изменил. Давай посмотрим. Ну вот смотри, почему он это не выносит в константу? Ну почему? Это же очевидная тоже вещь, что не стоит вот какие-то такие фиксированные штуки писать хардкодом. Вдруг я этот статус изменю потом в базе данных на, я не знаю, вот такой avilab и а тут этот код уже не будет работать. Короче, по качеству кода на самом деле, ну и вообще не оптимально всё. Вот тоже. Что это за комментарии? Это очень странно. Вот это тоже просто комментирует файл. Ну, типа, на работе будет странно, если такие комментарии будут встречаться. Но, в принципе, о'кей. По факту всё. У нас функционал бэкэнда работает и код, ну, хоть как-то мы исправили, подулучшили. Поэтому сейчас я пойду интерфейс уже сделаю и скормлю ему как референс примерно вот такой стиль, который в прошлом видосе был. Ну, чисто такой вот минималистичный, при этом кайфовый, красивый. Короче, вот такой промпт я ему написал, чтобы он, ну, сделал просто в красивом стиле, минималистичном. И сейчас у нас всё в рамках одного, получается, одной страницы. То есть тут на странице этот же пользователь создаёт слоты, тут же он видит аналитику, тут

же он эти слоты может забронировать. Типа, ну, я не понимаю, что это за бред, почему пользователь сам свои же слоты бронирует, когда это должно работать по-другому?

Что другие пользователи бронируют слоты с ним. Я, наверное, тут же попрошу просто другую сессию кодекса, чтобы он сделал сюда кадроп. Добавил нужен интерфейс, чтобы видеть, какие сообщения отправляются, обрабатываются. То есть так в целом, если подумать, то, конечно, нейронка ленится, она с первого раза делает просто всё в рамках одной страницы. Функционал не такой полноценный, как хотелось бы. Вот он только сейчас эту, ну, такую модель приложения делает, то, что один пользователь бронирует слот с другим, хотя это очевидно, зачем пользователю с собой же слот бронировать. И поэтому, конечно, надо добивать его дополнительными промптами достаточно немало, я думаю, и чтобы всё работало, и чтобы качественно было реализовано.

И ещё момент я сейчас заметил, то, что по сути у нас всё через один docker compose файл запускается. Ну, типа, буквально он поднимает тут ready, скавку, кликхаус и потом просто на их основе ещё другие сервисы. Но это же по сути не особо микросервисная архитектура. Он, ну, всё равно в рамках одного Docker Compost файла поднимает. По сути, это микросервисы в моём понимании они должны быть буквально на там разных репозиториях в разных серверах, чтобы можно было разместить. А здесь абсолютно непонятно, типа, как ты на другом сервере разместишь условно букиing сервис, если он находится в рамках вот этого одного приложения callбкиing, которое через вот этот docker compose запускается. То есть это монолит. Вот это мне максимально не нравится, потому что суть-то видосов в том, чтобы микросервисы сделать. Поэтому, походу, я сейчас докопаюсь до лода за это после фронт, когда мы это доделаем, чтобы, ну, прямо вот полноценная микросервисная архитектура была, а не просто какой-то детский пример и чтобы там база данных своя своя под каждый сервис была. Ну, то есть все паттерны микросервисной архитектуры и взаимодействуя через брокер сообщений. Вот это сейчас обязательно надо будет сделать. Ну и как раз посмотрим, справится или нет. Может, он поплывёт просто в моменте и так далее.

Так, достаточно долго это всё происходит. Фронтенд он всё ещё делает, но это ладно. Я там его всё-таки очень много попросил исправить. Кавдроп он уже добавил. Я не знаю, на самом деле, запущено ли приложение. Запущено. Опа, антикуа. Что это такое? Вот это я понимаю стеёк уже пошёл. Вот это уже нормальная тема. Антикуа. Вот это прямо кайф. Почему аналитика доступна даже человеку, который не авторизовался? Я не представляю. Ну ладно. Пользователь 2. Чего? Кто это? Нет у меня таких пользователей. Он просто рандомные данные какие-то выдал. О'кей, создано броней. Давай, в принципе, или можно прям вот бук мне бук надо сделать. Я смотрю, какие слоты имеются. Допустим, имеется слот. Подожди, а что мне надо тут передать? Вот бук слот просто. Слот ID. Так, а что тут? Слот ID, типагу, >> условно вот пусть 10 будет. >> Передаю [откашливается] слот ID invalidor expired token tilt. Надо просто залогиниться. Token беру и тут авторизуюсь, чтобы запускаться. Всё. И сейчас должно забукаться. И мне просто хочется посмотреть вот тут что у нас есть. Book created. Тут даже отменённые есть. И вот Book created. Я бы посмотрел. Вернее, не срча, а вю, я так понял, можно сделать.

>> Так, вот у нас в три это что, полтора часа назад было, не? А вот они тут так идут. >> То есть вот эта тема 10 минут назад была, офсет у него двенадцатый, и сейчас должен появиться тринадцатый офсет. Это сообщение. Ну, короче, в принципе, суть видна то, что вот такие кавкасообщения создаются, которые, ну, booking create. Давай посмотрим, кто читает это в сообще в в приложении Кавка Topic Created. Ну, вот, кстати, смотри. Ну, почему вот у меня есть даже N в переменная отдельная, в которой есть это значение booking create. То есть это не захардкожено. Мы сделали отдельную переменную, но он всё равно использует просто вот это. Что ты делаешь, бро? Почему так? Почему ты их хардкодишь? Да вот и он, получается, >> build consumer, он конюмит эту тему, да, и когда приходит сообщение, он его сохраняет себе в кликхаус. >> То есть selfреп - это уже работа с кликхаусом. Я так понимаю, что можно нажаться, да? Вот тут он, получается, что делает? Returnit. А, ну вот insert event, то есть вот таким образом он записывает в клиckхаус. Тут, конечно, очень запутано всё, но, ну, возможно, тебе так покажется. Хотя, по-моему, всё равно очевидно. Но всё. Вот суть в том то, что у нас вот эти кавка сообщения отправляются. Давай я всё-таки уже забронирую то, что я тут хотел. Execute. Не могу забукать свой же слот. Да, блин, а какой мне я могу? Вот айдишник четыре. У него овнер другой. За броню, допустим. Что там ещё было? Вот седьмой есть. Давай седьмой. Всё, я забукал. Обновляю. И должен появиться пятнадцатый. Да. Ну вот, в общем, кавка сообщения создалось. Сервис аналитики его подтянул и сервис календарей его подтянул. Все, короче, кому это надо, они подтянули. Вот там уведомление тоже это взяло и там селари задача отправила, допустим, на почту пользователю, что всё, вот такая встреча назначена, такой созвон назначен, и вот так оно через кавку, когда создаётся там слот бронирования, сразу, во-первых, в Редисе блокируется, чтобы таких два слота не забронили, и в Кавку отправляется, чтобы другие сервисы исполнили свой функционал. Вот это как бы по задумке микросервисная такая архитектура, которая по факту, как я уже сказал, внушает какие-то сомнения. И сейчас я докопаюсь до клода из-за этого. И, кстати, я так заметил, я типа даже гит репозитории не создал. Вот это мне не нравится, потому что, ну, хотелось бы вносить изменения, поэтому давай я сделаю гинит и сейчас создам в гите репозиторий. Сделаю это прямо на запись, может, тебе будет полезно. New >> и callbooking. Не знаю, зачем я на английском пишу, я из Англии. Всё, создал репа. Git remote от Origin. Я его вот так привязываю, потому что у меня два аккаунта через SSH подключено. Донски IT calling. Ну, типа, условно, как вот здесь написано через SSH. Вот такой у. Я его же прописал, только вместо github.com я прописал вот такое значение, потому что при создании SSH ключа я его указал. Так. И всё. Я делаю GTA Gitc - Montend плюс micросервис. Ну просто условно так. Не будем заморачиваться и в мастер отправим эту приколюху. Пусть будет в гите. Всё, оно тут есть. Остаётся вопрос микросервисов. Ну, вернее, посмотреть наш интерфейс, который я сделал. Ну, собственно, вот он есть. Ну, допустим, забьём на то, что аналитика для всех доступна. Ладно. И Кирилл. Почему Кирилл? По умолчанию. Ну ладно. Вот, по идее, отсюда я просто возьму этот логин и стринг. Let's go. Или не Let's go. Ну, смотри, что произошло. Подожди. Подожди, я сделал вход и ничего не произошло. Нет, я типа залогинен. А что дальше-то? Я залогинился и ничего не поменялось. Только справа сверху надпись. Никакого нет. Охереть. Я тут смотрю, у нас Клод, он типа в реальном времени вот запустил этот фронт, что-то там под какой-то учёткой Диметрией залогинился. Публичная ссылка у него есть. Вот он может слоты добавлять. Но это прикольно. Он просто тут сидит, открыл какой-то интерфейс и проверяет. По-моему, такая шняга MCP называется, но я не вайпкодер, не шарю за такие приколы. Ну, типа, когда он сам может смотреть какой-то функционал, проверять, работает, не работает и вносить исправление. Это MCP. Вижу баг. Ну просто вот чел вот просто выдал мне с багом. Вот. Ну то есть он просто мне выдал фронт, который ничего не делает после логина. Ну что это? То есть, ну как почему? Просто почему он не проверяет сам это сразу? Короче, всё, погнали. Я проверю, работает ли логин. А, ну всё, я залогиен уже сразу. И вот у меня публичная ссылка. Мои брони. Давай всё это поотменяем к чертям. Кстати, меня бесит, а зачем тут отменённые показываются? Это же ультранеудобно. Ну, допустим, ладно это сказать Клоду, чтобы он убрал. Вот тут тоже мне нравится. С 10:35 до, короче, минус2 часа просто бронь. Прекрасно. Что это? Страница записи. Хозяин. Что такое хозяин? А, в плане моя же страница. Гости будут видеть её именно так. Вот забронить можно. В смысле, что такое хозяин? Ладно, давай я открою другой браузер сейчас, чтобы посмотреть, как это будет. Почему чела хозяин зовут? Давай, допустим. Ну о'кей, давай войдём в аккаунт. Я не знаю, какие учётки есть. Давай я зарегаю любую. >> Вот у меня A сервис, я просто беру регистри А, ну я же могу тут зарегистрироваться. Точно так. Ну я хочу, собственно, вернуться на аккаунт того челика и забронировать. БМС я забронил. Тем временем, кстати, по идее, должна была произойти кавка сообщения, да? Вот user ID19. Ну, это, короче, с юзером ID2 >> забронено. >> Так. И получается, >> и тут я должен вот увидеть то, что бронь. А вот почему я не могу посмотреть бронь? Так должна была появиться. А, да. А я вот это не понимаю, что это значит. Что это такое? Бронь, моя доступность. А бронь - это что? Буквально. Но это очень странно, то, что я не понимаю, на какое это время я что-то забронировал. Ну, допустим, это ещё в один пробт можно пофиксить. Но суть в том, что всё, у нас есть кабинет, где мы там ставим созвон. Тут, я думаю, точно надо добавить, чтобы можно было зайти сюда, тыкнуть, посмотреть, что это за созвон, добавить описание, добавить ссылку, где он будет происходить. В принципе, сейчас мы календарь прикрутим и это и добавим. Вот. Но суть в том, что всё, у нас есть пользователи, которые друг с другом могут ставить созвоны, обозначать свои слоты. Можно сюда подписочную модель добавить, как Коленли или там Планёрка работают, и всё. Вот тебе и стартапчик. Просто с клодом за буквально час можно сделать. В принципе, в этом плане, как будто сейчас всё, аналитика, кавка, всё это работает. Пойдём, докопаемся до микросервисов. Сейчас по плану я докопаюсь до микросервисов, потом вот эту тему добавлю. Хотя тут аналитика уже работает. Нотификации я не уверен, что работают. Как раз это и добавим. Пусть в личный кабинет сразу приходит уведомление. А календарь у нас как раз он не добавлен. Вот его тоже добавим, чтобы оно всё читало кавку и отрабатывало. Да, я прямо сделаю вебсокет соединение, чтобы вот здесь прямо где-то сразу уведомление всплывало, что всё, у тебя пользователь забронировал, чтобы оно через вебсокет так взаимодействовало и прямо в реальном времени не надо было страницу даже обновлять, и мне приходило вот это уведомление. Конечно, много ещё есть чего добавить. Короче, вот Клод ответил, что не знаю, как это сейчас убрать. Он тут написал, что в целом оно плюс-минус ещё нормально, но есть как бы странные моменты вот эти три, типа, которые как раз-таки сильно связывают эти сервисы. А, ну вот это монорепы, которые мне GPT сказал реализовать. Короче, то, что у нас общий Docker compose, в этом проблемы нет. Но как минимум есть проблема, то, что миграции нет и тут кйтол, блин, делается, но это сумасшествие, очевидно. Миграция Лембика надо добавить, да? Я вот это сделаю. Физическое разделение BD. Prodдакш паттерны внедрить отдельные BD инстансы плюс креды сервис. Вотбокс - это перебор асимметричный. Не знаю, что это пусть будет. А, ну в плане, чтобы, очевидно, да, не было одинакового. Да, пусть тогда будет монорепа. Потому что я, когда с микросервисами работал в своих реальных проектах, у меня не было такого паттерна Монорепа. Там, ну, как бы один микросервис - это отдельный репозиторий гита, в котором уже весь свой код, свой там doкеer compose, свои настройки для кубера. Поэтому я вот с таким моментом не знаком был. Но прикольно, в принципе, тогда у нас всё вот таким образом будет. И это нормально. Сейчас главное, чтобы он тоже какие-то очевидные вещи добавил, типа миграции и там >> прочее. что он здесь написал. Тогда подождём результат от него. А, ну это, кстати, всего лишь план он пишет. Это я режим плана поставил. И да, вот поэтому он мне дал вот эти выборы. Это, конечно, очень прикольный режим. То есть, чтобы он не просто херачил там, сам не понял, что делает, и мы не понимаем, что он делает, а вот он конкретно спросил уточнения, и, в принципе, сейчас напишет план, который я просто запущу, чтобы он его начал делать. А пока что я бы сделал тот момент, о котором я говорил, чтобы мы добавили интеграцию с Google календарём. В принципе, что мне тут GPT писал? Реализуй consumers. Да, почему мог Google календарь? А почему нельзя нормально типа добавить оу? Короче, ладно, я больше не я не буду, пожалуй, по промтам ГПТшки идти, они типа странные. Вот, допустим, аналитик сервисы так уже работает, да? Вот эти два момента я сейчас попрошу добавить отдельными сессиями. То есть это уведомления, чтобы сразу приходили и чтобы в календаре создавалась соответствующая запись. А вот у меня план уже готов. Уселение один instance разбить. Вот база данных, короче, он разные сейчас сделает. Accept and bypass permission. Всё, погнали. Этот выполняет. Я пока что пока что напишу промт, чтобы он добавил реальную интеграцию с Google календарём. Так, с микросервисами он тут закончил, внедрил эти штуки. Давай я попробую запустить тогда. Супер много кода для инфры что-то отдельное тут типа кавка. Клик. О'кей. Тут что? Тут уже, видимо, да, тут сами сервисы плюс фронт плюс app gateway запускается. Ну и в остальном он, в принципе, внёс там изменения миграции абсолютно везде добавил и добавил там doкер compost, чтобы у каждого своя база данных была. Так, как будто сейчас запустилась нормально. Давай посмотрим, что будет, не будет работать. Опа, теперь этот чел гость называется. Он же назывался хозяин. Что found, братишка? Что нафу? Создать аккаунт. Справь очевидные проблемы, что фронт не видит к проверяй перед запуском. Умоляю. И пока что, пока он тут исправляет эту очевидную хрень, я написал для новой сессии вот такой запрос, чтобы он мог реализацию Google календаря заменил на реальную, то есть чтобы пользователя просили вот там авторизуйся с Гуглом, и мы тебе в календарь всё подвяжем. Ну при этом, по идее, надо добавить в календарь и тому, и другому пользователю. Плюс пусть в личном кабинете в забронированных слотах мо отображалось с кем со звон плюс можно было добавить описание и ссылку на на место, в котором будет созвон. Я не знаю, наверное, можно и сейчас это запустить. Он просто там фронт исправляет, так что я запущу. Пусть он планирует, как мы добавим Google календарь. То есть я ему сейчас скину просто апи ключ, с которым он подключит уже это в наш проект. Так, тут меня чел спрашивает: "Ну, типа, ссылку понятно, чтобы я мог менять ссылку и описание. Конечно, допиши endpint. Сколько участников должны подключать Google для записи в календарь?" Ну, очевидно, оба могут подключить. если хотят, чтобы это событие добавилось в их календарь. Всё. Вот так. И тут этот чел исправил. Давай посмотрим, у нас работает или не работает в итоге наша микросервисная темка. Так, а войти-то я могу теперь? Да, я могу войти. И в принципе, ну что, ну всё работает. Также я думаю, ничего тут серьёзного не поменялось. Просто это больше там подкапотные штуки, которые не отразятся. А вот из того, что интересно - это теперь интеграция с Google календарём. И он сейчас, получается, составляет план и потом уже выполнит его. Да, просто ждём дальше. Вернее, не ждём, я просто пишу следующий запрос. Сделай, чтобы было прям websocket соединение и на странице профиля отображались уведомления. Как только кто-то бронирует или отменяет бронь, чтобы это приходило уведомлением обоим людям, у которых будет созвон. Примерно созвона. Пусть опять в режиме плана это бахнет, потому что сейчас просто в базе данных создаётся уведомление. Ну, кому оно нужно в базе данных, пусть это будет уже по-настоящему, по-адекватному обрабатываться. Сейчас мне надо вот эти штуки надыбать. Google client ID, Client Secret и Orect. Я пойду поресarchчу, как это делается. Я, кстати, не понимаю, почему мне чел не написал. Я пойду гэптшки просто это спрошу. Так, просто беру и делаю по инструкции гптэшки. Ещё бы не спалить тут эти ключи. Ну, я надеюсь, что я их замажу. Получается, New Project Create. Всё, он создался. Appis services library Google Platform. Это надо включить. Так, Google календарь добавил. Теперь Google A platform. Так вот. O, of client ID. Даже приблизил бы, чтобы тебе было виднее. Of client id. Так, что тут? Configure callbooking. Так, я типа эту хрень создал. Теперь надо тут credentials зайти. Нене-не, не, подожди. IP services и credentials. И вот тут уже опять закрийтить. О, а application type, я не знаю, applicationк своего бэкэнда. Капец. А как я это сделаю? Так, ну, я так понял, мне надо тогда всё-таки дождаться, пока клот у меня сейчас это напишет. И только потом я сделаю create. Скинь мне потомкл. чтобы я на его основе создал нужные апи ключи и скинул тебе всё это ему тоже отправляем, пусть работает, сидит. Так, и тут тоже уже эта тема готова. Я, к сожалению, не видел. О'кей. Где показывать уведомления? Моя страница в личный кабинет. Ну я не знаю. Без разницы, как считаешь оптимальным. Только загиненым. Очевидно. Так, история уведомлений штук пять хранить. Я вот, кстати, не знаю, насколько есть шанс, что они будут мешать друг другу. По сути, вот этот в основном в Google календарь сервисе сейчас работает агент. И вот этого агента я сейчас запущу, чтобы он делал уведомления. То есть вот тут какой-то там, ну вот то, чтобы он websocket именно подключил, потому что хотелось бы видеть уведомления в реальном времени, и это будет круто. Вот он сделает кавка события, но это понятно, оно так и есть. Уберёт селари, но в принципе да, тут селри на самом деле и не нужен. Два уведомления сформирует в ready их положит и websocket из этого Редиса будет читать сообщения. Вот это прикольно. Кстати, я не видел тобой подход с редисом и роутить нужному пользователю, также проверяя авторизацию. Вот это супер прикольная тема. Поэтому сейчас дождёмся выполнения и посмотрим. Я вот вчера гуглил вообще, почему именно кодинг называется. И не то, чтобы там что-то супер осмысленное я нашёл, но просто типа это вот в потоке Вайба. Ну ты в потоке Вайба. Вот я сейчас также просто сижу. Я двух агентов заставил работать. Просто там 1-20 минут работает, второй тоже 15 минут работает. Я просто так сижу, смотрю на это всё. Кодинг. У нас готово и то, и то. Сейчас мне чел, по идее, написал, вот эту тему мне надо скопировать и вставить тут. Я за Нет, я не закрыл. Ура, получается, куда мне тут надо ставить? After redirects. Вот так я вставляю и нажимаю. Да, и всё. Сейчас мне дадут эти криеншилы, которые я надеюсь замажу. Так, да, вот всё, всё дали, что надо. По-моему, или ещё что-то ему надо будет. Короче, я вам просто беру, копирую. Ставь сам эти данные куда надо. Мне лень. Так, ну и всё. И уведомления получаются тоже типа готовы. Но сейчас дождёмся, когда он доделает с Google календарём абсолютно всё, и посмотрим и то, и то-то, что уведомление создано, и то, что создан слот в Google календаре. Так, у нас запустилось. Погнали смотреть, как это будет работать. Я пока даже не представляю, на самом деле. Подожди, он пишет invли toen. При этом он меня не выкидывает. Или выкидывает. А почему у меня тут написано Кирилл? Вот уведомления появились. Ладно, давай я выйду, залогинюсь обратно. А, кстати, это очень странно. Он меня что, каждый час выкидывает из аккаунта? Опа. Internal server error. Что это за дичь? Что с этим делать? GVT, что это такое? Подожди, [смех] а, а это нормально, что он что сумасшедший? Он просто в вебсокете передаёт в урле прям токен дживетишный. Ладно, я его сейчас уже мучить не буду, чтобы он это исправлял, но это максимально очень плохой паттерн. Я не понимаю, как вообще сейчас немного в афиге склод кода. Я думаю, сейчас вот это календарь с уведомлениями сделаю. И по факту у нас готов планный видос. Что там ещё от GPT хотелось, чтобы я добавил? Фронт аналитика имеется. В клихаусе там всё хранится, всё чётко. Ну, конкурентное бронирование, я думаю, без разницы. Суть-то понятна в любом случае. Там это, ну, даже если я проверю, он починит, если что, в один промпт. Так то уже мы подбираемся к концу. Вот сейчас просто эти два основных крутых функционала добавить, подождать, когда он это доделает. Так, у меня тут не отображалось всё это время. Что за тильт? Короче, Google календарь вот такое выдаёт. Я не знаю, что это за тема. А уведомление, оно создалось сразу же по вебсокету. То есть я сделал слот со второго аккаунта, нажал забронировать, и тут сразу появилась всплывашка, потому что я вот показывал здесь, если зайти в нашем же F12 V socketкеet, ну, и вот здесь вот этот Websocket, тут как раз вот сообщение сформировалось, то, что Booking created, ну, оно из кавки вычленилось и в websocket отправилось, и моментально отрисовалось уведомление, и я, ну, как бы нет потребности перезагружать страницу. Ну, давай вот это выясним. Как это править? пошагово. Подожди, а как сделать, чтоб любой пользователь мог подключить? Ну давай, короче, я попробую так сейчас. Но вообще я не понимаю, типа я же не буду каждого пользователя своего вписывать вот сюда. Мне надо, чтобы для всех было доступно. Да, всё. Вот он меня просто просит адрес электронной почты. И да, вот он хочет подключить календарь. Всё, кайф. Всё кайф. Теперь у меня создано. Ну вот странно то, что тут нет нигде надписи, то, что у меня Google календарь не подключён. Хотя я чёрным по белому написал это к лод-коду. Типа сделай, чтобы была ссылка. А вот и тут можно добавить описание и ссылка. Ну и, допустим, я вот так сохраняю и всё чётко, да? И этот пользователь, я так понимаю, тоже увидит. Моя страница, моя доступность. Да, вот мои брони. И вот всё. А челик сразу видит и заходит на созвон. Всё, стартапчик-то готов. Уведомление, кстати, вот эта дичь, конечно, конченная. Зачем здесь уведомление, а не здесь? Ну это ладно, это убирается в один промпт. И давай я тогда пахну слотом. Ну да, вот просто сейчас можешь выбрать. А тут время не даёт выбирать. Что за тильт? Всё, публикую слот. Тут перехожу к этому челику. Бронирую этот слот. Всё, он забронирован. Но опять же, странно, новый слот при создании. Я не могу сразу ссылку указать описание. Суперстранно, но ладно. Всё. И вот уведомление сразу же пришло. И самое главное, что мне интересно, о'кей, уведомление пришло. Всё, у меня слот созвон с Алексеем забронирован. И да, всё, у меня просто сразу подключилось в Google календарь. тоже уведомление бы добавить, то, что мы добавили в ваш календарь. Но вот у меня для обоих гостей всё добавлено. И у нас и Google календарь в итоге работает, и Websocket работает, и в целом само приложение работает с авторизацией, с микросервисами, которые нам нужны. У нас микросервисы каждый со своей базой данных, с редисом, который, ну, блокирует одновременное бронирование. Авторизация PGVT тоже в отдельном сервисе. Кавка, которую мы опять же в кавдропе видели в реальном времени. Там приходят сообщения и аналитика сохраняет себе календарь, создаёт запись в календаре у пользователей. Уведомление тоже создаётся в режиме реального времени в вебсокете. Сери мы убрали здесь. Это не актуально. У нас через websocket прямо сразу же создаётся вот с такой инфраструктурой. И я сейчас хотел заканчивать видос и понял, что можно это развернуть на моём сервере ещё тоже в один запрос. Так что разверни этот проект на моём сервере. Всё, вот так делаю и пишу ему. На таймвебе куплен сервер. И поэтому я здесь сейчас в просто файле рандомномшном ему напишу айпишник сервера и пароль, чтобы он прямо сам зашёл. Так, я написал и сохранил на рабочий стол. Сервер и пароль я приложил в файле. Сделай всё за меня. Вот это самое просто главное слово при вайпкодинге. Ну и всё, он погнал работать. Сейчас, я так понимаю, он зайдёт на сервер, весь этот код туда выложит. Я надеюсь, мне хотя бы хватит места на сервере, и там уже всё запустит. И я прямо хоть с телефона своего зайду и, ну, как обычный пользователь, смогу использовать этот, ну, это приложение из любой точки земли, так сказать. А ещё у меня вебка почему-то скукожилась. Я не знаю, как долго это было. Кстати, что-то у него не сильно успешно пока что получается подключиться к серверу. Хотя тот же кодекс это делает без каких-либо проблем. Ну, то есть я постоянно кодекса так прошу, подключись к серверу, там сделай что-то то-то, а что-то клод тайм-аут какой-то. Ну, короче, вот я в консоли сам попробовал войти, ввёл пароль, и вот у меня без каких-либо проблем запустилось на эту буунту. Всё у него установлено, но я не знаю, что он там мудрил. Тут буквально просто прописать команду и вставить пароль. Честно, самое утомительное - это ждать, пока он там что-то делает. Тут, конечно, надо придумывать, что в процессе можно делать. Итак, всё, Клод пишет, что всё успешно готово. Он всё развернул вот по этому адресу на моём домене, прямо на моём сервере. И всё, мы переходим. Я сейчас могу с телефона буквально зайти на этот же сайт. Давай я при тебе зайду. Всё, зашёл. Просто, ну, в один промпт развернул на своём сервере. Ну, и там в течение, на самом деле, сколько суммарно на этот проект буквально готовый бизнес там со своей подвязкой интеграцией в Google календарь. Сюда же можно просто на старт добавить подписочную модель. То есть всё, ты так просто можешь пять сезонов забронировать, а по подписке безгранично и всё. Вот тебе стартап буквально за там 2-3 часа кодинга. Это раньше делалось, я не знаю, ну давай, ну 2 недели даже, допустим, это такие очень быстрые сроки. Ну просто платёжку сюда подвязать остаётся. Спокойно это можно сделать тоже. Просто апи ключи скармливаешь к лоду, говоришь: "Подключи мне платёжку" и всё. По дизайну смотришь, нравится, не нравится. А так я захожу, опять же сюда, просто вписываю тот же пароль домен, но этого уже тут нет. Ну, единственное, вот тоже invalid credentials. Это не очень красиво выглядит. Такое я бы поменял, но в любом случае я создаю аккаунт там условно. Ладно, этот пароль создавать не буду и всё. То есть я также пользуюсь абсолютно всем. аналитика Google календарь подключаю и скидываю свою страницу, типа, чуваки, ставьте тут созвоны со мной. Календарь можно удобнее сделать и так далее. То есть это уже просто детали, это косметика, но суть сама сделана. Микросервисная архитектура сделана и задеплоена на наш сервер. Поэтому, на самом деле, хоть и были проёбы неоднократные у клода, я максимально доволен результатом. Превзошло ожидание, честно скажу. И давай сделаем выводы уже из этого инструмента, который сегодня использовали. По сути, мы видим, что писать код абсолютно спокойно можно с нейронкой. Она пишет и бэкэнды, и какие-то сложные проекты, но при этом максимально в плюс играет, если ты сам шаришь о том, что происходит, что делает нейронка, ты можешь смотреть, следить и направлять её. Без этого она будет творить какую-то хрень, будет лениться. Ну и просто это приведёт к проблемам, если проект будет разрастаться. Поэтому основной вывод, что тебе в любом случае нужно знать эти вещи, нужны навыки, нужно проходить собеседование, чтобы трудоустраиваться. Но по сути, каким образом такая нейронка может заменить и разработчика, когда она просто начинает очень много творить хрени и нужно её постоянно поправлять. Поэтому мой вывод влияния такого инструмента на рынок, то, что это просто один из инструментов разработчиков в современных реалиях, но как бы никак не что-то, что может его заменить. Какой-нибудь обычный там бедолага-менеджер не напишет тебе приложение вот с этим всем, когда он не понимает контекст, не может заметить, когда нейронка творит хрень и так далее. При этом на самой работе ты можешь спокойно с таким инструментом оптимизировать время и работать 1-2 часа в день. В принципе, я своим ученикам с оптимизацией рабочего времени тоже помогаю. Там ещё нюансы, как по коммуникации закрепиться, вот это всё, растягивать задачи и так далее. Поэтому в любом случае остаётся потребность самому изучать эти темы, готовиться к собеседованиям, грамотно подавать свой опыт. И с этим всем я помогаю индивидуально на менторстве. То есть я тебя полностью с твоего уровня проведу за ручку до там офера 200-300.000 руб., обучу, подготовлю к себем и помогу закрыть испыталку. Если интересно, в закрепе Telegram-канала более подробная информация и можешь писать мне в личку. Всё обсудим, созвонимся.