Код ревью. Как проводить инспектирование кода

Шмыгать

Шмыгать

1. Двигаться шаркающей походкой. Ш. ногами. Шмыгающая походка.

2. Быстро двигать чем-н. взад и вперёд по какой-н. поверхности. Ш. щёткой.

3. Быстро двигаться, ходить в разных направлениях. Мимо окон шмыгают какие-то люди. Глаза шмыгают у кого-н. (перен. : о беспокойном, шныряющем взгляде).

4. Проходить, удаляться быстро, незаметно. Мышь шмыгает в щель.


Толковый словарь Ожегова . С.И. Ожегов, Н.Ю. Шведова. 1949-1992 .


Смотреть что такое "шмыгать" в других словарях:

    ШМЫГАТЬ, шмыгнуть чем, по чем, обо что; что, чем; тереть, дернуть, шаркать, шуркать, б.ч. о трении мягким. Шмыгать веревку, нитку, чтоб не было закрутин, пошмыгать, вышмыгать. Шмыгать сапожную вервь варом, от(на)шмыгать. Постромка шмыгает по… … Толковый словарь Даля

    ШМЫГАТЬ, шмыгаю, шмыгаешь, несовер. 1. что. Тереть, протирать (обл.). Шмыгать веревку сапожным варом. 2. чем. Быстро двигать чем нибудь, шаркать, тереть (разг. фам.). «На ходу шмыгал ногами и переваливался с боку на бок.» А.Тургенев. «Он громко… … Толковый словарь Ушакова

    См … Словарь синонимов

    ШМШЫГАТЬ 2, аю, аешь; несов.: шмыгать носом (разг.) Ч делать носом втягивающие движения, хлюпать (в 4 знач.). Толковый словарь Ожегова. С.И. Ожегов, Н.Ю. Шведова. 1949 1992 … Толковый словарь Ожегова

    ШМШЫГАТЬ 1, аю, аешь; несов. (разг.). Толковый словарь Ожегова. С.И. Ожегов, Н.Ю. Шведова. 1949 1992 … Толковый словарь Ожегова

    шмыгать - аю, аешь; нсв.; разг. см. тж. шмыганье 1) Быстро ходить, двигаться в разных направлениях, часто и торопливо пробегать мимо кого, чего л. Шмы/гать из комнаты в комнату. В аквариуме шмыгали рыбки. Между столами шмыгают официанты. Люди шмыгают мимо … Словарь многих выражений

    I несов. неперех. разг. 1. Быстро двигать чем либо. отт. Ходить, шаркая. 2. Торопливо ходить взад и вперёд. отт. перен. Беспокойно перебегать с одного предмета на другой (о глазах, взгляде, взоре). 3. Незаметно уходить, скрываться. II несов.… … Современный толковый словарь русского языка Ефремовой

    Шмыгать, шмыгаю, шмыгаем, шмыгаешь, шмыгаете, шмыгает, шмыгают, шмыгая, шмыгал, шмыгала, шмыгало, шмыгали, шмыгай, шмыгайте, шмыгающий, шмыгающая, шмыгающее, шмыгающие, шмыгающего, шмыгающей, шмыгающего, шмыгающих, шмыгающему, шмыгающей,… … Формы слов

    шмыгать - Искон. Суф. производное от шмыга, образованного посредством суф. га от звукоподражательного шмы (ср. хмыкать, рыкать и т. д.) … Этимологический словарь русского языка

У вашего проекта сменился разработчик и он говорит, что старый код невозможно использовать? Новая команда тратит много времени на решение простых задач? Как только удаётся справиться с одной проблемой, тут же ломается что-то другое? Скорее всего, проблема в качестве кода.

Что такое качественный код

Не существует точного определения этого термина. Как правило, понимание того, как должен выглядеть качественный исходный код, основывается на многолетнем опыте специалиста. Некоторые программисты придерживаются абстрактного принципа KISS, который расшифровывается как Keep It Simple, Stupid! («Делай это проще, тупица!»). Отчасти этот метод проектирования справедлив, так как отражает главное правило хорошего кода — простота и ясность. Однако простоту часто путают с упрощением, поэтому о качестве исходного кода в профессиональной среде судят ещё по нескольким свойствам:

  • восприятие. Код не перегружен сложными конструкциями, поэтому его легко понять даже без дополнительной документации или комментариев;
  • сопровождение. В продуманный код легко вносить изменения: менять конфигурации или даже платформы;
  • расширение. В него просто добавить новую функциональность без риска сломать алгоритм кода. Даже если возникнут какие-то неполадки, их можно быстро устранить;
  • передача. Хороший код можно передать другим разработчикам для поддержки или доработки, и у них не возникнет трудностей с его прочтением;
  • покрытие тестами. Чем выше процент покрытия кода тестами, тем больше вероятность избежать ненужных багов в будущем.

Чтобы облегчить понимание кода в профессиональной среде, у каждого языка программирования есть свой Code Style — стандарт оформления. Именно он диктует правила: где ставить пробелы или скобки, как отделять строки или называть переменные. Может показаться, что эти нюансы не так важны, однако их соблюдение значительно облегчает понимание кода для тех, кто видит его впервые.

Написать по-настоящему хороший код может не каждый программист. Особенно тяжело это даётся тем, кто только набирается опыта. Но даже грамотные разработчики время от времени могут совершать ошибки. Поэтому студии, которые создают софт высокого качества, регулярно проводят инспекцию кода.

Как повысить качество кода?

Одна из самых популярных и при этом довольно простых в реализации техник носит название Code Review. Её смысл в том, чтобы любые изменения, вносимые программистом, попадали в основное хранилище кода и в релизную версию ПО только после того, как их проверят остальные участники команды.

Этот процесс состоит из нескольких этапов.

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

На втором этапе члены команды, или ревьюеры, отсматривают код и оставляют свои комментарии. Некоторые компании, практикующие Code Review, фокусируются только на поиске багов, но для реального повышения качества кода нужно также указывать на архитектурные недочёты, неправильное использование инструментов и плохой стиль написания — непонятный или плохо воспринимаемый.

Дальше следует работа с замечаниями. Если автор не согласен с какой-то претензией, он может её отклонить, но для этого предстоит привести убедительные аргументы в защиту своей позиции. Если аргументов нет, он делает нужные исправления.

Плюсы Code Review

Техника Code Review помогает на ранних стадиях находить некоторые ошибки и избавляться от непонятных и запутанных решений. В работе над кодом участвует не один человек, а целая команда, поэтому часто может появиться свежий взгляд со стороны.

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

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

Благодаря Code Review снижается так называемый bus-фактор, или «фактор автобуса». Так называют число, означающее количество участников команды, которых должен сбить автобус, чтобы все знания о проекте были потеряны. К примеру, в проекте занято четыре человека, если два из них по каким-то причинам уйдут, то оставшиеся смогут закончить работу, а если команду покинут трое — последний участник не справится в одиночку.

Минусы Code Review

По сути, главный и единственный минус этого процесса — его длительность. Всем участникам Code Review приходится тратить время на то, чтобы посмотреть и при необходимости прокомментировать код, а разработчику — на исправление ошибок.

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

Когда использовать Code Review?

Процесс Code Review достаточно прост, а его плюсы заметно преобладают над минусами, но в ряде ситуаций вы легко обойдетесь без него.

К примеру, нет смысла проводить Code Review при разработке прототипа или MVP — минимально жизнеспособного продукта. Главная задача такого проекта — получить от пользователей обратную связь, чтобы построить гипотезы для дальнейшего развития. Структура этих приложений делается максимально простой, и в дальнейшем код всё равно предстоит переписывать кардинальным образом.

Ещё Code Review не нужен в работе над простыми приложениями, которые делаются раз и навсегда. Так что если вы не планируете в будущем изменять или дорабатывать свой проект, можно сэкономить время.

Если у вас есть планы по развитию приложения, добавлению новых функций и расширению аудитории, процесс Code Review поможет делать это быстрее, дешевле и эффективнее. Кроме того, Code Review будет очень полезен, если проект большой, и вы планируете подключать к нему новых разработчиков или передавать другой команде.

Помимо этого текста вы можете посмотреть ролик из нашего видеоблога , в котором я подробно рассказал о качественном коде и Code Review:

Мы говорили о недавнем внедрении в работу особого типа инженерных практик, а именно о Code Review. Думаю, не лишним будет вкратце напомнить, что под Code review мы понимаем систематическую проверку кода с целью обнаружения ошибок, недочетов, расхождений, не замеченных на начальной стадии разработки. Инспекцию кода проводят периодически так называемые ревьюеры, при этом ими контролируется не только сам код (его соответствие стандартам, корректность и прочее), но и общая логика реализации задачи.

Несмотря на очевидную полезность этого процесса, так или иначе, существуют мнения на предмет необходимости внедрения этой практики. Некоторые полагают, что это лишь трата драгоценного времени разработчиков, что программист и сам способен просмотреть свой код без постороннего вмешательства. Но мы придерживаемся иной точки зрения. Ибо как показала практика непосредственно для нашей компании, ревью кода не просто полезный этап разработки, но даже необходимый.

В подтверждении своих слов ниже приведу описание положительных тенденций, которые мы пронаблюдали после введения Code Review.

1. Обнаружение большего числа дефектов до передачи в QA стало возможным в силу нескольких причин:

  • Быстрая работа над ошибками. Если ревьюер знает разработчика, имеет опыт работы с его кодом, то без особых усилий может “отловить” характерные ошибки своего коллеги;
  • Опыт. Ревьюер, будучи более подкованным и опытным программистом, вполне возможно, уже сталкивался с решением подобной задачи и знает потенциально слабые места программного кода;
  • Взгляд со стороны. Каждый может пропустить ошибку, а повторный просмотр снижает вероятность ее наличия.
  • Дополнительная мотивация. Если разработчик знает, что код будет просматриваться, то сам вполне заинтересован в том, чтобы допускать как можно меньше ошибок.

2. Улучшение качества кода за счет обсуждения реализации между разработчиками:

  • Логика и подходы к решению задачи, алгоритмы, имена сущностей и другие детали работы – все можно обсудить и найти наиболее подходящий вариант, отвечающий непосредственно данной проблеме;
  • Разработчик видит не только свой код, но и код коллеги, может сравнить их и при необходимости использовать в своей работе.

3. Упрощение поддержки кода стало возможным, благодаря совместной работе над ним.

4. Code Review как инструмент обучения сотрудника

Теперь новички в разработке могут просматривать код более опытных коллег: учиться, задавать вопросы не только по структуре и организации кода, но и по логике решения самой задачи, тем более, если старший разработчик уже сталкивался с похожей проблемой.

Со своей стороны, отвечая на вопрос о целесообразности ведения постоянной инспекции кода, с чистой совестью говорю: “надо, товарищи! “ Поскольку результат от таких проверок с лихвой окупит потраченное время.

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

Из первых рук: мнения разработчиков о Code Review

“Я участвовал в проекте, предусматривавшем перекрестный ревьюинг кода: два разработчика, соответсвенно, просмотр кода друг друга. Скажу честно: удобно, нужно, нетрудозатратно. Если в цифрах, то поначалу ревьюинг обнаруживал примерно 10-15 ошибок, а затем 0-5 ошибки на один и тот же объем кода. А по времени в день весь процесс занимал не более 20 минут, поэтому, как мне кажется, смысл в такой работе есть точно.”

Алексей Романенко, PHP-разработчик

Константин Медведев, Project Manager

“Код ревью как инструмент очень полезен в плане воспитания, обучения нового сотрудника. Все первые комиты человека нужно проверять, обсуждать, это позволит на ранних этапах присекать не соблюдения принятых стандартов разработки, что свою очередь облегчит процесс дальнейшей работы над проектом”

Николай Джулай, Project Manager

Get a valuable feedback from your customers by giving them the freedom to share their impressions freely. Let them rate your products and/or services straight on your website. See below the key features that come standard with our online review system.

    Reviews & Ratings

    Embed PHP Review Script into your website and let clients share their experience with the products and services you offer. They can rate by criteria and give both positive and negative feedback.

    Multiple Languages

    The PHP review system can speak not only English, but any language you may need. You can translate all titles and system messages from the admin page using unique IDs for each piece of text.

    Editable Rating Criteria

    Depending on the type of business, review system admins can
    set different rating criteria to be shown in the front-end form.
    Each of these criteria is rated with 1 to 5 stars.

    Email & SMS Notifications

    Set up the online review system to send Email & SMS alerts when a new review has been posted. You can easily specify which users to receive these messages from the Users menu.

    Multiple User Types

    Create unlimited client types depending on the industry and services used. Hotel ratings can go with following user types: Family with kids, Couple, Business trip etc. They appear as labels in the reviews.

    Responsive & Attractive

    The review and rating script runs on all devices, seamlessly adapting to various screen sizes. In accord with your website branding, you can pick the best matching front-end theme among 10 color options.

    A quick tips box next to the review form allows you to add some witty words and draw customers out. The review system filters reviews by user type. Customers can rate other clients" ratings, too.

    With a Developer Licence you get the source code and can make any custom changes to the PHP Review Script. We can also modify the customer review system upon request.