Пришло время позволить ИИ писать И читать?

MMaximilian Schwarzmüller
컴퓨터/소프트웨어경영/리더십AI/미래기술

스크립트

00:00:00Вы всё ещё читаете код или должны его читать?
00:00:04Это вопрос, дискуссия о котором возникла на TechX в выходные,
00:00:09по крайней мере, в моём пузыре.
00:00:12И это интересный вопрос, очевидно, также отличный способ вызвать ярость,
00:00:15но этот выпуск не об этом.
00:00:18И я отвечу на этот вопрос.
00:00:20Для меня это не просто «да» или «нет».
00:00:22И я также хочу услышать ваши мысли.
00:00:24Правда, хочу.
00:00:25Так что, пожалуйста, поделитесь ими.
00:00:26Это непросто.
00:00:27И я вернусь к этому вопросу.
00:00:29Но я думаю, другой вопрос должен быть первым.
00:00:32Вы всё ещё пишете код?
00:00:35Потому что очевидно, если вы всё ещё пишете весь свой код, вы его читаете, верно?
00:00:40Так что да, вам не нужно его читать, потому что вы его написали.
00:00:43Но для многих разработчиков, включая меня, мы, вероятно, не пишем весь свой код.
00:00:49И вы, очевидно, можете находиться где угодно в диапазоне от 0 до 100%
00:00:55относительно этого вопроса, как много кода вы ещё пишете.
00:00:58Я, наверное, уже близок к 100%.
00:01:03И это определенно сильно изменилось за последние шесть-восемь месяцев,
00:01:08как и у многих разработчиков, я уверен, с улучшением моделей ИИ.
00:01:14Но самое главное, эти модели стали лучше следовать инструкциям,
00:01:18быть лучше настроенными на следование инструкциям,
00:01:20а также окружающие инструменты, такие как Claude Code и так далее.
00:01:22Так что для меня это изменилось.
00:01:24И я говорил об этом в другом выпуске,
00:01:26о том, как это также отнимает много радости от этого ремесла.
00:01:30И я пытаюсь найти новую радость в создании вещей,
00:01:33а не в части написания кода, которая у меня отнята.
00:01:37Но я говорил об этом в другом выпуске, как уже упоминалось.
00:01:39Так что этот выпуск не об этом.
00:01:42Но это, конечно, первый важный вопрос.
00:01:45Вы всё ещё пишете код?
00:01:47И, безусловно, этот ответ может быть «да» для вас.
00:01:50Вы можете быть ближе к 0% здесь или где угодно в этом диапазоне.
00:01:55И это абсолютно нормально.
00:01:57Я думаю, слишком рано говорить, какое место на этой шкале правильное,
00:02:02потому что мы всё ещё находимся на ранней стадии всей этой эволюции ИИ, когда дело касается программирования.
00:02:07И нам ещё предстоит увидеть долгосрочные эффекты того, что всё больше программного обеспечения полностью создается ИИ,
00:02:12как это определенно имеет место, независимо от того, где вы находитесь.
00:02:16Так что это первый важный вопрос.
00:02:18И он относится к другому.
00:02:19Но что теперь насчет того другого?
00:02:21Вы всё ещё читаете код?
00:02:22Ну, опять же, это сложно, потому что мы можем разделить это.
00:02:26У нас есть чтение кода.
00:02:29И я бы сказал, у нас есть забота о коде.
00:02:33И для меня это не одно и то же.
00:02:36И вы также можете читать, но не заботиться, что довольно глупо.
00:02:40И я вернусь к этому.
00:02:41Или не читать и заботиться, что, я бы сказал, возможно.
00:02:45И это имеет последствия.
00:02:47Так что, как упоминалось, вы можете не читать и не заботиться.
00:02:51Вы можете читать и не заботиться.
00:02:55Вы можете не читать, но заботиться.
00:02:58И, конечно, вы можете читать и заботиться.
00:03:02Это четыре комбинации, если разделить чтение и заботу.
00:03:08Теперь, если вы не читаете и не заботитесь, это моё определение «вайп-кодинга».
00:03:14У вас может быть другое определение, и это нормально.
00:03:17Но это моё определение «вайп-кодинга».
00:03:20Не читать, не заботиться — это «вайп-кодинг».
00:03:22Теперь, это не значит, что вас не волнует продукт.
00:03:25Вас, вероятно, он волнует.
00:03:26Потому что если вас не волнует продукт, зачем вы вообще что-то делаете, верно?
00:03:31Но вас может просто волновать продукт.
00:03:33Если он работает, вы счастливы.
00:03:34Если есть проблема, вы просто говорите ИИ: эй, бла-бла-бла, это не работает.
00:03:38Пожалуйста, исправь.
00:03:39И вас не заботит код, и вы не читаете код.
00:03:42Это моё определение «вайп-кодинга».
00:03:44Теперь, если вы читаете код, но не заботитесь — это странно.
00:03:49Я полагаю, вы просто убиваете время в этом случае.
00:03:52Если вы читаете, но не заботитесь, вы можете просто быть на работе, где вам платят за то, чтобы делать что-то.
00:03:57Так что вы тратите время на анализ кода, который вас не особо заботит.
00:04:00Я не знаю.
00:04:01Не совсем мой фокус здесь.
00:04:03Но конечно, вы можете иметь такую комбинацию.
00:04:05Теперь, вот комбинации, которые более интересны.
00:04:08Не читать и заботиться, и читать и заботиться.
00:04:11Теперь, начнем с чтения и заботы.
00:04:13Думаю, это очевидный вариант.
00:04:15Думаю, это можно назвать ИИ-управляемой разработкой ПО или чем-то подобным.
00:04:20Потому что вы, возможно, больше не пишете код или не весь его.
00:04:24Но вы заботитесь о нем как инженер-программист.
00:04:26Вы можете нести за него ответственность.
00:04:28И вы читаете его, потому что так как вы заботитесь о нем, так как вы можете нести за него ответственность,
00:04:33вы, ну, вы хотите видеть, что там происходит, верно?
00:04:35Имеет смысл.
00:04:36Так что это очевидный вариант.
00:04:37И я вернусь к нему.
00:04:38Но как насчет того, чтобы не читать и заботиться?
00:04:40Это вообще возможно?
00:04:42И я бы сказал, да, это так.
00:04:43Это возможно, но это сложно.
00:04:46И мы могли бы поспорить, является ли это будущим, возможно.
00:04:50И сначала скучный ответ.
00:04:52Я не знаю, очевидно.
00:04:53Я не знаю, является ли это будущим.
00:04:56Точно так же, как четыре года назад, я бы не представил, что однажды мы не будем писать код
00:05:02больше.
00:05:03Я, возможно, ещё не представляю, что однажды мы вообще не будем читать код.
00:05:09В реальности, однако, мы, вероятно, закончим на шкале вроде этой.
00:05:12И я бы сказал, мы уже на такой шкале.
00:05:15Но опять же, я вернусь к этому.
00:05:16Так что, не читать и заботиться.
00:05:18Это вообще возможно?
00:05:20Как я упоминал, я бы сказал, да, это вероятно так.
00:05:24Но это совершенно другой способ мышления о программном обеспечении.
00:05:27Он опирается на то, что вы доверяете ИИ не только в том, что касается написания кода, но вы
00:05:34вероятно, также используете ИИ для проверки кода, для сканирования или анализа вашей кодовой базы, для
00:05:40аудита вашей кодовой базы.
00:05:41И вы, конечно, можете это делать.
00:05:43Вы можете использовать облачный код с Fable 5 или чем угодно, или Codex или Pi, мой любимый агент, с вашей любимой моделью ИИ для работы с кодом.
00:05:55А затем вы могли бы использовать того же агента в новой сессии с той же или другой моделью, или вы используете другого агента в другой сессии с другой моделью.
00:06:03Любая комбинация этого, вы могли бы использовать это для проверки кода, для проверки последнего изменения, для проведения частого аудита всей кодовой базы.
00:06:12Вы могли бы делать подобные вещи.
00:06:13Вы можете и, вероятно, должны также тратить много времени на планирование и чтение этих планов, чтение этих спецификаций.
00:06:22Я думаю, что не чтение кода, если делается правильно, если это будущее, не должно подразумевать, что вы вообще ничего не читаете.
00:06:32Вы должны абсолютно точно тратить больше времени на создание хороших планов вместе с ИИ, убеждаясь, что вы работаете над правильными вещами с правильными деталями реализации, если хотите выразиться так.
00:06:47Так что правильным способом вы не просто заботитесь о продукте, вы заботитесь об архитектуре, о строительных блоках.
00:06:54И вы можете, конечно, гарантировать или не гарантировать, но увеличить шансы получения хороших результатов там, если вы тратите больше времени на спецификации, на планы, а затем позволяете ИИ реализовать это.
00:07:08А затем у вас есть проверка кода, где вы даете проверяющему агенту также доступ к этой спецификации или к тому плану, который должен реализовать ИИ.
00:07:15Теперь, всё же, конечно, одна проблема, которая у вас здесь возникнет, и это причина, по которой я не в поезде «я ничего не читаю», что вы не знаете наверняка, что происходит в вашей кодовой базе.
00:07:29Вы не можете. Вы просто не можете знать наверняка, если вы это не читаете.
00:07:33Вы можете, конечно, постараться изо всех сил, чтобы ИИ сгенерировал код, который вы хотите, чтобы он сгенерировал, и использовать ИИ для проверки, но у вас нет 100% уверенности, если вы не смотрите на него.
00:07:44Я имею в виду, это касается не только программирования, очевидно.
00:07:46Это верно для всего в жизни.
00:07:48Если у вас есть ИИ или адвокат, мы даже не должны говорить об ИИ, составлять контракт, а вы его вообще не читаете, и просто подписываете, у вас нет уверенности, что там внутри.
00:08:00И вы можете или не можете это делать.
00:08:03Я лично этого не делаю.
00:08:05Я лично всё ещё читаю код, но это теперь интересная часть, возможно.
00:08:13Опять же, на шкале, я не читаю 100% кода.
00:08:19Мне трудно сказать вам, где именно я на этой шкале.
00:08:24Это может быть где-то посередине, потому что я проверяю код, весь код, который ИИ дает мне.
00:08:31Но, конечно, это не значит, что я обязательно читаю каждую строку.
00:08:36Это значит, что я перехожу к важным частям сначала, которые я могу определить как инженер-программист.
00:08:42Я знаю, какие строительные блоки являются важными частями или какие части определенного пулл-реквеста или коммита являются важными.
00:08:51Я погружаюсь в них.
00:08:53Я анализирую их.
00:08:54Я погружаюсь в критические части.
00:08:56Затем я погружаюсь в некоторые части, где я знаю, что ИИ любит ошибаться.
00:08:59И это то, как я проверяю.
00:09:01И я могу просто сканировать или кратко просматривать менее важные части.
00:09:07Я имею в виду, например, когда дело доходит до того, что ИИ пишет какой-то код для чтения некоторых переменных окружения и для их парсинга,
00:09:16я могу не читать каждую строку там.
00:09:18Но я просто хочу увидеть общий подход, особенно учитывая, что ИИ, например, склонен писать чрезмерно оборонительный код, где у него есть резервные варианты для резервных вариантов для резервных вариантов.
00:09:27И я хочу этого избежать.
00:09:28Так что я всё ещё делаю свои проверки там, но меня не заботят все детали того, как он парсит целое число или что-то подобное.
00:09:36Так что это то, куда я бы поместил себя сейчас.
00:09:42Но так же, как с написанием кода, я не знаю, как это изменится, как я могу приближаться к тому, чтобы не читать 100%.
00:09:50Сейчас я не знаю, дойду ли я когда-нибудь до 100%.
00:09:54Я не могу смотреть в будущее.
00:09:55И я полагаю, если мы дойдем до 100% как для написания, так и для чтения, нам действительно придется увидеть, что это значит для нас как инженеров-программистов.
00:10:06Может быть по-прежнему супер важно давать ИИ правильные задачи, знать о системах подписания и об архитектуре.
00:10:15И это было бы моим предположением, что мы движемся в этом направлении.
00:10:18Но очевидно, что это трудно сказать.
00:10:21Вопрос будет в том, если в какой-то момент мы не будем писать никакой код и не будем читать никакой код, нужно ли вам всё ещё знать, как кодировать, верно?
00:10:31Если стоит быть способным читать или писать код, верно?
00:10:35Если это всё ещё важно.
00:10:36И прямо сейчас это определенно всё ещё для меня так.
00:10:39Это определенно всё ещё так также потому, что вопрос в том, о чем вы заботитесь, верно?
00:10:44Это другая часть, забота.
00:10:46Чтение — это одна часть, но мы читаем, потому что мы заботимся, и мы можем заботиться без чтения, как я ясно дал понять.
00:10:53Но что вообще значит забота?
00:10:55И я бы сказал, забота, очевидно, может означать много вещей.
00:11:03Это может означать что-то вроде стиля кода.
00:11:06Вы можете заботиться о стиле кода, как создаются функции, какой подход используется там.
00:11:13Вы можете даже заботиться о более крупных решениях, таких как объектно-ориентированное программирование, функциональное программирование, такие вещи.
00:11:21Вы можете заботиться о читаемости вашей программы.
00:11:26Вы можете заботиться о безопасности и о вещах вроде надежности.
00:11:33И есть много других измерений, о которых мы могли бы подумать.
00:11:35Есть некоторые измерения здесь, которые, я скажу, значат меньше сейчас.
00:11:39Стиль кода, читаемость, особенно если вы не читаете, не очень важно.
00:11:44Это важно только в том случае, я имею в виду, что ИИ способен читать и понимать код.
00:11:50И он, скорее всего, будет с этим в порядке.
00:11:53Теперь, стиль кода всё ещё может иметь значение также для эффективности токенов.
00:11:58Если у вас есть кодовая база, где у вас просто много ненужных проверок, что, как упоминалось, является тем, что ИИ сейчас имеет склонность делать,
00:12:04или некоторые модели ИИ имеют склонность делать, это будут дополнительные токены, которые будут сжигаться, когда ИИ анализирует этот код.
00:12:11Так что это всё ещё имеет значение, но оно может не иметь такого большого значения, как в прошлом.
00:12:18Я имею в виду, у всех нас были свои предпочтения относительно стиля кода в прошлом.
00:12:22И для меня это определенно изменилось.
00:12:24Это определенно изменилось.
00:12:26Теперь, очевидно, однако, вещи вроде безопасности, надежности, также тестируемости, это всё ещё имеет большое значение.
00:12:34Очевидно, это та часть, если вообще что-то, что имеет значение в программном обеспечении.
00:12:39Вы хотите, чтобы он делал то, что он должен делать.
00:12:41Вы хотите, чтобы он делал это безопасно.
00:12:43Вы можете заботиться о производительности.
00:12:46Вы должны заботиться о производительности.
00:12:47Он должен быть надежным.
00:12:48Он не должен случайно крашиться у ваших пользователей.
00:12:51И, конечно, это всё вещи, которые мы видим в современном программном обеспечении.
00:12:54Современное программное обеспечение часто не надежно, может не быть безопасным.
00:12:58И 100% безопасность, конечно, не достижима, особенно с этими моделями ИИ, которые довольно хороши в,
00:13:04нахождении уязвимостей безопасности, и у нас не обязательно есть доступ к последним моделям, которые могут это сделать.
00:13:10Но это другая дискуссия.
00:13:11Но вы всё равно должны заботиться об этом.
00:13:13Это моя точка зрения.
00:13:14Вы должны пытаться строить безопасное, надежное, производительное программное обеспечение, на мой взгляд.
00:13:20И как инженер-программист, это, конечно, также означает, что вы можете захотеть дать свой вклад относительно того, какие паттерны использовать, какие библиотеки использовать в проекте.
00:13:30Так что это то, где мы затем переходим больше в ту область системного дизайна или архитектуры ПО, которая не является тем же самым, системный дизайн, архитектура ПО.
00:13:39Но это вещи, которые всё ещё имеют большое значение, я бы сказал.
00:13:44И это те вещи, где наличие хороших спецификаций, наличие хороших планов важно, если вы приближаетесь к 100% не чтению, что, опять же, может не быть случаем для вас.
00:13:57Это всё то, где нет неправильного или правильного, как я пытался дать понять.
00:14:02Так что эти части действительно становятся важнее спецификаций, планов, потому что, опять же, вы хотите определенно обеспечить безопасность и надежность, если вы больше не заботитесь о стиле кода и читаемости, что очень может быть случаем.
00:14:18И поэтому, конечно, этот весь вопрос «читаете ли вы всё ещё код» очевидно также немного для вызова ярости, как я упоминал прежде, и не такой простой для ответа.
00:14:30И там просто нет правильного или неправильного здесь.
00:14:34И кстати, это должно быть очевидно, но также есть большая разница.
00:14:37Если у вас есть что-то, какое-то программное обеспечение, работающее в продакшене, возможно, используемое тысячами, сотнями тысяч или миллионами людей, и это также зависит от того, в какой области вы работаете.
00:14:49Я имею в виду, если вы работаете в банковском деле, допустим, ошибки в вашем программном обеспечении могут иметь катастрофические последствия, и не только банковское дело, есть даже более важные части в банковском деле, очевидно, здоровье, оборона, технологии, всё это.
00:15:05Так что это важный аспект.
00:15:10Если вы инди-хакер с нулем пользователей, да, конечно, вы можете не заботиться о коде слишком много.
00:15:18Но в целом, я думаю, мы всё ещё можем видеть тренд или мы можем видеть тренд, где так же, как с написанием кода, мы также движемся ближе к 100% для не чтения кода.
00:15:32Я просто не уверен, дойдем ли мы когда-нибудь до 100% и должны ли мы дойти туда, если это хорошая идея.
00:15:38И мы определенно не должны переставать заботиться.
00:15:41А затем большой вопрос просто в том, можем ли мы заботиться без чтения?
00:15:45Будет ли это действительно, действительно, действительно работать?
00:15:48Я не уверен.
00:15:49У меня нет такого доверия к ИИ.
00:15:53И я не уверен, изменится ли или когда это изменится.
00:15:56Это может измениться.
00:15:57Не исключаю этого.
00:15:58Точно так же, как написание кода или не написание кода изменилось.
00:16:03Но прямо сейчас я всё ещё больше в этой части «читаю и забочусь» или я где-то между, потому что, как я упоминал, я где-то посередине этой шкалы.
00:16:11Но как я также упоминал, пожалуйста, дайте мне знать, где вы находитесь.
00:16:150% чтения, 100% чтения, может быть, всё ещё 100% написания.
00:16:19Это также может быть правильный путь.
00:16:21Дайте мне знать.
00:16:22И дайте мне знать ваши мысли по поводу этой всей темы в целом.

핵심 요약

Эволюция разработки ПО движется к минимизации написания и чтения кода, однако сохранение ответственности за архитектуру, безопасность и надежность системы остается критически важным навыком инженера.

하이라이트

  • Разработчики находятся на разной шкале участия в написании и чтении кода, при этом многие современные процессы автоматизированы ИИ почти на 100%.

  • Отсутствие чтения кода при наличии заботы о нем требует глубокого планирования, тщательной работы со спецификациями и использования агентов ИИ для аудита.

  • Комбинация «не читать и не заботиться» определена как «вайп-кодинг», где работа ведется исключительно через постановку задач ИИ до получения работающего результата.

  • Современный подход к проверке кода ИИ включает фокусировку на критических узлах и паттернах, а не построчное изучение каждой строки.

  • Чтение кода остается необходимым инструментом для обеспечения безопасности, надежности и производительности, особенно в таких критических областях, как банковское дело и медицина.

타임라인

Смена парадигмы в написании кода

  • Разработка ПО эволюционирует в сторону снижения доли написанного человеком кода.
  • Улучшение инструктивных способностей моделей ИИ и инструментов вроде Claude Code изменило рабочий процесс за последние 6-8 месяцев.

Вопрос о том, нужно ли программистам писать код, перестал быть теоретическим. Многие разработчики делегируют написание кода ИИ, что меняет саму суть профессии. Хотя степень автоматизации варьируется от 0% до 100%, переход к созданию кода машинами является неизбежным трендом.

Четыре комбинации чтения кода и ответственности

  • Комбинация «не читать и не заботиться» классифицирована как «вайп-кодинг».
  • Чтение кода без заботы о нем считается неэффективным использованием времени.

Разделение процесса на два вектора — чтение и заботу о коде — позволяет выделить четыре сценария работы. При «вайп-кодинге» пользователь фокусируется исключительно на конечном продукте, исправляя ошибки через диалог с ИИ, игнорируя внутреннюю структуру программы.

Возможности и риски отказа от чтения кода

  • Не чтение кода требует перехода к жесткому планированию и детальному составлению спецификаций для ИИ.
  • Полный отказ от чтения кода исключает 100% уверенность в содержимом кодовой базы.

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

Практики проверки кода и значимость архитектуры

  • Современный аудит кода ИИ заключается в выборочной проверке критических узлов и потенциально слабых мест.
  • Безопасность, надежность и производительность остаются главными критериями, требующими инженерного контроля.

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

커뮤니티 글

모든 글 보기