Санкт-Петербургский Государственный Университет Математико-механический факультет Кафедра системного программирования Отзыв научного руководителя на выпускную квалификационную работу студента 471 группы Слесарева Ильи Проблема качества программного кода остаётся одной из самой актуальных проблем программной инженерии. Плохо написанный код тяжело поддерживать, он труден для понимания коллегами, и хотя временами он неизбежен по тем или иным причинам (например, установлен жёсткий срок сдачи версии, а не вся функциональность ещё готова), грамотный разработчик знает, что его надо переписать, и чем раньше, тем лучше. Чем дольше некачественный код просуществует в системе, тем больше будет написано поддерживающего его кода, и чем дальше, тем сложнее провести его рефакторинг или реинжиниринг. Однако разработчику не всегда очевидно, что код является плохим, например, из-за его субъективного восприятия, поэтому автоматизированные системы, обнаруживающие разного рода аномалии по заданным правилам очень полезны в практике разработчика. Разработанная Ильёй система автоматической оценки качества кода ориентирована на продукт компании SAP и экосистему проектов, выросших вокруг этого продукта. Тем не менее положенные в её основу этой работы принципы не являются узкоспециализированными. Перед тем, как приступить к разработке, Илья успешно показывает себя в роли аналитика, и собранные им требования к системе полны и чётко сформулированы. Так как языком программирования, для программ на котором делается анализ качества, является JavaScript, студент Слесарев сделал детальный обзор существующих платформ и принципов их работы и предложил использовать инструмент ESLint ввиду его расширяемости. Далее Илья делает разумное разделение всех правил, по которым делается анализ, на правила, специфические для фреймворка SAP, на правила, общие для языка JavaScript вообще, и на пользовательские правила. Как следствие архитектура и реализация приложения, основанная на таком разделении, допускает расширение перечня правил в процессе эксплуатации, что подчёркивает системное видение Ильёй разрабатанной системы. Модули пользовательского интерфейса и составления отчётов также сделан с учётом современных практик программной инженерии. Качественно сделана апробация решения: почти 50 тысяч строк кода – это хороший объём для тестирования приложения. При этом показано, что система действительно отлавливает ситуации, негативно сказывающиеся на качестве кода. Илья также делает интересный вывод, что хотя срабатываний правил конкретно для фреймворка SAP значительно меньше, чем правил для языка JavaScript вообще, они намного более критичны в разработке программ, чем показываетсвоё глубокое понимание проблематики своей работы. Работа не содержит внешних заимствований. Найденные заимствования относятся к списку устойчивым оборотам речи и литературы. Среди личных качеств Ильи как разработчика хочется отметить широкий кругозор, владение инженерным подходом и умение грамотно его применять, системность мышления, а также способность делать все этапы работы вовремя. Выполненная работа заслуживает оценки «отлично». Научный руководитель: старший преподаватель кафедры системного программирования СПбГУ Сартасов С.Ю. «_18 »___мая_________ 2018г.