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 buy generic cialis online mastercard https://lowerbricktown.com/sample/tadacip-20mg-generic-cialis/15/ enter site cialis van lilly click here source site Зачем проводить Code Review?», — вопрос достаточно распространенный.
Ниже мне хотелось бы упомянуть о двух важных аспектах, о которых часто забывают.
Wikipedia о code review нам говорит следующее: «улучшение качества программного продукта и совершенствование навыков разработчика. …могут быть найдены и устранены такие проблемы, как ошибки в форматировании строк, состояние гонки, утечка памяти и переполнение буфера, что улучшает безопасность программного продукта»
Всё верно, но ревью кода решает еще две очень важные задачи, которые невозможно решить никаким иным путем:
- Синхронизация ментальных моделей
- Распространение знаний о коде
Все остальное: качество, корректность и т.д. так или иначе, костылями и/или автотулами можно сделать, а вот понять код можно только просмотрев код и никак иначе.
Синхронизация ментальных моделей
Люди могут по-разному подходить к решению задач. В зависимости от собственного опыта, знаний, навыков использовать различные алгоритмы, структуры данных, подходы к блокировкам, шаблоны. Если эти подходы не синхронизируются между собой, то даже в небольшой команде законченное решение будет представлять собой лоскутное одеяло из подходов, шаблонов, структур. Ревью позволяет выявить подобную неконсистентность и открыть диалог по приведению кода к более гомогенному виду.
Распространение знаний
Для того, чтобы что-то в коде поменять, надо знать где менять и что менять. Ревью позволяет расширить границы знаний о коде. Память штука хитрая и она напомнит, что «функция проверки номера пластиковой карты была где-то в модуле cards, примерно в классе panverify». Даже если вы всего лишь один раз ознакомились с этим кодом несколько месяцев назад. Если вы действительно разобрались что код выполняет, то память воскресит воспоминания.
Другие плюшки от Code Review
- Повышает понятность, ведь автор вынужден привести код к такому виду, чтобы он был понятен ревьюерам
- Формирует общий словарь для общения на уровне кода
- Является катализатором к выработке общих соглашений об оформлении кода, т.е. code convention не от документа к коду, а от практики, непосредственно от кода
- Снижает количество уязвимостей в коде
Итог
Будете ли вы проводить ревью руками или с помощью автотулов, всё зависит от конкретной ситуации, но факт в том, что команды, в которых ревью практикуется, при увеличении кодовой базы, чаще возвращаются домой вовремя.