"Дедовщина" на code review

"Дедовщина" на code review

SiteBot·

Попросили разместить

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

Как вы уже наверное догадались из названия, я хочу рассказать о придирках на code review. Каждый из нас, кто работал в более-менее крупных командах, с этим сталкивался. Когда ты выкладываешь код, 20% замечаний - это действительно вскрытие важных багов. Для этого code review и придумали, потому что глаза одного человека всегда замыливаются, и взгляд со стороны нужен, не важно джун ты или сеньор. Поэтому не нужно отказываться от code review.

А 80% замечаний - это нечто в стиле: вот тут можно более красивые абстракции переписать, как учили в книгах по паттернам проектирования, вот тут можно более модную библиотеку, а вот тут давай все на свете переименуем (а потом ещё раз переименуем), а вот тут давай заложим побольше гибкости на случаи, про которые мы пока ничего не знаем (а потом всё равно всё переписывать, потому что будущее непредсказуемо), а вот тут можно более красивую конструкцию языка применить, а вот тут давай структуру классов полностью поменяем, потому что мне так больше нравится и прочее прочее.

Есть обобщить - это замечания, требующие переписать код на другой вариант, который в целом плюс-минус такой же, как уже написанный, с точки зрения функциональности, читаемости и расширяемости. Это возникает всякий раз, когда есть больше одного равноценного способа сделать это (т.е. почти всегда). Почти всегда у каждого из нас своё мнение о красоте кода, и каждый из нас пытается это мнение продвинуть. В ущерб общей цели команды - сделать продукт как можно быстрее. Особенно неприятно то, что часто такие замечания исходят от людей с погонами - ведущих, лидов и проч., т.е. таких, которым нельзя просто так взять и отказать.

Если вы пишете такие замечания, помечайте, что они опциональные, не вставляйте палки в колёса разработчикам вашей команды! Поймите же, что когда вы пишете такие замечания как блокирующие, вы ухудшаете производительность команды - каждое такое замечание это всегда лишнее время, даже если не будет переписывания кода, надо потратить время на обсуждения. Любое переписывание уже готового кода - это всегда риск посадить новые скрытые баги (кто работал на практике а не в теории знают, что юнит-тесты это не панацея, да и не всегда ими всё покрыто в проекте). Кроме всего прочего, вы этими замечаниями демотивируете разработчика - вместо того, чтобы делать код для продукта, он делает код для удовлетворения ваших хотелок. Такая команда вдолгую проигрывает конкуренцию тем, командам, в которых понимают что ценнее: чуть более идеальный код или время и ресурсы, которые будут потрачены на его переписывание туда-сюда.

Поймите, что теория из умных книг по паттернам и реальная практика очень отличаются. Хотите писать самый идеальный код на свете - делайте это дома в качестве хобби. Может быть суровым технарям не понравится эта суровая правда, но она правда: в современном рыночном IT код - это всего лишь инструмент достижения целей бизнеса.

Анонимус

Комментарии (133)

Правила комментирования
  • Любые темы про политику, войны, или всё то, что НЕ относится к теме сайта, будут УДАЛЯТЬСЯ.
  • Всё, что попадает под возможные нарушения законодательства РФ (экстремизм, призывы, дискредитация, оправдание, возбуждение и т.п.) - тоже.
  • Любые бессмысленные оскорбления участников сайта или тематики сайта. Если с чем-то не согласны - приводите аргументацию, а не оскорбления.
  • Запрещается упоминание в негативном контексте (клевета) каких-либо персоналий - физических или юридических лиц.

Мы стараемся сделать комментарии ценным информационным материалом, засорять сайт мусорными обсуждениями, никак не относящимися к теме сайта, не нужно! Спасибо за понимание.

0 / 10000

Форматы: JPG, PNG, WebP. Не более 5 файлов (по 10 МБ). Можно вставить из буфера (Ctrl+V).

Загрузка комментариев…