Вежливость в коде

August 21, 2018 &russian @code #code-review

Чистота кода – понятие не новое. Все разработчики стремятся к читаемости, поддерживаемости, простоте, отсутствию copy-paste и hardcode. Случается, что в программном коде можно увидеть нецензурную лексику и оскорбления. Своим мнением на эту тему поделился Александр Шестаков, который рассказал, чем чревато использование ругательств и какой опыт компании в этом направлении.

В конце года была разработана система, собирающая статистику по commit-ам, pull request-ам и комментариям. Для анализа используются данные только из нашего внутреннего Bitbucket-сервера. Система ежемесячно рассылает разработчикам и ресурсным менеджерам информацию об активностях разработчиков. Система используется еще и с целью обнаружения разного рода аномалий и «проблем».

В процессе анализа данных стало понятно, что на множестве проектов коллеги оставляют не очень уместные или даже очень неуместные комментарии к коду в процессе review. В частности, встречается обсценная лексика, неуважительное отношение к коллегам и т.д. Я создал отчет, который обнаруживает употребление таких слов. За основу были взяты общедоступные словари и фильтры «плохих слов» на русском и английском языках.

В итоге статистика получилась довольно интересной. Большинство «плохих слов» пришли к нам из «далекой древности». Заказчики или представители предыдущей команды разработки присылали нам legacy-код. Он нередко был импортирован в наш репозиторий от имени сотрудников компании. В нем авторы нелестно выражались о возможностях Internet-explorer-а, «угрожали» детям разработчиков и сетовали на то, что они бесцельно тратят свою жизнь на борьбу с такого рода дефектами.

Мы, конечно, посмеялись… но начали находить в code review и довольно злобные комментарии, которые оставляли наши разработчики. С ними пообщались о проблеме, повторов быть не должно.

Чем чревато использование нецензурной лексики в code review? Во-первых, на вас обидятся и могут превратно понять ваши благие намерения. Комментарии к коду никак не должны затрагивать личность человека, который его написал. Комментарии – они к коду, а не к автору.

Во-вторых, употребление таких выражений – это ещё и показатель непрофессионализма. Если человек не в состоянии выразить свою мысль без матерных слов, наверное, ему стоит еще раз подумать – и мысль окрепнет, станет понятнее и доступнее.

Недавно один сотрудник при заполнении самоопросника о квалификации отметил, мол, «вот нам тут недавно запретили выражаться на code review, что резко снизило информативность самого процесса – теперь мы не можем измерять количество вводных «WTF» на строку кода и нам стало жутко неудобно». Отсылка к метрике шикарна, надеюсь, на самом деле «жутко неудобно» не стало.

На мой взгляд, сарказм и дружеский стёб в командном общении вполне допустимы – в рамках разумного. Но не стоит затрагивать гендерные темы и темы расовой принадлежности… В некоторых случаях культурные различия могут накладывать отпечаток на взаимопонимание. Заказчики, когда получают доступ к нашему Bitbucket-у, на такие моменты реагируют по-разному. В иностранной культуре может быть табу на определенную тему. Например, тему матери. Не позволяйте себе выражения в стиле «your mama is so fat». Внятно объяснить заказчику, почему в сообщении об ошибке написано «100 *ёв», может быть весьма затруднительно 😉

Не стоит допускать матерщину ни в комментариях к review, ни в commit-ах, и особенно в самом коде и комментариях к нему. Пожалуйста, внимательно относитесь к тому, что вы пишете. Комментируя работу коллег, вы так или иначе оказываете на них влияние.