Попросили разместить
Я хочу рассказать об одном явлении в нашей профессии, которое портит жизнь всем. Бизнесу - тем, что удорожает разработку. Программисту - тем, что делает профессию неинтересной. Обществу в целом - тем, что в мире становится больше токсичности. И как следствие, больше нытья на данном ресурсе.
Как вы уже наверное догадались из названия, я хочу рассказать о придирках на code review. Каждый из нас, кто работал в более-менее крупных командах, с этим сталкивался. Когда ты выкладываешь код, 20% замечаний - это действительно вскрытие важных багов. Для этого code review и придумали, потому что глаза одного человека всегда замыливаются, и взгляд со стороны нужен, не важно джун ты или сеньор. Поэтому не нужно отказываться от code review.
А 80% замечаний - это нечто в стиле: вот тут можно более красивые абстракции переписать, как учили в книгах по паттернам проектирования, вот тут можно более модную библиотеку, а вот тут давай все на свете переименуем (а потом ещё раз переименуем), а вот тут давай заложим побольше гибкости на случаи, про которые мы пока ничего не знаем (а потом всё равно всё переписывать, потому что будущее непредсказуемо), а вот тут можно более красивую конструкцию языка применить, а вот тут давай структуру классов полностью поменяем, потому что мне так больше нравится и прочее прочее.
Есть обобщить - это замечания, требующие переписать код на другой вариант, который в целом плюс-минус такой же, как уже написанный, с точки зрения функциональности, читаемости и расширяемости. Это возникает всякий раз, когда есть больше одного равноценного способа сделать это (т.е. почти всегда). Почти всегда у каждого из нас своё мнение о красоте кода, и каждый из нас пытается это мнение продвинуть. В ущерб общей цели команды - сделать продукт как можно быстрее. Особенно неприятно то, что часто такие замечания исходят от людей с погонами - ведущих, лидов и проч., т.е. таких, которым нельзя просто так взять и отказать.
Если вы пишете такие замечания, помечайте, что они опциональные, не вставляйте палки в колёса разработчикам вашей команды! Поймите же, что когда вы пишете такие замечания как блокирующие, вы ухудшаете производительность команды - каждое такое замечание это всегда лишнее время, даже если не будет переписывания кода, надо потратить время на обсуждения. Любое переписывание уже готового кода - это всегда риск посадить новые скрытые баги (кто работал на практике а не в теории знают, что юнит-тесты это не панацея, да и не всегда ими всё покрыто в проекте). Кроме всего прочего, вы этими замечаниями демотивируете разработчика - вместо того, чтобы делать код для продукта, он делает код для удовлетворения ваших хотелок. Такая команда вдолгую проигрывает конкуренцию тем, командам, в которых понимают что ценнее: чуть более идеальный код или время и ресурсы, которые будут потрачены на его переписывание туда-сюда.
Поймите, что теория из умных книг по паттернам и реальная практика очень отличаются. Хотите писать самый идеальный код на свете - делайте это дома в качестве хобби. Может быть суровым технарям не понравится эта суровая правда, но она правда: в современном рыночном IT код - это всего лишь инструмент достижения целей бизнеса.
Анонимус


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