Никак не могу выработать режим, в котором я буду регулярно тратить время на эксперименты с написанием кода LLM'ками и рассказывать об этом в канале. Так что сегодня снова будет очень краткий обзор того, что удалось сделать на предыдущей неделе.
Итак, цель всё та же — production-ready разработка без написания кода руками 🤖. Подход к разворачиванию тоже сохраняется — Serverless в AWS ☁️. И вот за две недели регулярного выделения часа-двух по будням и нескольких часов в выходные, мне в Cursor IDE с помощью Claude в качестве модели удалось собрать ту схему, которая приложена к этому посту.
Причём, когда я говорю "собрать", то это прям вот deploy-ready во всех смыслах:
📝 Написать весь код для AWS Lambda;
💡Написать код для взаимодействия со внешними сервисами, включая промты для обработки запросов силами OpenAI API;
🔧 Описать класс в AWS CDK для разворачивания этого с нуля в аккаунте AWS;
⚙️ Написать скрипт для GitHub Actions, который деплоит это в dev или в prod, в зависимости от того, в какую ветку коммит;
📦 Добавить сборку AWS Lambda Layers в сборку для тех функций, которые требуют дополнительных зависимостей;
📖 Написать базовую документацию для
README.md, включающую схему, нарисованную выше;
🧪 Покрыть (пока) одну из лямбд полноценными юнит-тестами с замоканными AWS-сервисами.
Для меня это огромный шаг вперёд не только в разработке с AI-помощниками, но и в разработке вообще. Если честно, я никогда не выстраивал весь конвейер с тестами и dev-развёртыванием своими руками — только руками команды. И с точки зрения качества разработки pet-проектов, которыми я иногда занимался, это огромный шаг вперёд, позволяющий выйти на принципиально другой уровень качества и возможности постепенного развития. Документация, тестовое окружение и полноценное покрытие тестами сильно помогает, когда к проекту возвращаешься эпизодически, а не постоянно имеешь весь контекст в голове 🧠.
Что мне пока не нравится? То, что много повторяющихся функций в разных лямбдах тупо скопипащено. Но, кажется, это тоже довольно просто решаемо, когда весь процесс сборки автоматизирован. Можно вынести это всё в общие модули и добавлять необходимые зависимости куда надо. Когда надо всё деплоить руками, следить за этим замучаешься 😅.
Короче, две недели не мог оторваться и тупо шёл и шёл дальше к своей мечте про production-ready разработку без собственно написания кода. Кажется, что она где-то совсем рядом 🏁.
Вот, наконец, нашёл немного времени написать об этом и спросить: а кто-то хочет больше деталей про это всё услышать и увидеть? Может, вебинарчик какой-то с live-coding в Cursor замутить, где подготовим всё вышеперечисленное для какого-нибудь сервиса и задеплоим? 🎥
P.S. Вопрос границ применимости подхода всё ещё самый мучительный 🤔. Но чем дальше, тем шире они кажутся. И тем меньше скепсиса у меня к подходу при условии, что запросы в чат Cursor пишет человек, разбирающийся в разработке 👨💻. Вот если не разбирающийся, тогда пока не знаю.