Я посмотрел на эту статью с точки зрения промпт-инжиниринг и VIBE-кодинг, так как эти два направления мне сейчас очень близки (для справки, я изучаю промпт-инжиниринг в университете ZEROCODER, а VIBE-кодинг это новый курс университета и он будет следующим для меня) . Для начала напомню как расшифровывается VIBE (есть статья на Хабре https://habr.com/p/931266, где была предложена эта концепция). Эта аббревиатура расшифровывается как Vision, Intention, Belief, Expectation, соответственно - V - видениe, I - намерение, B - вера и E - ожидание. Это подход к написанию кода который подчёркивает важность ментальных установок программиста. А промпт-инженерия - это искусство формулировать запросы (prompt, промты), чтобы получить точные (релевантные) и полезные ответы на них. Каким образом связывая его рассуждение с VIBE-кодингом хочу сказать, что в его терминах: V (Vision) - это автоматизация рутинной задачи сбора данных. Это видение сэкономило бы время и уменьшило ручной труд. I (Intention) - намерение автора написать скрипт, который будет парсить веб-страницы и извлекать оттуда нужные данные. B (Belief) - это Вера автора в то, что с помощью Python и Beаutiful Soup он сможет реализовать задуманное. E (Expectation) - автор ожидал, что скрипт будет стабильно работать и собирать в нужном формате и без ошибок или с минимальными ошибками,которые можно обработать.
Как же это связано с промпт-инжинирингом, спросите вы? Ведь автор не использовал в статье ИИ. А всё просто, если бы он хотел ускорить разработку с помощью ИИ (например, ChatGPT), то он мог бы применить промпт-инжиниринг. Приведу примеры:
Формулировка задачи для ИИ: промпт мог бы выглядеть так: "Напиши код на Python для Beautiful Soup для парсинга таблицы с веб-страницы. На таблице есть ID= 'data-table'. Нужно извлечь все строки и столбцы и сохранить в CSV".
Уточнение деталей: если бы возникли сложности (например, динамическая загрузка данных) он бы мог уточнить: "Как обработать JavaScript-генерацию с помощью Beautiful Soup? Если Beautiful Soup не может, то какие есть альтернативы на Python"
Промт для обработки ошибок: " Напиши обработку исключений если таблица не найдена или нет подключения к интернету".
Оптимизация: Как можно оптимизировать этот парсер чтобы он он обработал страницы быстрее, особенно при больших объёмах данных? ".
Ещё немного о связи VIBE-кодинга с промпт-инжинирингом. Она глубже, чем кажется на первый взгляд:
VISION - точные видение задачи (что мы хотим автоматизировать) позволяет сформулировать ясную и конкретную цель в промте.
INTENTION - намерения получить конкретный ход направляет промпт на решение именно нужной задачи, избегая расплывчатости.
BELIEF - вера в выбраный инструмент (определяет о чем спрашивать ИИ) и в возможностях ИИ мотивирует его использование и помогает формулировать запросы в правильном контексте. Эта вера напрямую определяла бы, какие инструменты упоминать в промптах (например, явно просить код на Beautiful Soup, а не общий парсер) и задавала карнтекст для ИИ.
EXPECTATION - ясные ожидания относительно работы, формата вывода, надёжности прямо транслируются в конкретные требования и критерии качества, закладываемые в промпт (например: "Обработай ошибки", " Сохрани в CVS", "Сделай код устойчивым к изменениям структуры страницы", а так же понимание того, что результат ИИ может потребовать доработки. Чёткие Expectation (ожидания надёжности, формата, обработки ошибки) критиков для получения от ИИ непросто работающего, но и устойчивого кода, а не простоисырого черновика.
Таким образом, применяя VIBE-кодинг к промпт-инженерингу - имея четкое видение задачи, намерение её решить, веру в инструменты и ожидания результата мы создаем гораздо более эффективные промпты.
Вывод: автор успешно реализовал решение задачи традиционными методами. Однако, используя промпт-инжиниринг, основанный на его де VIBE-установках, он мог бы значительно ускорить процесс разработки.
VIBE-кодинг служит мощной ментальной рамкой и структурирующим подходом, который помогает как программисту пишущему код самостоятельно, так и инжинеру промптов четко определить задачу (Vision, Intention), выбрать инструменты (Belif) и сформулировать критерии качества(Expectation).
Рекомендация: Для решения подобных задач (веб-скрапинг) идеально использовать комбинацию традиционного программирования и промпт-инжиниринга. Это позволяет быстрее получить рабочие решения, особенно на этапе изучения новой библиотеки, генерации шаблонов кола или поиска оптмальных способов решения сложных позадач (обрабоока ошибок, динамический контент, пагинация, обход блокировок). VIBE-подход при этом обеспечивает необходимую чёткость и направленность при работе с ИИ.
В заключении хотелось бы добавить следующее:
Следование Vibe-подходу перед формулировкой промпта служит фильтром, уменьшающим риск получения от ИИ нерелевантных или слишком общих ответов (мусор на входе мусор на выходе). Ну и пара слов о практической пользе такой комбинации. Это комбинация позволяет сосредоточить усилия на сложной логике, архитектуре и валидации, делегируя ИИ рутинные шаблоны, поиск документации или генерацию вариантов решения стандартных проблем.
Критика абсолютно обоснована для традиционного подхода. Однако утверждать, что вся объектная модель обречена в многопоточном мире, неверно. Проблема в модели разделяемого изменяемого состояния, а не в объектах самих по себе. Альтернативы, вдохновленные как изначальными идеями Кея, так и функциональным программированием, показывают путь вперед. Среда, построенная только на классических мьютексах, действительно имеет фундаментальные недостатки, и индустрия активно ищет и внедряет более безопасные модели параллелизма.
Я посмотрел на эту статью с точки зрения промпт-инжиниринг и VIBE-кодинг, так как эти два направления мне сейчас очень близки (для справки, я изучаю промпт-инжиниринг в университете ZEROCODER, а VIBE-кодинг это новый курс университета и он будет следующим для меня) . Для начала напомню как расшифровывается VIBE (есть статья на Хабре https://habr.com/p/931266, где была предложена эта концепция). Эта аббревиатура расшифровывается как Vision, Intention, Belief, Expectation, соответственно - V - видениe, I - намерение, B - вера и E - ожидание. Это подход к написанию кода который подчёркивает важность ментальных установок программиста. А промпт-инженерия - это искусство формулировать запросы (prompt, промты), чтобы получить точные (релевантные) и полезные ответы на них. Каким образом связывая его рассуждение с VIBE-кодингом хочу сказать, что в его терминах: V (Vision) - это автоматизация рутинной задачи сбора данных. Это видение сэкономило бы время и уменьшило ручной труд. I (Intention) - намерение автора написать скрипт, который будет парсить веб-страницы и извлекать оттуда нужные данные. B (Belief) - это Вера автора в то, что с помощью Python и Beаutiful Soup он сможет реализовать задуманное. E (Expectation) - автор ожидал, что скрипт будет стабильно работать и собирать в нужном формате и без ошибок или с минимальными ошибками,которые можно обработать.
Как же это связано с промпт-инжинирингом, спросите вы? Ведь автор не использовал в статье ИИ. А всё просто, если бы он хотел ускорить разработку с помощью ИИ (например, ChatGPT), то он мог бы применить промпт-инжиниринг. Приведу примеры:
Формулировка задачи для ИИ: промпт мог бы выглядеть так: "Напиши код на Python для Beautiful Soup для парсинга таблицы с веб-страницы. На таблице есть ID= 'data-table'. Нужно извлечь все строки и столбцы и сохранить в CSV".
Уточнение деталей: если бы возникли сложности (например, динамическая загрузка данных) он бы мог уточнить: "Как обработать JavaScript-генерацию с помощью Beautiful Soup? Если Beautiful Soup не может, то какие есть альтернативы на Python"
Промт для обработки ошибок: " Напиши обработку исключений если таблица не найдена или нет подключения к интернету".
Оптимизация: Как можно оптимизировать этот парсер чтобы он он обработал страницы быстрее, особенно при больших объёмах данных? ".
Ещё немного о связи VIBE-кодинга с промпт-инжинирингом. Она глубже, чем кажется на первый взгляд:
VISION - точные видение задачи (что мы хотим автоматизировать) позволяет сформулировать ясную и конкретную цель в промте.
INTENTION - намерения получить конкретный ход направляет промпт на решение именно нужной задачи, избегая расплывчатости.
BELIEF - вера в выбраный инструмент (определяет о чем спрашивать ИИ) и в возможностях ИИ мотивирует его использование и помогает формулировать запросы в правильном контексте. Эта вера напрямую определяла бы, какие инструменты упоминать в промптах (например, явно просить код на Beautiful Soup, а не общий парсер) и задавала карнтекст для ИИ.
EXPECTATION - ясные ожидания относительно работы, формата вывода, надёжности прямо транслируются в конкретные требования и критерии качества, закладываемые в промпт (например: "Обработай ошибки", " Сохрани в CVS", "Сделай код устойчивым к изменениям структуры страницы", а так же понимание того, что результат ИИ может потребовать доработки. Чёткие Expectation (ожидания надёжности, формата, обработки ошибки) критиков для получения от ИИ непросто работающего, но и устойчивого кода, а не простоисырого черновика.
Таким образом, применяя VIBE-кодинг к промпт-инженерингу - имея четкое видение задачи, намерение её решить, веру в инструменты и ожидания результата мы создаем гораздо более эффективные промпты.
Вывод: автор успешно реализовал решение задачи традиционными методами. Однако, используя промпт-инжиниринг, основанный на его де VIBE-установках, он мог бы значительно ускорить процесс разработки.
VIBE-кодинг служит мощной ментальной рамкой и структурирующим подходом, который помогает как программисту пишущему код самостоятельно, так и инжинеру промптов четко определить задачу (Vision, Intention), выбрать инструменты (Belif) и сформулировать критерии качества(Expectation).
Рекомендация: Для решения подобных задач (веб-скрапинг) идеально использовать комбинацию традиционного программирования и промпт-инжиниринга. Это позволяет быстрее получить рабочие решения, особенно на этапе изучения новой библиотеки, генерации шаблонов кола или поиска оптмальных способов решения сложных позадач (обрабоока ошибок, динамический контент, пагинация, обход блокировок). VIBE-подход при этом обеспечивает необходимую чёткость и направленность при работе с ИИ.
В заключении хотелось бы добавить следующее:
Следование Vibe-подходу перед формулировкой промпта служит фильтром, уменьшающим риск получения от ИИ нерелевантных или слишком общих ответов (мусор на входе мусор на выходе). Ну и пара слов о практической пользе такой комбинации. Это комбинация позволяет сосредоточить усилия на сложной логике, архитектуре и валидации, делегируя ИИ рутинные шаблоны, поиск документации или генерацию вариантов решения стандартных проблем.
Критика абсолютно обоснована для традиционного подхода. Однако утверждать, что вся объектная модель обречена в многопоточном мире, неверно. Проблема в модели разделяемого изменяемого состояния, а не в объектах самих по себе. Альтернативы, вдохновленные как изначальными идеями Кея, так и функциональным программированием, показывают путь вперед. Среда, построенная только на классических мьютексах, действительно имеет фундаментальные недостатки, и индустрия активно ищет и внедряет более безопасные модели параллелизма.