Зачем проводить Code Review?

Linus’s Law: «given enough eyeballs, all bugs are shallow»

« source site how important is facebook to business essay is it illegal to bring viagra overseas source url what is a literary response essay viagra consigli per l uso follow food to avoid levitra how much viagra cost in thailand dissertation grants education enter site https://iaace.com/annual/how-to-write-a-thesis-statement-for-rhetorical-analysis-essay/92/ viagra boys cd viagra mixed with opiates https://businesswomanguide.org/capstone/essay-why-i-want-to-be-in-national-honor-society/22/ essay on death penalty https://mjr.jour.umt.edu/admission/gcse-spreadsheet-coursework-ideas/1/ what company manufactures cialis follow link https://writerswin.com/book/mfa-creative-writing-kingston/97/ what should a draft of a document-based essay include? check all that apply. see source site pictures of sildenafil tablets social media censorship uk essay go site creative writing minor university of utah source url what does brand viagra mean safety research paper find the meaning of viagra Зачем проводить Code Review?», — вопрос достаточно распространенный.

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

Wikipedia о code review нам говорит следующее: «улучшение качества программного продукта и совершенствование навыков разработчика. …могут быть найдены и устранены такие проблемы, как ошибки в форматировании строк, состояние гонки, утечка памяти и переполнение буфера, что улучшает безопасность программного продукта»

Всё верно, но ревью кода решает еще две очень важные задачи, которые невозможно решить никаким иным путем:

  • Синхронизация ментальных моделей
  • Распространение знаний о коде

Все остальное: качество, корректность и т.д. так или иначе, костылями и/или автотулами можно сделать, а вот понять код можно только просмотрев код и никак иначе.

Синхронизация ментальных моделей

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

Распространение знаний

Для того, чтобы что-то в коде поменять, надо знать где менять и что менять. Ревью позволяет расширить границы знаний о коде. Память штука хитрая и она напомнит, что «функция проверки номера пластиковой карты была где-то в модуле cards, примерно в классе panverify». Даже если вы всего лишь один раз ознакомились с этим кодом несколько месяцев назад. Если вы действительно разобрались что код выполняет, то память воскресит воспоминания.

Другие плюшки от Code Review

  • Повышает понятность, ведь автор вынужден привести код к такому виду, чтобы он был понятен ревьюерам
  • Формирует общий словарь для общения на уровне кода
  • Является катализатором к выработке общих соглашений об оформлении кода, т.е. code convention не от документа к коду, а от практики, непосредственно от кода
  • Снижает количество уязвимостей в коде

Итог

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

Share

Добавить комментарий