Clean Code
13.3K subscribers
2.32K photos
5 videos
2.97K links
Советы по написанию кода, обзоры распространенных ошибок и многое другое.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

РКН: clck.ru/3Ht6ch
加入频道
🧑‍💻 Не «ты», а «код»

Как правильно говорить о результатах ревью кода
Если вы когда-либо учились разрешать конфликты, вы, вероятно, знаете о важности предложений, начинающихся с «я». Использование таких фраз как «я думаю», «я чувствую» вместо «ты сделал» имеет большое значение для снятия напряжения и смещения фокуса с человека на саму проблему.

То же самое можно отнести и к ревью кода. Когда критикуете что-нибудь, важно избегать слова «ты» («вы»). Человеку и без того трудно принять критику его работы, так что не надо усложнять эту задачу, заставляя его прочувствовать, что это именно он был неправ. Например, можно совершенно изменить тон своего комментария, заменив «У тебя в в 25-й строке непонятная логика» на «Мне непонятна логика в 25-й строке». Я точно знаю, какой вариант я бы предпочла услышать, если бы это мой код просматривали.

Clean Code #совет #cleancode #CodeReview
🧑‍💻 Используйте комментарии строк

Для большинства проектов наша команда использует GitHub. Одна из моих любимых фич этой платформы – возможность запостить комментарий, касающийся конкретной строки кода. Это избавляет нас от многих трудностей, а также помогает не допустить возможной путаницы, которая возникает при написании объемных комментариев с указанием строк и файлов. Если большая часть ваших комментариев – единичные изменения, функционал GitHub может помочь в создании простого чекбокса поправок, которые нужно внести.

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

Clean Code #совет #cleancode #CodeReview
🧑‍💻 Как можно раньше устанавливайте стандарты оформления кода и используйте инструменты, которые могут помочь в проведении ревью

Нужно как можно раньше устанавливать стандарты написания кода для вашего проекта.

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

Не важно, разрабатываете вы собственные стандарты или используете какие-то из множества уже существующих. Главное, чтобы в результате у вас была единообразная, связная кодовая база.

Clean Code #совет #cleancode #CodeReview
🧑‍💻 Начинайте с общего плана, а затем углубляйтесь в детали

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

1) Есть ли здесь проваленные тесты? Если да, то в чем причина?
2) Есть ли в этом пул-реквесте лишние файлы?
3) Можно ли выполнить checkout этой ветки без единой ошибки?
4) Была ли обновлена соответствующая документация, отражены ли в ней представленные в коде изменения?
5) Добавлены ли в проект новые пакеты или зависимости? Если да, то почему? Нужны ли они?
6) Является ли HTML валидным, семантическим и доступным?
7) Соответствует ли CSS стандартам проекта? Как насчет межбраузерной совместимости?
8) Соответствует ли JavaScript стандартам проекта? Является ли он модульным? Легко ли прослеживается логика? Учтены ли edge cases?

Если на первых нескольких шагах встречается много проблем, я обычно на этом и заканчиваю ревью и жду, пока эти проблемы будут исправлены, а уж потом продолжаю углубляться в код.

Clean Code #совет #cleancode #CodeReview
🧑‍💻 Отведите время на ревью кода

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

Нужно запланировать время, в которое вы будете заниматься просмотром кода. Например внести это в свое расписание и тогда ваша команда будет знать, когда можно рассчитывать получить фидбэк по своему коду.

Clean Code #совет #cleancode #CodeReview
🧑‍💻 Оговаривайте свои ожидания

Вы привязываете ваши пул-реквесты к выпускам? Для подтверждения пул-реквеста требуется определенный формат? Есть ли у вас ограничение на количество строк в единичном пул-реквесте?

Если вы ответили утвердительно на любой из этих вопросов, важно оговорить эти ожидания заранее. Ведь если членам команды не нужно будет угадывать, чего вы от них ждете, это всем вам сэкономит много времени. Уделите время и обсудите с коллегами подходы, которые лучше всего подойдут вам, потому что…

Clean Code #совет #cleancode #CodeReview
🧑‍💻 Почаще пересматривайте свой процесс ревью кода

Очень важно при работе над проектом оставлять время для обдумывания и обсуждения прошедших ревью.

Спросите себя, что сработало хорошо, а что нет, и будьте честны с ответами! Спросите у ваших товарищей по команде, обратная связь какого рода была им полезной, а также что можно улучшить. Обратите внимание, сколько времени у вас ушло на проведение ревью, – возможно, там прослеживается какой-то шаблон. Если вы постоянно комментировали однотипные проблемы, возможно, стоит предпринять какие-то шаги, чтобы это не повторялось в следующем проекте? Обдумывание вопросов такого рода и внесение соответствующих изменений улучшают процесс ревью для каждого члена команды.

Clean Code #совет #cleancode #CodeReview
🧑‍💻 Каждая проблема может иметь больше одного решения

Это сложный урок. Действительно сложный. Когда вы выступаете в роли ревьюера, так и тянет начать видоизменять просматриваемый код, чтобы он отражал ваше решение проблемы. А то, что начинается с простых изменений, может легко привести к переделке всего раздела кода в ваше, «правильное» решение. Но ревью кода проводится не для этого.

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

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

Clean Code #совет #cleancode #CodeReview
📑 Code Review – зачем и как использовать в команде?

Code Review — это процесс проверки и анализа кода задачи разработчиком перед ее релизом. CR (Code Review) выполняется не тем человеком, который делал задачу, а другими членами команды. Результатом CR является обратная связь по выполненной задаче: необходимость внести правки, либо готовность задачи к последующему тестированию и релизу.

Clean Code #статьи #CodeReview
📑 Код-ревью для начинающих: советы и ориентиры из практики

Текст пригодится разработчикам и лидам, которые еще близко не знакомы с код-ревью или хотят упорядочить свои знания, узнать лайфхаки из практики.

Clean Code #статьи #CodeReview
RhodeCode

Это веб-инструмент, который помогает в проведении ревью кода. Rhodecode позволяет команде эффективно взаимодействовать через итеративный, диалоговый код-ревью, для повышения качества кода. Инструмент дополнительно содержит слой управления доступом для защищенной разработки.

📑 Сайт

Clean Code #инструменты #CodeReview
Smartbear

Это инструмент для ревью кода и документов для команд разработчиков. В дополнение к ревью исходного кода, Collaborator позволяет командам провести ревью проектной документации.

Collaborator поддерживает большое количество систем контроля версий как Subversion, Git, CVS, Mercurial, Perforce, и TFS. Он хорошо справляется с интеграцией в популярные инструменты управления проектами и IDE (интегрированные среды разработки), такие как Jira, Eclipse, и Visual Studio.

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

📑 Сайт

Clean Code #инструменты #CodeReview