«Баги нельзя найти, читая код». Одна строка про ревью расколола экспертов

Марк Джейсон Доминус заявил: главная цель код-ревью — найти код, который будет тяжело поддерживать, а не искать баги, потому что «в общем случае найти баги, разглядывая код, невозможно». А потом тред обнаружил, что никто не согласен даже в том, зачем ревью вообще нужно.

Вкратце

Формулировка оказалась слишком резкой, и автор зашёл в тред её сузить: как математик он имел в виду, что нельзя найти все баги или какой-то конкретный баг, а не то, что баги не находятся вовсе.

Сооснователь WebAssembly не купился и на смягчённую версию, назвав тезис «самооправданием ленивого ревьюера». А ветеран с 90 тысячами кармы сформулировал главную находку: единой цели у ревью нет — все думали, что делают это по одним причинам, а на деле нет.

Тезис в одну строку — и отступление

Марк Джейсон Доминус (mjd), математик и программист, выложил намеренно острое утверждение: главная цель код-ревью в том, чтобы найти код, который будет тяжело поддерживать, а не искать баги. Обоснование было ещё резче: «в общем случае найти баги, разглядывая код, невозможно». Плюс замечание про несимметричную вину за охоту на баги: выложись до изнеможения, найди три бага — и тебя всё равно упрекнут за пропущенный четвёртый. (Mathstodon для этого выпуска не отрендерился; процитированные строки читатели воспроизвели дословно.)

Поскольку фраза бьёт сильнее задуманного, автор пришёл в тред очертить границы:

«Автор — математик, поэтому, когда он говорит «в общем случае найти баги, разглядывая код, невозможно», он не имеет в виду, что найти баги совсем нельзя. Он лишь про то, что нельзя найти все баги или хотя бы какой-то конкретный баг.» — Марк Джейсон Доминус, автор поста

Само разногласие и стало открытием

Суженный тезис не устроил самого острого критика:

«Это лишь делает и ревьюеров, и авторов ленивее. Цель код-ревью многогранна. Тяжело поддерживать? Да. Могут быть баги? Да… Эта небрежная заметка — по большей части ещё одно самооправдание ленивого ревьюера.» — сооснователь WebAssembly и бывший ведущий компилятора V8

Тот, кто занимается ревью профессионально, отверг саму посылку:

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

А затем комментарий, который переосмыслил весь спор, назвав причину, по которой все говорили мимо друг друга:

«нет никакой единой цели код-ревью, которую можно обсуждать. Оказывается, пока все мы думали, что делаем это по одним причинам, на деле — нет. И это реально так. У нас разные цели, у нас разная методология.» — ветеран-комментатор с кармой около 92 тысяч

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

Получайте такие разборы каждый день

Главные истории Hacker News — на email, в Telegram или RSS.

Следующая новость · 15 из 26 Читать дальше
🚀Tech

GitHub добавил китайскую open-модель в Copilot. А тред обсуждал, как бежит от подорожания

Появление Kimi K2.7 Code в GitHub Copilot — настоящая веха: китайскую open-weight модель теперь можно запускать у доверенного провайдера. Но комментарии превратились в референдум о июньском подорожании Copilot и о клиентах, которых оно выгнало.

★ 402 · 💬 165 · github.blog · 2 мин