Ревьюеры устали разбирать пул-реквесты на одну, две, три тысячи строк только потому, что какой-то ИИ-агент смог «закрыть задачу одним выстрелом». Небольшие PR никогда не требовались ради удобства написания — они всегда существовали ради удобства проверяющего. ИИ — огромное благо для индустрии, но он превращается в серьёзную проблему для тех, кто ревьюит и поддерживает код. Может, это просто брюзжание старика на облака, но пожалуйста — хватит присылать гигантские PR.
В последнее время не раз приходилось слышать аргумент вроде «без всего изменения оно просто не заработает» или «код ничего не будет делать, пока не внесём весь диффф целиком». Ну и что? Именно так и должно быть. Смысл небольших PR вовсе не в том, чтобы каждый из них представлял собой маленький, но полностью законченный продукт. Смысл — в небольших, усваиваемых, проверяемых и понятных кусках работы. Точных данных на этот счёт нет, поэтому позволю себе смелое предположение: время, необходимое для полного понимания фрагмента кода, растёт экспоненциально с числом строк, которые он затрагивает. Экспоненциальный рост затрат времени ревьюера ради того, чтобы кто-то мог сразу выкатить готовую фичу целиком, радости не приносит.
Заодно — не нужны комментарии на 50 строк. Документировать функции — это правильно: jsdoc, rustdoc, javadoc и всё в таком духе — пожалуйста. Но категорически не нужны пять строк комментария о том, почему переменная называется is_logged_in. Если переменная названа хорошо, в девяти случаях из десяти и так понятно, что она делает. А если название неудачное и требует пояснения — лучше просто дать переменной более удачное имя.
И, наконец, для сторонников максимального использования ИИ, которые говорят «просто прогони через ИИ и разберись (не путать с Grok)» — вы впустую тратите токены на повторное «переваривание» кода, который и так уже был сгенерирован ИИ. «Но я использую другую модель для ревью» — отлично, тогда зачем вообще отправлять это на ревью человеку? Может, стоит попросить своего драгоценного ИИ сначала разбить изменения на понятные куски для нас, простых смертных, а уже потом отдавать на проверку — после того как люди сделают свою часть работы?
ИИ — отличный инструмент, он реально ускоряет работу и способен улучшать код. Но когда появился React, никто не начал принимать более крупные PR только потому, что «на React быстрее писать и его легче читать». Так почему это происходит сейчас?
Дополнение: а может, вы специально делаете гигантские PR, чтобы я сдался на середине и просто одобрил их? Если так — что ж, отлично сыграно. Отлично. Сыграно.