Аудит кода проекта
Аудит кода заказывают в трёх ситуациях: перед покупкой готового проекта, при сомнениях в текущем подрядчике и перед решением вкладываться в развитие. Во всех трёх вопрос один — во что обойдётся дальнейшая жизнь этого кода.
Ответ «код плохой» бесполезен. Полезен ответ, во сколько обойдётся типовая доработка, какие места опасны, что мешает подключить нового разработчика и что нужно исправить в первую очередь.
Обсудить задачуЧто смотрим
- Структуру проекта: можно ли в нём разобраться без автора
- Дублирование логики — главный источник ошибок при правках
- Актуальность зависимостей и известные уязвимости в них
- Наличие системы контроля версий и вменяемой истории изменений
- Тестовое окружение: можно ли проверить правку до выкладки
- Обработку ошибок и то, что происходит при сбое внешнего сервиса
- Безопасность: доступ к данным, проверка входных значений, хранение паролей
- Производительность в очевидно узких местах
Что вы получаете на выходе
Отчёт с оценкой по каждому направлению и списком находок, разделённым на три группы: опасное, дорогое в сопровождении и косметическое. К каждой находке — оценка трудоёмкости исправления.
Плюс ответ на главный вопрос: дешевле дорабатывать или переписывать. С расчётом, а не с мнением. Этот вывод одинаково полезен и когда вы остаётесь с текущим подрядчиком, и когда меняете его.
Что обычно спрашивают
Можно провести аудит перед покупкой проекта?
Да, это одна из основных причин заказа. Нужен доступ к коду на чтение — обычно продавец его предоставляет, и отказ сам по себе показателен.
Вы скажете, что предыдущий подрядчик плохой?
Мы скажем, что конкретно в коде создаёт проблемы и во что это обходится. Оценивать людей не наша работа, и делать выводы о подрядчике по одному проекту некорректно.
Нужен ли доступ к боевому серверу?
Нет, достаточно кода и базы в тестовом виде. Боевой доступ нужен, только если проверяется производительность под реальной нагрузкой.
Обязательно ли потом заказывать доработку у вас?
Нет. Отчёт написан так, чтобы по нему работал любой разработчик, включая текущего.
Сколько стоит аудит кода?
По объёму проекта. Скажите, на чём написано и примерный размер — назовём срок и сумму.
