Linus’s Law: «given enough eyeballs, all bugs are shallow»
« buy viagra abroad how to write an essay on educational goals money motivator essay how to prepare natural viagra using watermelon and lemon go to link dog doxycycline dose essay over burlesque https://www.getthereatx.com/capstone/case-study-answer-template/7/ homework help free no sign up https://themauimiracle.org/bonus/cialis-online-reviews/64/ here https://moorelifeurgentcare.com/edtreatment/cialis-or-viagra-harder/84/ creative writing ghost story get link 7 days late after taking clomid https://alexthornton.com/featured/cialis-funziona-yahoo/16/ https://robsonranchviews.com/article/essay-about-education-and-technology/4/ kindergarden homework essays on the usa patriot act sample outline for a term paper cialis profesional generico social science thesis https://familytreecounseling.com/pill/ajanta-pharma-cialis/13/ cheapest viagra in sydney see https://cardiacgenetic.com/inhibitor/effects-of-alcohol-on-levitra/6/ serp,5176.1 https://lukeeng.com/services/to-what-extent-do-you-agree-with-this-statement-essay/54/ great thesis statement see boserup thesis viagra ins essen Зачем проводить Code Review?», — вопрос достаточно распространенный.
Ниже мне хотелось бы упомянуть о двух важных аспектах, о которых часто забывают.
Wikipedia о code review нам говорит следующее: «улучшение качества программного продукта и совершенствование навыков разработчика. …могут быть найдены и устранены такие проблемы, как ошибки в форматировании строк, состояние гонки, утечка памяти и переполнение буфера, что улучшает безопасность программного продукта»
Всё верно, но ревью кода решает еще две очень важные задачи, которые невозможно решить никаким иным путем:
- Синхронизация ментальных моделей
- Распространение знаний о коде
Все остальное: качество, корректность и т.д. так или иначе, костылями и/или автотулами можно сделать, а вот понять код можно только просмотрев код и никак иначе.
Синхронизация ментальных моделей
Люди могут по-разному подходить к решению задач. В зависимости от собственного опыта, знаний, навыков использовать различные алгоритмы, структуры данных, подходы к блокировкам, шаблоны. Если эти подходы не синхронизируются между собой, то даже в небольшой команде законченное решение будет представлять собой лоскутное одеяло из подходов, шаблонов, структур. Ревью позволяет выявить подобную неконсистентность и открыть диалог по приведению кода к более гомогенному виду.
Распространение знаний
Для того, чтобы что-то в коде поменять, надо знать где менять и что менять. Ревью позволяет расширить границы знаний о коде. Память штука хитрая и она напомнит, что «функция проверки номера пластиковой карты была где-то в модуле cards, примерно в классе panverify». Даже если вы всего лишь один раз ознакомились с этим кодом несколько месяцев назад. Если вы действительно разобрались что код выполняет, то память воскресит воспоминания.
Другие плюшки от Code Review
- Повышает понятность, ведь автор вынужден привести код к такому виду, чтобы он был понятен ревьюерам
- Формирует общий словарь для общения на уровне кода
- Является катализатором к выработке общих соглашений об оформлении кода, т.е. code convention не от документа к коду, а от практики, непосредственно от кода
- Снижает количество уязвимостей в коде
Итог
Будете ли вы проводить ревью руками или с помощью автотулов, всё зависит от конкретной ситуации, но факт в том, что команды, в которых ревью практикуется, при увеличении кодовой базы, чаще возвращаются домой вовремя.