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

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

Что такое обзор кода?

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

Мы заняты написанием кода, нужна ли проверка кода?

Да! Проверка вашего кода имеет решающее значение для общего состояния вашей кодовой базы. Если вы пишете неправильный, медленный или небезопасный код, он просто продолжит распространяться как шаблон, пока не станет серьезной проблемой. Плохой код может заглушить ваш продукт или приложение, как сорняки, которые голодают на растущих в вашем саду растениях. Во сколько вам обойдутся ошибки сейчас, позже? Это напоминает мне одну из моих любимых цитат баскетбольного тренера Джона Вудена:

Если у вас нет времени сделать это правильно, когда у вас будет время сделать это заново?

Как долго длится проверка кода?

Что касается меня, я могу сесть и подготовить обзор кода за несколько часов чтения кода - это просто зависит от навыков человека, проводящего обзор. Я начинаю с просмотра серверного кода (Node.js, Meteor.js и т. Д.), Открывая файлы и сохраняя точки, которые необходимо обсудить или просмотреть. Я перехожу к интерфейсу и ищу хороший код и хорошие шаблоны. Затем я собираю все это, быстро просматриваю и просматриваю свои мысли в видео, которое я доставляю клиенту. Видео также поставляется с PDF-файлом, который ссылается на каждое место в коде и обычно имеет ссылку на статью, в которой рассказывается о том, как и почему исправить код. На весь процесс у меня уходит 5–7 часов.

Вот что сказал один клиент, Стив Овенс, о своем обзоре кода:

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

У нас уже есть команда разработчиков, они могут это сделать?

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

Хорошо, хорошо ... Может, он нам нужен, что теперь?

Это отчасти зависит от вас и вашей команды, чтобы определить уровень, на котором вы хотите пройти эту практику. Есть ли у вашей команды твердое желание учиться и работать над качеством кода? Затем начните еженедельное собрание и постарайтесь сделать его кратким. Сосредоточьтесь на одном PR или одном файле кода и просмотрите его на предмет проблем.

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

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

Вы доступны?

Я доступен, я сделал более 15 проверок кодов за последние 12 месяцев, и это то, что мне очень нравится.

Проверка кода Spacedojo - очень простая вещь. У меня есть простой контракт, в котором описаны такие вещи, как NDA, оплата и т. Д. Процесс довольно безболезненный, чтобы начать работу, просто напишите по электронной почте [email protected] или посетите страницу обзора кода, и я буду рад обсудить вакансии и сроки с тобой.