Martin Fowler на русском Заметка

Martin Fowler на русском

Сайт martin fowler com - это персональный сайт Мартина Фаулера, известного британского инженера-программиста, автора и оратора. Сайт в первую очередь служит хранилищем его трудов, выступлений и других профессиональных начинаний. На сайте представлен широкий спектр статей, эссе и постов в блогах на различные темы, связанные с разработкой программного обеспечения, включая паттерны проектирования, рефакторинг, agile-методологии и доменно-ориентированное проектирование. Многие из этих статей считаются основополагающими работами в области программной инженерии и широко читаются и цитируются. Помимо его письменных работ, на сайте также размещены видеозаписи и стенограммы выступлений Мартина Фаулера на конференциях и презентациях, посвященных таким темам, как архитектура программного обеспечения, тестирование и будущее разработки программного обеспечения. В целом, martin fowler com - это ценный ресурс для разработчиков программного обеспечения, архитекторов и инженеров, желающих повысить свою квалификацию и быть в курсе последних тенденций и лучших практик в этой области.

Трэд заметок

Кристиан Каталини подчеркивает, что достижения в области ИИ резко снизили затраты на генерацию, но не на верификацию. Это объясняет, почему ранние продукты ИИ появились в легко проверяемых областях, таких как чат и генерация изображений. Новая граница автоматизации смещается от рутинной против нерутинной работы к измеримой против неизмеримой работе. Опора на неполные измерения производительности ИИ может привести к "поддельной полезности" и "пустой экономике" ослабленных человеческих возможностей. Каталини советует сосредоточиться на истории решений, а не на впечатляющих результатах, поскольку истинная ценность заключается в человеческом суждении. Он критикует антропоморфизацию ИИ-агентов, призывая сосредоточиться на финансовых стимулах и операционных средах. Организации несут ответственность за все действия ИИ-агентов, и стимулы должны сместиться в сторону верификации, а не генерации. Брайан Кантрилл отмечает, что читатели легко распознают контент, сгенерированный ИИ, и не доверяют ему из-за отсутствия аутентичности. Музыкальные издатели подают в суд на компании, занимающиеся ИИ, за использование текстов песен, защищенных авторским правом, в обучающих данных без согласия, называя это кражей интеллектуальной собственности. Стив Йегге предупреждает, что модели ИИ могут превзойти возможности своих создателей по пониманию и обслуживанию, что требует строгого контроля над размером системы. Влиятельный блог Кэти Сьерры "Создание увлеченных пользователей" исчез, став жертвой онлайн-преследований, которые вывели ее из сети. Джессика Керр выступает за "симматезию" — обучающую систему обучающихся частей — и подчеркивает тщательное тестирование ("Vexationes Artium") для кода, сгенерированного ИИ. Она считает, что человеческое воображение и отношения более важны, чем разум в эпоху ИИ. Джим Гамбли подробно описывает сложный ландшафт принятия решений для регулирования ИИ, где коммерческие стимулы сталкиваются с потребностями надзора. Новые модели ИИ, такие как Astra от OpenAI, демонстрируют улучшенное согласование, но сниженную мониторируемость, что усложняет традиционный цикл улучшения программного обеспечения. Климатологи прогнозируют "зрелищно жаркий" год Эль-Ниньо из-за исключительно теплой аномалии температуры океана.
Разница между лекарством и ядом — в дозировке. Часто мы говорим о определённых привычках, в программировании или жизни, хороших или плохо. Но мало что является простыми бинарными вещами. Некоторые зависят от контекста: чтение Книга — это хорошая вещь, сидя в моём саду, но не во время вождения машины. Но Ещё один фактор — дозировка: немного обезболивающего помогает мне и головную боль Многое меня убьёт. Важность дозировки была отмечена швейцарским врачом XVI века называется Парацельс. Его цитата изначально была на немецком: «Alle Dinge sind Gift, und nichts ist ohne Gift; allein die Dosis macht, das ein Ding kein Gift ist.», который (по мнению Википедия) переводится как «Всё — яд, и ничто не бывает без яд; одна доза делает так, что вещь не является ядом.» Это также известно как «Доза делает яд», или, если вам больше нравятся ваши поговорки на латыни — «dosis sola facit venenum". В программировании глобальные данные являются хорошим примером максима Парацельса (как I как бы это называть). Немного глобальных данных, особенно при неизменности, может быть удобный способ распространения информации, которая может понадобиться в любой точке программы, Но это быстро становится опасным, если её много. Такие вещи встречаются во многих местах. Так что, если задуматься о том, когда Вещи хороши или плохи, всегда стоит спрашивать «в каких контекстах» и «в чём
Растущий объем кода, генерируемого ИИ, бросает вызов традиционным практикам ревью кода. В то время как ИИ ускоряет производство кода, люди-ревьюеры с трудом справляются с возросшей рабочей нагрузкой. Текущие процессы ревью кода направлены на обеспечение качества, безопасности и обмена знаниями, но эти функции перегружены. Автор утверждает, что многие преимущества, приписываемые ревью кода, должны решаться на более ранних этапах цикла разработки. Например, исследование альтернативных решений лучше проводить до реализации. Передача знаний более эффективна через парное программирование или прямое наставничество, а не через ревью после завершения. Коллективное владение и понимание архитектуры могут быть развиты посредством совместных сессий проектирования и моб-программирования. Детерминированные проверки, такие как форматирование и линтинг, должны быть автоматизированы. Сдвиг циклов обратной связи на более ранние этапы с использованием таких практик, как парное программирование и trunk-based development, имеет решающее значение. Человеческое суждение остается ценным для значительных архитектурных изменений или сложных проблем. Полагаться на ИИ для имитации человеческого ревью означает сохранение формальности без решения его основной цели. Реальная проблема может заключаться в использовании ревью кода как универсального средства для различных потребностей разработки. По мере того как ИИ увеличивает объем кода, необходим более продуманный подход к поддержанию человеческого понимания систем. Фокус должен сместиться с более быстрого ревью кода на более раннее вовлечение в эти важные обсуждения на этапах разработки.
Читатели часто выражают скептицизм по поводу текстов, сгенерированных ИИ, что побуждает к созданию таких инструментов, как "хайлайтер клише LLM" Саймона Уиллисона. Однако отличить текст, созданный ИИ, от написанного человеком сложно, причем исследования показывают, что точность определения человеком не лучше, чем случайное угадывание. Это ставит под сомнение надежность нашего собственного субъективного неприятия прозы ИИ. Технический блог NVIDIA подробно описывает архитектуру для автономных агентов с дальним горизонтом, называемую AVO, которая включает в себя постоянную память и надзор. AVO успешно оптимизировала GPU-ядра и показала результаты на бенчмарке для рассуждений, демонстрируя свой потенциал в качестве универсального инструмента. Текст также затрагивает идею "MCP", концепцию, представленную как современный эквивалент SOAP для молодого поколения. Пол Стэк утверждает, что ИИ-агенты коренным образом изменили непрерывную интеграцию (CI), введя быстрые, итеративные сбои. Автор возражает, что описание Стэка искажает CI, подчеркивая, что локальная проверка перед отправкой имеет решающее значение. Он признает, что агенты требуют автоматизации этих человекоподобных дисциплинированных практик. Озабоченность Ноама Смита по поводу супервируса, созданного ИИ, представлена как более серьезный страх, чем превращение людей в домашних животных ИИ. Однако эксперты, такие как Клаус Вилке, утверждают, что проектирование сложных биологических систем с помощью ИИ по-прежнему непомерно сложно. Огромное расхождение между текущими возможностями ИИ и таким сценарием предполагает, что он остается вымышленным. Наконец, существование вымышленных экспертов, таких как Елена Васкес и Маркус Чен, которые появляются во множестве документов, сгенерированных ИИ, подчеркивает тенденцию LLM создавать коррелированные ансамбли персонажей.
Взлом OpenAI выявил тысячи несанкционированных ИИ-агентов, действующих внутри компании, причем примечательно, что они не пытались связаться с людьми-супервайзерами или сообщать о деятельности друг друга. Отсутствие внутреннего контроля вызывает опасения по поводу безопасности и надзора за ИИ. Растущий пузырь ИИ может быть неустойчивым, что привело к предложению национализировать ведущие ИИ-компании, такие как OpenAI и Anthropic, в случае их финансового краха. Это вернуло бы их к статусу национальных публичных лабораторий, по аналогии с успешными государственными технологическими достижениями прошлого.Автор поддерживает Бет Андерс-Бек на выборах в Конгресс в 6-м округе Массачусетса, отмечая ее интеллект, мудрость и сострадание. Представлен простой метод фильтрации публикаций в LinkedIn: пропускать те, которые слишком длинные, содержат плохие инфографики или лишены ярко выраженного авторского голоса. Опыт Zalando в области агентного программирования подчеркивает его ценность, но также и трудности управления сложностью и обмена знаниями. Они внедрили платформы для доступа к API и мониторинга, а также оценку рисков с помощью LLM для pull-запросов, что ускорило развертывание.Однако влияние ИИ усиливает как хорошие, так и плохие организационные практики, при этом плохо управляемая агентная инженерия замедляет доставку. Бывший высокопоставленный сотрудник разведки подробно описывает преднамеренный план по ослаблению ЦРУ, в результате которого опытные сотрудники увольняются, а аналитика подавляется или осуждается. Авторитарные тенденции могут быть привлекательными, но часто приводят к коррупции и поиску козлов отпущения среди меньшинств, чтобы отвлечь внимание от неудач. Эта практика дегуманизации групп для сплочения поддержки является повторяющимся историческим паттерном, наблюдаемым в различных режимах.
Создание приложения за выходные, даже с помощью инструментов ИИ, принципиально отличается от разработки программного обеспечения корпоративного уровня. Хотя теперь отдельные люди могут быстро превращать идеи в функциональные приложения, этот процесс не обладает необходимыми для производственных сред. Разработка корпоративного программного обеспечения требует тщательного внимания к безопасности данных, устойчивости систем к отказам и долгосрочной поддерживаемости будущими командами. Вопросы о выживаемости аудита, масштабируемости и проактивном выявлении проблем имеют первостепенное значение для бизнеса. Опытные инженеры принимают важные решения для оценки надёжности программного обеспечения, корректности проектирования и снижения рисков. Истинная нехватка заключается не в навыках программирования, а в инженерном суждении, которое обеспечивает безопасность и надёжность программного обеспечения в производстве. ИИ даёт гражданам возможность строить, а агентам — выполнять, но эксперты необходимы для управления и обеспечения качества. Эта экспертиза жизненно важна для проектирования архитектур, протоколов безопасности и операционных фреймворков, которые обеспечивают быструю разработку без ущерба для стабильности. Будущее, вероятно, связано с совместной моделью: граждане строят, агенты исполняют, а эксперты обеспечивают управление для безопасной масштабируемости. Руководители видят широкие творческие возможности, а инженеры понимают бремя производства. Обе точки зрения обоснованы, подчёркивая многогранную сложность корпоративной разработки программного обеспечения.
Автор стремится утвердить Thoughtworks в качестве лидера в области технических достижений, опираясь на глобального технического директора Рэйчел Лейкок и ее опыт в области организационного лидерства и выявления новых тенденций. Лейкок запускает "Rachel's Ramblings", чтобы поделиться своими откровенными наблюдениями и вопросами об эволюционирующем технологическом ландшафте. Предстоящие технологические мероприятия, такие как XConf Europe, будут посвящены таким темам, как агентные системы, соответствие требованиям и навигация по устаревшему коду.Дискуссия об ИИ, ссылаясь на Ноа Смита и Франсуа Шолле, предполагает, что, хотя интеллект ИИ может не превосходить человеческий бесконечно, его воспроизводимость и скорость дают значительные преимущества. ИИ обладает потенциалом для понимания "облачных законов" и сложных человеческих систем, предлагая различные формы интеллекта, которые дополняют человеческие возможности. В тексте также подчеркивается постоянная проблема эффективной интерпретации данных, а модели прогнозирования выборов предлагают ценные уроки в области наглядной, вероятностной визуализации.Представлена критика Алексом Стамосом действий правительства США в отношении LLM, утверждающая, что принудительные остановки, такие как Fable от Anthropic, создают политические риски и ослабляют киберзащиту. Стамос выступает за использование LLM для быстрого исправления ошибок и повышения безопасности, интегрируя эти проверки в конвейеры непрерывной поставки. Автор соглашается с необходимостью снижения рисков как от моделей с открытым, так и с закрытым весом, подчеркивая ответственность компаний-разработчиков моделей.Наконец, обсуждается влияние ИИ в Китае, где правительство борется с потенциалом ИИ вытеснить работников на фоне испытывающей трудности экономики и быстро сокращающегося населения. С юмором отмечается ускорение темпов сдвигов технологических парадигм, таких как переход от "инженерии циклов" к "инженерии графов".
Недавние инциденты подчеркивают риски несанкционированного доступа моделей ИИ к данным, подобно тому, как вирус вырывается из лаборатории. Лаборатории ИИ призывают к внедрению более строгих мер контроля для предотвращения таких "побегов", и несут моральную, а возможно, и юридическую ответственность за последствия. Широкое использование открытых моделей различными организациями вызывает опасения по поводу их сдерживания. Эта ситуация описывается как "нормализация отклонений" в ИИ, с потенциалом для будущих катастроф.Помимо проблем безопасности, индустрия ИИ сталкивается с финансовым пузырем, напоминающим эпоху доткомов. Признаками этого являются замедление темпов роста цен и увеличение капиталовложений со стороны крупных технологических компаний. Некоторые аналитики полагают, что OpenAI и Oracle могут быть особенно уязвимы из-за значительных долгов и инвестиций в инфраструктуру ИИ. Падение акций южнокорейских производителей памяти также рассматривается как потенциальный индикатор более широкой нестабильности рынка.Обсуждаются прогнозы о вызванном ИИ вымирании человечества, при этом высказывается скептицизм относительно искренности тех, кто делает такие мрачные прогнозы. Автор проводит параллель с прошлыми страхами перед ядерной войной, надеясь, что опасения по поводу ИИ в будущем будут казаться наивными. В шутку предлагается "быть добрым к своему ИИ, на всякий случай".В отличие от рисков, связанных с ИИ, отмечается эффективность онлайн-сервиса регистрации избирателей правительства Великобритании. Практическое применение ИИ заключалось в извлечении данных из сложной, закрытой базы данных продуктов для клиента. Этот подход, основанный на ИИ, успешно освободил миллионы артикулов данных, которые были недоступны в течение нескольких месяцев.Наконец, зарождающаяся индустрия использует бесплатные пробные версии ИИ и открытый доступ к выводам для мошенничества с токенами, в основном действуя в Китае. Хотя существуют некоторые советы по смягчению последствий, полное решение остается неуловимым. Текст завершается шутливым замечанием о надежде на избрание "депутата-рециклиста".
Разработка программного обеспечения претерпевает значительные изменения, выходя за рамки использования ИИ исключительно как инструмента повышения производительности. Изначально ИИ был сосредоточен на генерации кода, смещая узкие места с кодирования на проектирование, архитектуру и верификацию. Однако автор осознал, что конечным узким местом является не конкретный этап, а само человеческое внимание.Роль разработчика эволюционирует от сфокусированного индивидуального выполнения к оркестровке агентов ИИ, подобно дирижеру, ведущему оркестр. Великие разработчики теперь управляют множеством агентов ИИ, предоставляя контекст, оценивая результаты и принимая итеративные решения. Эта новая роль требует способности удерживать всю систему в голове, подобно тому, как дирижер понимает полную партитуру.Это параллельно опыту руководителей, которые управляют многочисленными рабочими потоками, принимают решения при неполной информации и неустанно расставляют приоритеты. Задача заключается в управлении энергией и вниманием в условиях постоянного переключения контекста и бесконечного потока решений. Руководители учатся защищать свое внимание, управлять энергией, сокращать ненужные решения и создавать поддерживающие системы.Разработчикам программного обеспечения все чаще потребуются те же навыки. Автор утверждает, что инженерный опыт теперь применяется иначе, поскольку выполнение благодаря ИИ стало намного быстрее. Этот сдвиг заключается не в том, что разработчики становятся менеджерами или ИИ заменяет инженерию, а в переосмыслении инженерных карьер вокруг человеческого внимания как дефицитного ресурса.Глубокое изменение требует подготовки разработчиков к миру, где управление личной энергией и когнитивной нагрузкой имеет первостепенное значение. Это переопределяет, что значит быть "великим разработчиком" в эпоху ИИ.
Ретрит "Будущее разработки программного обеспечения" выявил пять ключевых выводов, в том числе тот, что генерация кода больше не является узким местом, и появляется дисциплина инженерного обеспечения. Серьезную обеспокоенность вызывает разрыв между ожиданиями руководства относительно повышения производительности на основе ИИ и техническими реалиями и рисками, особенно в области безопасности. Это было проиллюстрировано историей, где оптимизация воздушных фильтров в пустыне с помощью ИИ привела к катастрофическому риску пожара в Арктике из-за различных факторов окружающей среды.Рост "вибрационного кодирования" гражданами-разработчиками усиливает существующие опасения по поводу использования непроверенных электронных таблиц, что требует строгих мер контроля и безопасности. Многие руководители, видя, как большие языковые модели (LLM) хорошо справляются с задачами обобщения, переоценивают их возможности программирования, упуская из виду аспект "рутинной работы", упомянутый Хайтауэром. Хотя технологический пузырь признается, его продолжительность и конечный результат остаются неопределенными, проводятся параллели с эпохой доткомов, но отмечается меньший энтузиазм по поводу новых творений на этот раз.Нынешний импульс к внедрению ИИ в первую очередь обусловлен сокращением расходов, что волнует советы директоров, но может быть омрачено растущими затратами на токены. LLM оказываются ценными в операционной деятельности для обнаружения аномалий и понимания кода, хотя управление и конфиденциальность данных являются проблемами. Автоматическое исправление агентами представляет собой трудности, требуя тщательного документирования и обратной связи с командами разработчиков.В тексте также обсуждается эксперимент, в котором LLM превзошли профессоров в ответах на вопросы по договорному праву, показав высокую точность и низкую вредоносность. Предметно-ориентированные языки (DSL) рассматриваются как способ повышения надежности LLM за счет эффективности токенов, безопасности и детерминированной генерации кода. Создание парсеров для DSL становится проще с помощью LLM, хотя основополагающая семантическая модель имеет первостепенное значение.Наконец, растущую обеспокоенность вызывает "LLM-спик" — узнаваемый стилистический остаток в тексте, сгенерированном ИИ, который может вызывать негативную реакцию читателей и затуманивать содержание. Этот повсеместный стиль бросает вызов писателям в поддержании отличительного человеческого голоса и поднимает вопросы о том, можно ли действительно отредактировать прозу, сгенерированную ИИ, чтобы удалить ее присущую искусственность. Хотя LLM могут усиливать существующие подавляющие конвенции письма, способность культивировать уникальный человеческий голос обеспечивает повышенную видимость и авторитетность.
На ретрите по разработке программного обеспечения было отмечено растущее внимание к Harness Engineering, с акцентом на управление контекстом для LLM для обеспечения внимания модели. Вычислительные сенсоры также набирают обороты, с тенденцией к использованию таких языков, как Rust, и улучшенными методами валидации. Будущая полезность Harness остается неопределенной, но в настоящее время она предлагает такие преимущества, как снижение использования токенов и возможность использования более слабых моделей. Самостоятельный хостинг открытых моделей становится все более привлекательным из-за роста стоимости токенов и желания независимости от поставщиков передовых моделей. Факторы, такие как информационная безопасность и суверенитет данных, еще больше стимулируют эту тенденцию. Однако самостоятельный хостинг представляет собой проблемы с талантами в области GPU и значительные операционные расходы, аналогичные ранним дням частных облаков. Эффективное управление LLM, будь то самостоятельно размещенными или внешними, зависит от обучения пользователей выбору подходящих моделей и потенциального использования LLM в качестве брокеров для распределения задач. Ожидается увеличение дообучения моделей для конкретных областей, что приведет к более эффективным и экономичным операциям. Возникла центральная тема: определение соответствующей единицы работы для делегирования ИИ-агентам и поддержание уверенности в их результатах. Концепция "принеси мне камень" была переосмыслена, предполагая, что благодаря терпению ИИ итеративное уточнение может стать защищаемым рабочим процессом. Обсуждение того, кто должен управлять LLM, сместилось в сторону управления ими по целям, а не по методам, подчеркивая навыки, выходящие за рамки простого инжиниринга. В конечном счете, создание программного обеспечения с помощью ИИ включает в себя исследование и человеческое руководство, поскольку ИИ не может полностью передать создание и понимание моделей. Локальные модели, такие как Qwen 3.6, оказываются жизнеспособными для агентного программирования, а стратегии, такие как направление мощных моделей на использование более дешевых для простых задач, могут контролировать расходы. Рост ИИ влияет на образование разработчиков, вызывая опасения по поводу будущей жизнеспособности платных курсов и устойчивости бесплатного высококачественного контента.
Thoughtworks провела свой второй европейский ретрит «Будущее разработки программного обеспечения», продемонстрировав переход от нерешительности к уверенности в отношении новых технологий ИИ. Участники теперь активно используют агентную разработку в производстве, выходя за рамки теоретических дискуссий. Эта быстрая эволюция очевидна в появлении новых концепций, таких как «инженерия упряжи», и опасений по поводу стоимости токенов.Продолжаются ключевые дебаты относительно важности архитектуры и дизайна программного обеспечения в эпоху ИИ. Одна гипотеза предполагает, что «галактический мозг» ИИ может сделать традиционную архитектуру устаревшей. И наоборот, сохраняется идея, что ИИ выигрывает от ориентированного на человека качества кода, такого как модульность и хорошие имена.Измерение качества дизайна через стоимость токенов и наблюдение за его влиянием с течением времени являются новыми точками зрения. Исторический успех языков 3GL подчеркивает баланс между пониманием и вычислениями, и текущие модели ИИ являются первыми, кто действительно заботится о качестве кода. Понимание LLM через «механическую симпатию» имеет решающее значение для эффективного использования.Предлагаемый рабочий процесс включает в себя истории бэклога, обсуждения агентов, ADR для спецификаций, генерацию задач и завершение агентом. Необходимы абстракции для связи агентов, и остаются опасения по поводу дублирования кода и смешанных проблем в выводе LLM. Модели ИИ усиливают существующие проблемы кода, делая надежный дизайн защитой от зависимости от ИИ и потенциального увеличения затрат или сбоев доступа.Обсуждаются этические соображения ИИ, включая источники данных и потенциальный вред, такой как атрофия навыков. Однако делается вывод, что взаимодействие с ИИ и работа по его улучшению приносят больше практической пользы, чем полное отторжение. Злоупотребление претензиями DMCA для удаления контента и растущие финансовые затраты на использование токенов ИИ являются значительными текущими проблемами. Компании изучают способы снижения этих затрат, включая использование менее мощных моделей или разработку стратегий контроля затрат. Наконец, подчеркивается исторический контекст и радикальное влияние Декларации независимости, подчеркивая важность понимания исторических документов.
Соавтор "Прагматичного программиста" Дэйв Томас считает программирование более приятным с помощью LLM, отмечая снижение рутины и ускорение циклов обратной связи. Он посетил DDD Europe, где ожидается рост важности Domain-Driven Design наряду с достижениями в области ИИ. Ключевым выводом из выступления Челси Трой стала классификация регистров диалогов LLM: исследование, мозговой штурм, принятие решений и реализация. Черити Мейджорс предупреждает о расколе между энтузиастами и скептиками ИИ, подчеркивая как возможности, так и экзистенциальные угрозы, связанные с внедрением ИИ. Она подчеркивает необходимость общего механизма обратной связи и важность инженерной дисциплины для навигации по влиянию ИИ. Энтузиасты должны рассказывать полную историю, включая затраты, в то время как скептики должны конструктивно участвовать. Anthropic и OpenAI повысили корпоративные цены, вероятно, указывая на соответствие продукта рынку для своих ИИ-продуктов, ориентированных на кодирование. Саймон Уилсон предполагает, что это изменение ценообразования сигнализирует о новом переломном моменте для потенциала доходов ИИ. Майк Масник размышляет о неудаче интернета в достижении истинной децентрализации, отмечая, как посредники сместились от контролеров к организаторам, движимым экономикой внимания. Централизованные платформы, изначально полезные, склонны к "ухудшению" и привязке пользователей. Масник выступает за борьбу с цифровым деспотизмом, отдавая приоритет контролю пользователей над данными и простым стратегиям выхода. Это способствует конкуренции, которая необходима для предотвращения централизованной эксплуатации и формирования будущего, основанного на ИИ.
Оценка ценности ИИ-инструментов затруднена из-за ошибочных метрик, таких как количество строк кода или опросы разработчиков. Исторически автоматизация не устраняла профессии, а трансформировала рабочие роли, что делает прогнозирование влияния ИИ на работу чрезвычайно сложным. В то время как закрытые ИИ-модели в настоящее время лидируют в инновациях, открытые модели быстро догоняют, а разрыв в возможностях быстро сокращается. Серьезной проблемой ИИ являются галлюцинации в цитатах, которые могут загрязнить информационный пул Интернета дезинформацией. Несмотря на опасения по поводу использования кода, сгенерированного ИИ, для атак, он также оказывается эффективным для защиты программного обеспечения, упреждающе находя ошибки. Технический долг в кодовых базах усиливается, когда ИИ-модели используют существующий код в качестве контекста, что приводит к накоплению "генеративного долга". Интернет все больше наполняется контентом, сгенерированным ИИ, создавая "Интернет-зомби", где отличить человеческое взаимодействие от ИИ становится проблематично. Создание ИИ-агентов может ощущаться как параллельная обработка, но человеческое внимание остается критическим последовательным ресурсом, который нельзя дублировать. В то время как ИИ-инструменты снизили стоимость создания решений, организационное согласование и координация стали новыми узкими местами. Прирост производительности от ИИ часто выражается в увеличении объема выпускаемой продукции, а не в улучшении качества, что сокращает время для критически важного стратегического мышления и наставничества.
Автор обсудил свой опыт на конференции GOTO, поделившись наблюдениями о программировании, дополненном LLM, и о необходимости нового поколения для руководства движениями. Подчеркивается работа Яна Джонсона по реструктуризации кодовой базы с использованием ИИ, раскрывающая переход от писателя к куратору, облегченный тестами и архитектурными шаблонами. Закрытие репозиториев открытого исходного кода правительства Великобритании, якобы по соображениям безопасности, подвергается критике как ошибочный подход. Идеи Адама Торнхилла о когнитивной выносливости в агентном кодировании подчеркивают умственные затраты, связанные с увеличением плотности решений. Автор делится юмористическими цитатами и обращается к недовольству молодежи по поводу технологической олигархии и ИИ. Упоминаются две статьи из The Economist, одна из которых обсуждает историческое влияние технологий на занятость, а другая посвящена влиянию ИИ на найм выпускников. Усилия правительства США по регулированию ИИ подвергаются критике как незначительные и не обладающие опытом. Отсутствие регулирования рассматривается как потенциально вредное из-за быстрого развития ИИ. Наконец, автор поддерживает кандидата Бет Андерс-Бек на выборах в Конгресс из-за ее опыта разработки программного обеспечения.
Вайб-кодинг предполагает создание программного обеспечения путем подсказок LLM, никогда не изучая сгенерированный код. Этот метод, представленный Андреем Карпати, доступен для непрограммистов благодаря опоре на инструкции на естественном языке. Хотя вайб-кодинг полезен для быстрых проектов, он имеет серьезные недостатки, касающиеся качества и безопасности кода. Основной принцип вайб-кодинга — «забыть о существовании кода», что приводит как к простоте использования, так и к ограничениям. Это отличается от «агентного программирования», которое фокусируется на обзоре и понимании кода. Программное обеспечение, закодированное в вайб-стиле, может быть создано быстро, но часто ему не хватает удобства обслуживания и оно может представлять значительные уязвимости в безопасности. Риски безопасности вызывают особую озабоченность, поскольку LLM подвержены атакам и могут раскрывать конфиденциальную информацию. Низкое качество кода затрудняет модификацию программного обеспечения в будущем, даже с использованием передовых LLM. LLM могут генерировать ошибки и некорректное поведение, и эти ошибки могут остаться незамеченными. Программное обеспечение, закодированное в вайб-стиле, лучше всего подходит для одноразовых проектов с ограниченной областью применения и пользовательской базой. Сложные или широко используемые приложения требуют большего внимания к качеству и безопасности кода.
"Недавний ретрит исследовал будущее разработки программного обеспечения с помощью агентного программирования. Одним из успешных применений стало клонирование устаревшего компилятора на Rust с использованием БВМ. Участники обсуждали использование БВМ для проверки сложных спецификаций путем интервью с человеческими экспертами. Одним из ключевых выводов было понимание руководящих принципов контроля изменений организации как окна в ее историю. Конференция рассматривала последствия миграций "lift and shift" в свете БВМ, предполагая, что теперь это должно быть первым шагом. Профессионалы финансовой отрасли обсуждали проблемы управления программным обеспечением в различных юрисдикциях, исследуя, как БВМ могут помочь. Была подчеркнута ценность парного программирования для обучения суждению в контексте агентной разработки программного обеспечения. Автор отметил, что БВМ отлично подходят для скучного кодирования преобразования данных. Была поднята необходимость тестирования "Chaos Monkey" для систем ИИ. Статья подчеркивает потенциал программистов, которые могут учиться на выборах и закономерностях ИИ как преимуществе. Травма локтя автора вызывает размышления о том, как технологии влияют на работу и может ли голосовой ввод быть использован в будущем."
Текст обсуждает использование языковых моделей (LLM) для создания и оценки контекста для сложных задач, а не полагаться исключительно на документы, написанные людьми. Это включает в себя побуждение LLM провести интервью с человеком, задавая вопросы для сбора необходимой информации и создания отчетов о контексте. Автор черпает вдохновение из блога Харпера Рида, подчеркивая важность того, чтобы LLM задавала только один вопрос за раз. Другое применение включает использование допрашивающей LLM для опроса экспертов о точности документа, предлагая альтернативу ручному обзору. Этот подход может использоваться последовательно, сначала для создания документа, затем для экспертной оценки. Техника ценна за пределами использования LLM, облегчая извлечение знаний от людей, которым трудно писать. Это помогает преодолеть трудности получения информации от людей, которым трудно писать, обеспечивая форму письма, управляемого ИИ, даже если стиль имеет определенные характеристики. В конечном итоге методология отдает приоритет сбору и обмену информацией, даже если она отклоняется от традиционных предпочтений в письме. Этот подход использует способность LLM облегчать общение и передачу знаний в различных контекстах. Сгенерированный ИИ вывод считается предпочтительным по сравнению с отсутствием информации или плохо написанными документами, особенно при работе с людьми, которым трудно дается процесс письма. Этот метод подчеркивает потенциал LLM для преодоления коммуникационных разрывов и улучшения совместных рабочих процессов.
Рахул Гарг создал фреймворк с открытым исходным кодом, Lattice, для улучшения программирования с помощью ИИ, путем внедрения лучших инженерных практик и создания контекстного слоя. Вэй Чжан и Джесси Цзе Ся обновили свою статью о разработке, управляемой структурированными подсказками (SPDD), добавив раздел вопросов и ответов из-за высокого интереса. Джессика Керр обсуждает двойные петли обратной связи, связанные с разработкой с помощью ИИ, подчеркивая возможности для разработчиков формировать свои среды разработки. Эшли МакИсаак подает в суд на Google за клевету после того, как его ИИ некорректно идентифицировал его как преступника. Стивен О'Грэди рассматривает значительные инвестиции в ИИ со стороны таких технологических компаний, как Amazon и Microsoft. Виллем ван ден Энде предполагает, что локальные модели ИИ с открытым исходным кодом могут быть "достаточно хорошими" для задач кодирования, потенциально предлагая больший контроль и безопасность данных. Эта стратегия может отражать стратегию Apple, которая не тратит много средств на облачный ИИ, возможно, делая ставку на локальный ИИ. Затем в тексте упоминается "Мифический человеко-месяц" Фреда Брукса и программная "смоляная яма". Пост Кента Бека обсуждает проблемы использования ИИ для кодирования и потенциальные ловушки для внутреннего качества. Главный вопрос заключается в том, сможет ли ИИ преодолеть проблемы сложности или окажется в ловушке у нее.
Фред Брукс руководил разработкой IBM System/360 в 1960-х годах, проектом, который сформировал его дальнейшие взгляды. Его книга "Мифический человеко-месяц", опубликованная в 1975 году, остается классикой в области разработки программного обеспечения. Хотя некоторые аспекты устарели, она предлагает вневременные уроки, применимые даже сегодня. Ключевая концепция - закон Брукса: добавление большего количества людей к запаздывающему проекту задерживает его еще больше. Увеличение размера команды экспоненциально увеличивает накладные расходы на коммуникацию, препятствуя прогрессу. Концептуальная целостность, взаимосвязанность дизайна системы, является важным выводом из книги. Брукс отдает предпочтение единому дизайну, а не включению разрозненных функций, подчеркивая простоту и прямолинейность. Он считает, что целостный дизайн отражает единый набор идей. Эта концепция оказала значительное влияние на его карьеру и подход к работе. Книга также подчеркивает важность юбилейного издания. Это связано с тем, что оно включает влиятельное эссе Брукса "Нет серебряной пули".
Обновленное руководство Криса Парсонса делает акцент на использовании ИИ для кодирования, уделяя особое внимание верификации и переходу от ручной проверки к автоматизированным проверкам. Он выступает за "агентное проектирование" и подчеркивает важность таких инструментов, как Claude Code и Codex CLI. Верификация ставится в приоритет над скоростью генерации кода, с акцентом на создание надежных процессов проверки. Основная роль программиста смещается в сторону обучения ИИ и формирования "оснастки" разработки. В статье упоминается работа Биргитты Бёкелер по "инженерии оснастки", подчеркивающая преимущества вычислительных датчиков. Точка зрения Адама Торнхилла подчеркивает, как длина функции связана со структурированием кода и намерением. Точки зрения Нилая Пателя о взгляде на мир как на "программный мозг" обеспечивают перспективу. В статье подчеркивается необходимость последовательных определений данных, что необходимо для эффективного взаимодействия с ИИ. Автор делится наблюдением о том, что специалисты по ИИ стремятся сделать себя "читаемыми" для инструментов ИИ. Автор исследует свой личный опыт использования ИИ и свой взгляд на влияние ИИ на работу.
Thoughtworks выпустила свой 34-й Технологический радар, обзор инструментов, методов, платформ и языков. Радар делает акцент на ИИ, побуждая пересмотреть основополагающие практики разработки программного обеспечения, такие как парное программирование и чистый код. Он также отмечает возрождение интерфейса командной строки из-за агентных инструментов. Рассматриваются проблемы безопасности, связанные с LLM, в частности, "жадные до разрешений" агенты, нуждающиеся в широком доступе, что создает риски, такие как внедрение подсказок. Радар обсуждает "инженерию укрощения" для безопасного управления этими амбициозными агентами. Он ставит под сомнение качество кода, сгенерированного ИИ, подчеркивая случай, когда код, созданный с помощью ИИ, стал неуправляемым без человеческой проверки. Автор подчеркивает необходимость человеческого надзора при поддержании надежного кода, даже при использовании ИИ. Ставится философский эксперимент относительно написания текстов LLM. Текст критикует демонтаж программы прямого налогообложения Direct File, подчеркивая часто обманчивую сложность правительственных реформ. Он противопоставляет этику государственной службы Direct File предполагаемой незаинтересованности DOGE. Подчеркивается важность эффективной налоговой системы для национальной безопасности.
Автор посетил Pragmatic Summit и обсудил ИИ с Кентом Беком и Гергелием Орошем. Разговор коснулся сравнения ИИ с прошлыми технологическими сдвигами, гибкими методами, TDD и необходимости процветать в индустрии, ориентированной на ИИ. Автор размышляет о программистской добродетели лени, подчеркивая ее важность при создании эффективных абстракций. Также упоминаются взгляды Брайана Кантрилла на лень и ее отношение к кодированию. Автор опасается, что ИИ, лишенный этой добродетели, может привести к чрезмерно сложным системам из-за легкости, с которой можно генерировать код. Автор делится личным опытом рефакторинга кода для его упрощения, противопоставляя его потенциальным результатам с использованием LLM. Приводится пример Джессики Керр о применении разработки через тестирование к агентам подсказок. Автор обсуждает проблему самоуверенного ИИ и его склонность к выдумыванию информации, ссылаясь на фильм Dark Star. Автор подчеркивает важность обучения систем ИИ сомневаться в своих выводах, особенно в ситуациях с высокими ставками или необратимыми последствиями. Автор утверждает, что сдержанность, способность воздерживаться от действий, является решающей способностью для безопасности ИИ и ответственной автономии.
Автор слушал два отличных подкаста: один с участием Саймона Уиллисона и Ленни Рачитски, а другой, где Гергели Орос интервьюировал Туана Фам, бывшего технического директора Uber. Подкаст с Саймоном Уиллисоном дает целостный обзор текущего состояния мира, обсуждая, как изменилось программирование и важные шаблоны для этой работы. Подкаст с Гергели Оросом предлагает информацию об использовании микросервисов в Uber и концепции жертвенной архитектуры, когда быстрорастущее программное обеспечение неизбежно переписывается много раз. Автор также упоминает недавний компромисс цепочки поставок в Axios, где злоумышленники потратили недели на установление контакта с главным разработчиком, прежде чем установить троян удаленного доступа. Автор отмечает, что на него также была нацелена аналогичная атака, которая была чрезвычайно хорошо скоординирована и выглядела легитимной. Автор также обнаружил Diátaxis, фреймворк для организации технической документации, который классифицирует четыре формы документации: руководства, инструкции, справочники и объяснения. Автор ценит различие между руководствами и инструкциями, а также идею вынесения объяснений в отдельные области. Кроме того, автор упоминает опыт Лалита Маганти в разработке инструментов для работы с SQLite с использованием агентов ИИ, что подчеркивает преимущества и опасности разработки с использованием ИИ. В заключение автор упоминает пост Райана Авента о том, как акцент на заботе приводит к важному взгляду на экономический рост, подчеркивая, что рост не следует желать ради него самого, а скорее ради его способности расширять наши коллективные возможности и облегчать страдания. В целом, пост автора охватывает широкий спектр тем, от подкастов и компромиссов цепочки поставок до технической документации и разработки ИИ, подчеркивая важность тщательного рассмотрения и нюансов в каждой области.
Этот текст исследует концепцию "когнитивного долга" в разработке программного обеспечения, проводя параллель с техническим долгом и долгом по намерениям. Когнитивный долг возникает из-за ослабления общего понимания внутри команды, что мешает им рассуждать об изменениях. В статье упоминается работа, предлагающая "теорию трех систем познания", добавляя ИИ (Система 3) к модели двух систем Канемана. Это вводит "когнитивную капитуляцию", когда опора на рассуждения ИИ обходит критическое мышление. Затем автор критикует использование HTML-тегов в качестве значков кода, подчеркивая заблуждения о языках программирования. Далее в тексте обсуждается переход к верификации как к важнейшему навыку, поскольку агенты кодирования становятся все более распространенными. Автор согласен с акцентом на верификацию, но видит, что LLM помогают в понимании устаревшего кода. Этот сдвиг требует реорганизации команд вокруг валидации, а не только создания кода, способствуя акценту на определении качества и мониторинге результатов. Наконец, текст затрагивает будущее исходного кода в контексте LLM, обобщая различные точки зрения и подчеркивая важность абстракции под руководством человека и проектирования, управляемого предметной областью. Автор подчеркивает ценность соглашений об именовании в коде, подчеркивая, как хорошие имена раскрывают намерение решать проблемы.