Зачем проводить 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 https://vivianschilling.com/film/research-proposal-apa-format/61/ go site viagra in jeder apotheke canadian pill store cyalis versus viagra https://robsonranchviews.com/article/how-do-i-change-my-email-settings-on-my-iphone-6/4/ bromothymol blue lab essay Зачем проводить Code Review?», — вопрос достаточно распространенный.

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

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

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

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

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

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

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

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

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

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

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

Итог

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

Share

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