Vite + Ruby on Rails
Ruby on Rails — full stack framework.
По крайней мере, уже 20 лет так его позиционирует автор — DHH.
DHH великий человек. Он и его изобретения кормят меня и мою семью уже 15 лет. Я ему благодарен, уважаю и желаю здоровья.
Однако, DHH еще и отличный хайпо-мейкер и упертый идеалист, который имеет право делать всякую дичь и активно этим правом пользуется.
Rails — full stack фреймворк, но мир уже лет 10 как полностью разделился на Front и Back. Это 2 разных мира и экосистемы. DHH все еще пытается гнуть свою линию, но его попытки все чаше и чаще показывают свою несостоятельность.
Frontend решения Rails имеют право на жизнь, интересны, и иногда полезны. Но так же есть и примеры, когда становятся непосильным грузом для развития проекта и блокером для бизнеса.
Сколько этих проектов, которые утонули в поддержке webpacker и вспоминают о нем как о страшном сне и стараются избавиться.
Но, конечно, есть и удачные интеграции. Мир велик и разнообразен.
Мой путь — чистый фронтенд для фронтенда.
Ruby on Rails — full stack framework.
По крайней мере, уже 20 лет так его позиционирует автор — DHH.
DHH великий человек. Он и его изобретения кормят меня и мою семью уже 15 лет. Я ему благодарен, уважаю и желаю здоровья.
Однако, DHH еще и отличный хайпо-мейкер и упертый идеалист, который имеет право делать всякую дичь и активно этим правом пользуется.
Rails — full stack фреймворк, но мир уже лет 10 как полностью разделился на Front и Back. Это 2 разных мира и экосистемы. DHH все еще пытается гнуть свою линию, но его попытки все чаше и чаще показывают свою несостоятельность.
Frontend решения Rails имеют право на жизнь, интересны, и иногда полезны. Но так же есть и примеры, когда становятся непосильным грузом для развития проекта и блокером для бизнеса.
Сколько этих проектов, которые утонули в поддержке webpacker и вспоминают о нем как о страшном сне и стараются избавиться.
Но, конечно, есть и удачные интеграции. Мир велик и разнообразен.
Мой путь — чистый фронтенд для фронтенда.
👍6
Frontend on Rails
Мы знаем о целом зоопарке фронтенд подходов для Rails.
- Sprockets
- Turbolinks
- webpack/webpacker
- Vite/ViteRuby
- ImportMaps
- Propshaft
- HotWire
Госпаде! Rails World! Остановись!
Фронтендщикам хватает их собственных JS, TS, React, Vue, Angular, PostCSS, SCSS, BEM. Ну куда вы еще накидываете?
И вот бизнес дает задачу — да, нам надо рельсовое приложение. Но! Пожалуйста, больше никаких ruby оберток! Нам очень сложно искать этих уникальных рельсовых фронтов, которые будут поддерживать этот набор специфических решений.
Фронтов на реакте со знанием Vite на рынке — как собак.
И они не хотят ничего знать про Propshaft или webpacker. Дайте нам чистое и готовое решение, чтобы фронтендщики просто писали свой код. Мы не хотим опять мигрировать с изобретений DHH на что-то другое, когда через 3 года DHH решит, что его старые подходы стали deprecated.
Да вообще никаких проблем! Интеграция с любым сборщиком ассетов это дело простое. Нужно только понимать суть процесса.
Это не сложно.
Мы знаем о целом зоопарке фронтенд подходов для Rails.
- Sprockets
- Turbolinks
- webpack/webpacker
- Vite/ViteRuby
- ImportMaps
- Propshaft
- HotWire
Госпаде! Rails World! Остановись!
Фронтендщикам хватает их собственных JS, TS, React, Vue, Angular, PostCSS, SCSS, BEM. Ну куда вы еще накидываете?
И вот бизнес дает задачу — да, нам надо рельсовое приложение. Но! Пожалуйста, больше никаких ruby оберток! Нам очень сложно искать этих уникальных рельсовых фронтов, которые будут поддерживать этот набор специфических решений.
Фронтов на реакте со знанием Vite на рынке — как собак.
И они не хотят ничего знать про Propshaft или webpacker. Дайте нам чистое и готовое решение, чтобы фронтендщики просто писали свой код. Мы не хотим опять мигрировать с изобретений DHH на что-то другое, когда через 3 года DHH решит, что его старые подходы стали deprecated.
Да вообще никаких проблем! Интеграция с любым сборщиком ассетов это дело простое. Нужно только понимать суть процесса.
Это не сложно.
👍4
PID процесса для Vite
Когда рельсовик запускает сервер для разработки, то использует команду rails s
Нам надо сделать так, чтобы одновременно с rails сервером запускался и frontend / vite сервер.
Сделать это довольно просто, но нам нужен маркер, который будет показывать запущен уже фронт или нет.
А то вдруг вы уже запустили vite в ручном режиме в соседнем окне.
В качестве этого маркера можно использовать PID процесса.
PID — это уникальный номер запущенной программы, который можно сохранить в файле.
Если файл есть и в нем есть номер запущенного Vite сервера — то мы не будет 2-ой раз запускать фронтовый сервер.
Если ни файла, ни номера программы нет — то тогда научим rails запускать фронт.
Vite, кажется, сам не умеет сохранять свой PID. А плагин я не искал.
Получение и сохранение PID делается легко и просто несколькими строчками кода, которые вставляются прямо в конфиг Vite.
Теперь у нас есть файл-флаг запущенного фронта. Это поможет с интеграцией.
Продолжение следует.
Когда рельсовик запускает сервер для разработки, то использует команду rails s
Нам надо сделать так, чтобы одновременно с rails сервером запускался и frontend / vite сервер.
Сделать это довольно просто, но нам нужен маркер, который будет показывать запущен уже фронт или нет.
А то вдруг вы уже запустили vite в ручном режиме в соседнем окне.
В качестве этого маркера можно использовать PID процесса.
PID — это уникальный номер запущенной программы, который можно сохранить в файле.
Если файл есть и в нем есть номер запущенного Vite сервера — то мы не будет 2-ой раз запускать фронтовый сервер.
Если ни файла, ни номера программы нет — то тогда научим rails запускать фронт.
Vite, кажется, сам не умеет сохранять свой PID. А плагин я не искал.
Получение и сохранение PID делается легко и просто несколькими строчками кода, которые вставляются прямо в конфиг Vite.
Теперь у нас есть файл-флаг запущенного фронта. Это поможет с интеграцией.
Продолжение следует.
👍5
Про деньги и закрывающиеся двери в ИТ
Я так себе прогнозист. Но есть факты, от которых не скроешься.
Мистер Трамп начал жесткую ревизию ресурсов, а сегодня его компаньон мистер Маск закрыл организацию USAID.
Ну закрыл и закрыл. Ну и что?
Дело в том, что эта организация по всему миру обеспечивала работу большого количества проектов. В разных сферах. Многие связаны с ИТ.
Нет денег - очередные сокращения - повышение конкуренции на международном рынке.
Удар со стороны AI по востребованности начинающих специалистов. Удар по рынку со стороны экономических факторов. Сокращение государственных программ США (а это очень серьезный источник финансов - не все держится на частном капитале).
Мне кажется - двери и окна в ИТ закрываются.
Я не пугаю, просто делюсь своей оценкой ситуации. Впервые за 20 лет я наблюдаю борьбу за место под солнцем.
Развитие, труд и адоптация - мои приоритеты на 2025 год. Легко больше не будет. Так вижу.
Я так себе прогнозист. Но есть факты, от которых не скроешься.
Мистер Трамп начал жесткую ревизию ресурсов, а сегодня его компаньон мистер Маск закрыл организацию USAID.
Ну закрыл и закрыл. Ну и что?
Дело в том, что эта организация по всему миру обеспечивала работу большого количества проектов. В разных сферах. Многие связаны с ИТ.
Нет денег - очередные сокращения - повышение конкуренции на международном рынке.
Удар со стороны AI по востребованности начинающих специалистов. Удар по рынку со стороны экономических факторов. Сокращение государственных программ США (а это очень серьезный источник финансов - не все держится на частном капитале).
Мне кажется - двери и окна в ИТ закрываются.
Я не пугаю, просто делюсь своей оценкой ситуации. Впервые за 20 лет я наблюдаю борьбу за место под солнцем.
Развитие, труд и адоптация - мои приоритеты на 2025 год. Легко больше не будет. Так вижу.
👍3🤯1
Запуск Vite при запуске Ruby сервера
Нативная интеграция Vite + Rails должна обеспечивать автоматический запуск Vite и сборки ассетов при запуске руби сервера.
Традиционно запуск руби сервера делает rails s или rails server или bin/rails server (редко напрямую через puma или unicorn).
При запуске сервера, очевидно, запускается само приложение. Значит, где-то в начальной стадии запуска приложения можно принять решение о запуске vite.
Есть много точек, чтобы встроить туда наши простые функции. Например, это может быть файл config/boot.rb
Нам понадобится очень мало простых функций.
- Запущен ли Vite?
- Запустить Vite!
- Остановить Vite!
А еще простые условия.
Это окружение разработки?
Это команда запуска web сервера? (А то вдруг мы запускаем rake задачу. Зачем нам тогда vite? 🙂)
Запущен ли Vite мы узнаем по PID, который мы сохраняем в файле, при запуске Vite. Смотри предыдущий пост.
Ну в общем-то тут все. Важные детали рассказал.
Если есть вопросы — задавайте.
Нативная интеграция Vite + Rails должна обеспечивать автоматический запуск Vite и сборки ассетов при запуске руби сервера.
Традиционно запуск руби сервера делает rails s или rails server или bin/rails server (редко напрямую через puma или unicorn).
При запуске сервера, очевидно, запускается само приложение. Значит, где-то в начальной стадии запуска приложения можно принять решение о запуске vite.
Есть много точек, чтобы встроить туда наши простые функции. Например, это может быть файл config/boot.rb
Нам понадобится очень мало простых функций.
- Запущен ли Vite?
- Запустить Vite!
- Остановить Vite!
А еще простые условия.
Это окружение разработки?
Это команда запуска web сервера? (А то вдруг мы запускаем rake задачу. Зачем нам тогда vite? 🙂)
Запущен ли Vite мы узнаем по PID, который мы сохраняем в файле, при запуске Vite. Смотри предыдущий пост.
Ну в общем-то тут все. Важные детали рассказал.
Если есть вопросы — задавайте.
👍4
Домой. В Стамбул!
Нормально съездил. Решил пару дел. Получил памятную грамоту-благодарность от партнеров. Посетил интересное мероприятие.
Еще и поработать успел над несколькими интересными задачами.
Возвращаюсь в нормальный рабочий режим.
Нормально съездил. Решил пару дел. Получил памятную грамоту-благодарность от партнеров. Посетил интересное мероприятие.
Еще и поработать успел над несколькими интересными задачами.
Возвращаюсь в нормальный рабочий режим.
👍3🔥2
AI наносит ответный удар
Пауза моя затянулась. Прошло 2 недели с момента, как я последний раз работал над pet проектом с использованием AI.
Очень трудно восстанавливать контекст.
Я вспомнил на чем примерно остановился, но многие вещи не сидят в сознании как созданные мною лично.
Поэтому почти вся структура кода стерлась из сознания.
Программисты и так очень быстро забывают то, над чем недавно работали. Через месяц глядя на свой код можно вообще не вспомнить, что это ты его писал. (Ну и старость у меня наступила уже)
Слышали про шутки, когда git blame показывает, что автор кода ты сам? В любом расследовании главное не выйти на самого себя!
При интенсивной работе с AI образы и структуры вообще пролетают мимо сознания. И стираются еще быстрее, чем раньше.
К счастью мы всё тотально покрываем тестами!
AI разработка и тотальное тестирование — MUST HAVE!
Даже в Твиттере уже начали признавать. MVP за 15 минут с помощью AI — это очередной маркетинговый буллщит.
Никому нельзя верить! Мне — можно! 😂
Пауза моя затянулась. Прошло 2 недели с момента, как я последний раз работал над pet проектом с использованием AI.
Очень трудно восстанавливать контекст.
Я вспомнил на чем примерно остановился, но многие вещи не сидят в сознании как созданные мною лично.
Поэтому почти вся структура кода стерлась из сознания.
Программисты и так очень быстро забывают то, над чем недавно работали. Через месяц глядя на свой код можно вообще не вспомнить, что это ты его писал. (Ну и старость у меня наступила уже)
Слышали про шутки, когда git blame показывает, что автор кода ты сам? В любом расследовании главное не выйти на самого себя!
При интенсивной работе с AI образы и структуры вообще пролетают мимо сознания. И стираются еще быстрее, чем раньше.
К счастью мы всё тотально покрываем тестами!
AI разработка и тотальное тестирование — MUST HAVE!
Даже в Твиттере уже начали признавать. MVP за 15 минут с помощью AI — это очередной маркетинговый буллщит.
Никому нельзя верить! Мне — можно! 😂
👍6
Есть и хорошие новости
В соседнем чате по руби наткнулся на хороший комментарий.
А я тут как раз пару дней рассказывал про интеграцию с Vite.
Вот что я думаю.
1) DHH классный парень, но супер критично относитесь ко всему, что касается рельсового фронта.
Почему?
А) DHH толкает свою повесточку. У него есть ресурс и он никак не может избавиться от идеи Ruby full stack фреймворка. Он может сколько угодно жить в своих концепциях, но мир давно изменился.
Б) любое рельсовое фронт решение обречено на провал. Мир рельсового фронтенда это 0.01% от всей фронтовой экосистемы. Силы не равны.
В) Я много лет эксплуатировал специализацию рельсового фронта. Я делал это крайне успешно. Вряд ли вы найдете кого-то, кто преуспел в этом лучше меня. Их по пальцам одной руки. Но больше даже я не могу идти по этой дороге. Это тупиковая ветвь. Я больше не верю, что у этого есть перспективы. И очень не советую нишеваться в этом направлении.
В соседнем чате по руби наткнулся на хороший комментарий.
А я тут как раз пару дней рассказывал про интеграцию с Vite.
Вот что я думаю.
1) DHH классный парень, но супер критично относитесь ко всему, что касается рельсового фронта.
Почему?
А) DHH толкает свою повесточку. У него есть ресурс и он никак не может избавиться от идеи Ruby full stack фреймворка. Он может сколько угодно жить в своих концепциях, но мир давно изменился.
Б) любое рельсовое фронт решение обречено на провал. Мир рельсового фронтенда это 0.01% от всей фронтовой экосистемы. Силы не равны.
В) Я много лет эксплуатировал специализацию рельсового фронта. Я делал это крайне успешно. Вряд ли вы найдете кого-то, кто преуспел в этом лучше меня. Их по пальцам одной руки. Но больше даже я не могу идти по этой дороге. Это тупиковая ветвь. Я больше не верю, что у этого есть перспективы. И очень не советую нишеваться в этом направлении.
👍5
Г) став отличным Turbo/Hotwire фронтом вы очень скоро поймете, что вы классный специалист востребованный примерно на 3 стартап проектах, в которых уже есть свои рельсовые фронты.
DHH так сладко пел на конференции о всех преимуществах. Но компании, которые много лет с рельсами и их разработчики уже примерно лет 5 не сильно горят бежать за идеями DHH.
Последним инструментом был Webpacker. Бизнес наелся. Устал от этих ненужных Ruby прослоек и уже с накопленным опытом и техническим долгом старается больше не ввязываться в это сомнительное руби удовольствие.
Сейчас на появление ImportMaps, propshaft многие смотрят с легкой сомнительной улыбкой. Типа, да? А дальше что? Через 2 года опять мигрировать?
Д) даже если вы планируете использовать Hotwire лучше делать это на основе нативных инструментов с минимумом зависимостей и прослоек. Так и фронты будут жить в своем фронтовом мире и эффективно делать работу. И защита от очередного накопления технического долга на стороне руби прослоек и их конфигураций.
Автор поста выше во многом прав, кроме того, что гем RubyVite / Rails Vite это тоже ненужная прослойка. Просто сделать без нее нужно потратить 2 дня на ресерч и реализацию. У автора пока нет на это времени и смелости. А жаль.
Надо будет статью оформить. Но чуть позже. Пока нет моральных сил.
DHH так сладко пел на конференции о всех преимуществах. Но компании, которые много лет с рельсами и их разработчики уже примерно лет 5 не сильно горят бежать за идеями DHH.
Последним инструментом был Webpacker. Бизнес наелся. Устал от этих ненужных Ruby прослоек и уже с накопленным опытом и техническим долгом старается больше не ввязываться в это сомнительное руби удовольствие.
Сейчас на появление ImportMaps, propshaft многие смотрят с легкой сомнительной улыбкой. Типа, да? А дальше что? Через 2 года опять мигрировать?
Д) даже если вы планируете использовать Hotwire лучше делать это на основе нативных инструментов с минимумом зависимостей и прослоек. Так и фронты будут жить в своем фронтовом мире и эффективно делать работу. И защита от очередного накопления технического долга на стороне руби прослоек и их конфигураций.
Автор поста выше во многом прав, кроме того, что гем RubyVite / Rails Vite это тоже ненужная прослойка. Просто сделать без нее нужно потратить 2 дня на ресерч и реализацию. У автора пока нет на это времени и смелости. А жаль.
Надо будет статью оформить. Но чуть позже. Пока нет моральных сил.
👍6
Как назвать эту новую профессию?
Сейчас получается, что большую часть базового кода пишет AI.
Помните, как 2-3 недели назад я был шокирован тем, что мне реально удалось построить схему использования AI для написания более-менее серьезного проекта.
Есть ли прирост по скорости? Да есть!
Есть ли дешевое получение шаблонных решений? Да есть!
Избавляет ли это он мыслительного процесса? Нет.
Делает ли AI за тебя работу? Смотря какую. Шаблонную да. Творчески-интеллектуальную — нет.
Сейчас я определяю работу с AI, как работу по дизайну решения и кода. Что это такое? Дизайнер? Архитектор? Оператор? Solution engineer? Методист-developer?
Пока не могу определить.
Мои коллеги изучают построение систем с помощью набора агентов.
Я пока в эту историю не лезу. Я хочу разобраться с AI на уровне создания кодовых проектов. Как использовать для этой задачи агентские сети я пока не вижу. Но я наблюдаю. Буду делиться с вами по ходу дела.
Сейчас получается, что большую часть базового кода пишет AI.
Помните, как 2-3 недели назад я был шокирован тем, что мне реально удалось построить схему использования AI для написания более-менее серьезного проекта.
Есть ли прирост по скорости? Да есть!
Есть ли дешевое получение шаблонных решений? Да есть!
Избавляет ли это он мыслительного процесса? Нет.
Делает ли AI за тебя работу? Смотря какую. Шаблонную да. Творчески-интеллектуальную — нет.
Сейчас я определяю работу с AI, как работу по дизайну решения и кода. Что это такое? Дизайнер? Архитектор? Оператор? Solution engineer? Методист-developer?
Пока не могу определить.
Мои коллеги изучают построение систем с помощью набора агентов.
Я пока в эту историю не лезу. Я хочу разобраться с AI на уровне создания кодовых проектов. Как использовать для этой задачи агентские сети я пока не вижу. Но я наблюдаю. Буду делиться с вами по ходу дела.
🔥3👍2
Использование AI в практике
1. Cursor/Claude (Composer) мне нравится больше, чем VSCode/CopilotEditor.
2. AI хорошо работает на проектах с готовой кодовой базой, где стилистика и подходы уже сформированы.
3. На этапе стартапа и начала проекта AI помогает как шаблонизатор, но не вывозит дизайн системы и кода.
4. Теперь есть смысл отслеживать результаты кодогенерации и натурально писать свою книгу правил и рекомендаций, чтобы таскать ее с собой из проекта в проект.
5. Задачи вида: "Сделай мне MVP магазина" — не реализуемы с помощью AI.
Ютуб блогеров, которые рассказывают о создании с помощью AI проектов за 30 минут — можно смело пропускать. Это хайпо-обман для тех, кто ничего сам не делает руками и головой.
6. Появившихся клиентов с запросом "мне надо разработчиков со знанием AI — так быстрее" лучше не брать в работу. Очень скоро они разочаруются, а виноватым будете вы.
7. Разработка продукта с AI стала действительно проще, но чуда не случилось. Нужно время и мозги.
1. Cursor/Claude (Composer) мне нравится больше, чем VSCode/CopilotEditor.
2. AI хорошо работает на проектах с готовой кодовой базой, где стилистика и подходы уже сформированы.
3. На этапе стартапа и начала проекта AI помогает как шаблонизатор, но не вывозит дизайн системы и кода.
4. Теперь есть смысл отслеживать результаты кодогенерации и натурально писать свою книгу правил и рекомендаций, чтобы таскать ее с собой из проекта в проект.
5. Задачи вида: "Сделай мне MVP магазина" — не реализуемы с помощью AI.
Ютуб блогеров, которые рассказывают о создании с помощью AI проектов за 30 минут — можно смело пропускать. Это хайпо-обман для тех, кто ничего сам не делает руками и головой.
6. Появившихся клиентов с запросом "мне надо разработчиков со знанием AI — так быстрее" лучше не брать в работу. Очень скоро они разочаруются, а виноватым будете вы.
7. Разработка продукта с AI стала действительно проще, но чуда не случилось. Нужно время и мозги.
👍4
Хотелось бы хотя бы исполнительности
Практика показывает — даже если ты формируешь контекст, правила, задаешь требования — AI (Claude) никак не хочет даже тупо следовать требованиям к компоновке файлов и компонентов.
Очень простое правило ему даю — видишь 2 файла с тестами — группируй тесты в отдельный каталог. Просто чтобы не мешали читать структуру проекта.
Да, он пишет тесты. Да, они вполне сносные. Их много. Их хватает чтобы избежать регрессии.
Но AI сразу же забывает про правила простые правила, которым я прошу его следовать.
Ну и как тут на него полагаться? Как закрыть глаза, расслабиться и позволить машине делать работу без проверки результатов?
Никак. Не получается.
Повторю правила, которые я выше сформулировал
- Атомарность каждого действия
- Тотальное тестирование
- Постоянный и тщательный контроль
Иначе не работает.
Хорошо. У меня иначе не получается. Может у вас получается? Поделитесь?
Практика показывает — даже если ты формируешь контекст, правила, задаешь требования — AI (Claude) никак не хочет даже тупо следовать требованиям к компоновке файлов и компонентов.
Очень простое правило ему даю — видишь 2 файла с тестами — группируй тесты в отдельный каталог. Просто чтобы не мешали читать структуру проекта.
Да, он пишет тесты. Да, они вполне сносные. Их много. Их хватает чтобы избежать регрессии.
Но AI сразу же забывает про правила простые правила, которым я прошу его следовать.
Ну и как тут на него полагаться? Как закрыть глаза, расслабиться и позволить машине делать работу без проверки результатов?
Никак. Не получается.
Повторю правила, которые я выше сформулировал
- Атомарность каждого действия
- Тотальное тестирование
- Постоянный и тщательный контроль
Иначе не работает.
Хорошо. У меня иначе не получается. Может у вас получается? Поделитесь?
👍3
MiniApp Sturtup (ч. 1)
В условиях тотальной нехватки времени в выходные начал микро-проект.
- Telegram Mini App
- React / Vite / NodeJS / Docker / DevContainer / React Router / Тесты / AI разработка.
Зачем?
- Надо отрабатывать практику использования AI
- Надо выяснять границы применимости AI и его слабые и сильные стороны
- Хочу допилить свои JS проекты (Роутер для Express.JS / Мигратор / Фреймворк для JS приложений.
День первый
- Зафиксировал желаемую структуру проекта
- Инициализировал Фронтенд
- Оформил Docker и DevContainer
Проблемы: 1️⃣ Cursor не захотел запускать DevContainer 🤷 Не хочу погружаться. Прыгаю между редакторами.
2️⃣ Yarn настроил на использование node_modules. Так проще дать редактору информацию о типах. Не было времени погружаться.
День второй
- Поставил свой Holy Grail Layout. AI перевел его в React код
Проблемы: 1️⃣ AI не хочет следовать всем правилам, которые я ему подсовываю в контекст. Постоянно что-то забывает. Постоянно контролирую. Постоянно требую доделать.
В условиях тотальной нехватки времени в выходные начал микро-проект.
- Telegram Mini App
- React / Vite / NodeJS / Docker / DevContainer / React Router / Тесты / AI разработка.
Зачем?
- Надо отрабатывать практику использования AI
- Надо выяснять границы применимости AI и его слабые и сильные стороны
- Хочу допилить свои JS проекты (Роутер для Express.JS / Мигратор / Фреймворк для JS приложений.
День первый
- Зафиксировал желаемую структуру проекта
- Инициализировал Фронтенд
- Оформил Docker и DevContainer
Проблемы: 1️⃣ Cursor не захотел запускать DevContainer 🤷 Не хочу погружаться. Прыгаю между редакторами.
2️⃣ Yarn настроил на использование node_modules. Так проще дать редактору информацию о типах. Не было времени погружаться.
День второй
- Поставил свой Holy Grail Layout. AI перевел его в React код
Проблемы: 1️⃣ AI не хочет следовать всем правилам, которые я ему подсовываю в контекст. Постоянно что-то забывает. Постоянно контролирую. Постоянно требую доделать.
👍3
MiniApp Sturtup (ч. 2)
День третий
Навигационный блок. Тесты, тесты, тесты.
AI для программистов был придуман только ради того, чтобы писать тесты. Пока это единственное, что не разочаровывает и вызывает тотальное одобрение и радость.
Требуйте от ваших программистов 100% покрытия тестами.
Они все равно и раньше их не писали. AI точно не напишет хуже. А разрабатывать через AI без тестов просто невозможно.
Выводы после 3-х дней
1️⃣ Надо почитать подробнее про правила для AI — не вижу того, что AI строго им следует. Он просто половину пропускает.
2️⃣ Запуск проекта, где нет готовой кодовой базы — это боль. AI не знает что ты хочешь. Часть ответов рандомные, часть ответов ужасного качества, часть ответов по старым версиям библиотек.
На данный момент все что я читал в блогах и твиттерах о практике использования AI кажется на 95% чушью.
Чем дальше в лес, тем тупее кажется AI.
Да, очень помогает. Но по сути — это просто новый гугл с мощной шаблонизацией.
Я отменяю отмену программистов.
День третий
Навигационный блок. Тесты, тесты, тесты.
AI для программистов был придуман только ради того, чтобы писать тесты. Пока это единственное, что не разочаровывает и вызывает тотальное одобрение и радость.
Требуйте от ваших программистов 100% покрытия тестами.
Они все равно и раньше их не писали. AI точно не напишет хуже. А разрабатывать через AI без тестов просто невозможно.
Выводы после 3-х дней
1️⃣ Надо почитать подробнее про правила для AI — не вижу того, что AI строго им следует. Он просто половину пропускает.
2️⃣ Запуск проекта, где нет готовой кодовой базы — это боль. AI не знает что ты хочешь. Часть ответов рандомные, часть ответов ужасного качества, часть ответов по старым версиям библиотек.
На данный момент все что я читал в блогах и твиттерах о практике использования AI кажется на 95% чушью.
Чем дальше в лес, тем тупее кажется AI.
Да, очень помогает. Но по сути — это просто новый гугл с мощной шаблонизацией.
Я отменяю отмену программистов.
👍6