Зменшуємо кількість помилок за допомогою чек-листа Code Review

У нашій статті про ефективних рев'ю коду ми рекомендували використовувати чекліст. Чеклисты (контрольні списки) — це велика річ в рев'ю: вони гарантують, що рев'ю дійсно пройшло через вашу команду. Також вони сприяють виявленню та вирішенню загальних труднощів.
Дослідження, проведене Software Engineering Institute, показує, що програмісти роблять 15-20 поширених помилок. Додавши такі помилки в чекліст, ви можете бути впевнені, що помітите їх в момент появи і допоможете від них позбутися надовго.
Щоб вам було від чого відштовхуватися, ось вам список типових пунктів :

Чек-лист CodeReview

Загальне
  • Працює код? Виконує він свої прямі обов'язки, коректна логіка, і т. д.
  • Легкий код для розуміння?
  • Відповідає код вашому стилю написання коду? Зазвичай це відноситься до розташування дужок, назв змінних та функцій, довжинами рядків, або вставкам, форматування і коментарям.
  • Є в рев'ю надмірна або повторюваний код?
  • Є код незалежним, наскільки це можливо?
  • чи Можна позбутися від глобальних змінних або перемістити їх?
  • Є закомментированный код?
  • циклів є встановлена довжина і коректні умови завершення?
  • Може щось у коді бути замінено бібліотечними функціями?
  • Може бути видалена частина коду, призначеного для логгирования або налагодження?
Безпека
  • Всі вхідні дані перевіряються (на коректний тип, довжину, формат, діапазон) і декодуються?
  • Обробляються помилки при використанні сторонніх утиліт?
  • Вихідні дані перевіряються і декодуються?
  • Обробляються чи неправильні значення параметрів?
Документація
  • Є чи коментарі? Розкривають вони сенс коду?
  • Всі функції прокоментовані?
  • чи Є якесь незвичайне поведінку або опис прикордонних випадків?
  • Використання і функціонування сторонніх бібліотек документовано?
  • Всі структури даних та одиниці виміру описані?
  • Є незавершений код? Якщо є, повинен бути видалений або позначений маркером типу «TODO»?
Тестування
  • Є код тестованим? Наприклад, він не повинен містити занадто багато залежностей або приховувати їх, тестові фреймворки повинні мати можливість використовувати методи коду, і т. д.
  • Є тести і якщо є, то чи достатні вони? Наприклад, вони покривають код в потрібній мірі.
  • Юніт-тести насправді перевіряють, що код надає необхідну функціональність?
  • Всі масиви перевіряються на «вихід за межі»?
  • Може будь-тестуючий код замінений з використанням існуючого API?
Ви також можете захотіти додати в цей чекліст будь-які речі, специфічні для вашої мови і здатні викликати проблеми.
Чекліст свідомо не охоплює всіх можливих проблем. Вам не потрібен контрольний список, який настільки довгий, що ніхто його не використовує. Краще всього покрити їм тільки загальні запитання.

Оптимізуйте свій чекліст.

Цей чекліст можна використовувати в якості відправної точки: вам потрібно оптимізувати його під ваші специфічні сценарії та проблеми. Відмінний спосіб зробити це — відзначати питання, які виникають у вашій команді під час рев'ю коду протягом короткого часу. З цією інформацією ви зможете знайти найпоширеніші помилки команди, щоб потім внести їх у ваш чекліст.
Не бійтеся з чеклиста ті елементи, які вам не підходять (ви можете захотіти залишити рідко зустрічаються, але все ж критичні пункти — наприклад, пов'язані з безпекою).

Почніть використовувати і тримайте в актуальному стані

Як правило, будь-які пункти чеклиста повинні бути конкретними і, якщо можливо, давати вам однозначну відповідь на ваше запитання. Це допомагає уникнути непослідовності суджень.
Ще одна хороша ідея — поділитися списком з вашою командою і отримати їх згоду з його вмістом. Періодично переглядайте і сам чекліст для перевірки, що кожен пункт в ньому все ще актуальний.
Озброївшись гарним чеклистом, ви можете збільшити кількість дефектів, що виявляються під час рев'ю коду. Це дозволить вам поліпшити стандарт кодування і уникнути поганої якості рев'ю.
Щоб дізнатися більше про рев'ю коду, ви можете ознайомитися з відео на нашій сторінки.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.