Не Обращайте Внимания На Качество Кода …


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

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

Валентина Ленардуцци, Вили Никкола, Нийти Сааримаки и Давиде Тайби из Университета Тампере (Финляндия) решили собрать некоторые данные, чтобы понять, насколько важно качество кода. Они рассмотрели 28 проектов с открытым исходным кодом на основе Java на GitHub, включая многие проекты Apache, и рассмотрели качество кода в 36 000 запросах на вытягивание. Они использовали инструмент качества кода PMD и измерили: длинные методы, большой класс, дублированный код, высокая связь, нарушения класса бога и стиля. Они были обобщены как показатель технического долга, т. д.  Предыдущая работа подтвердила, что по мере того, как качество кода, измеряемое PMD, снижается, возрастает риск ошибок – хорошая причина для сопровождающих, чтобы предпочесть код хорошего качества.

Анализ не выявил никакой связи между техническим долгом и успехом запроса на вытягивание. Более того, даже более серьезные проблемы с техническим долгом, по-видимому, не оказали никакого влияния на sucuss pull request. Проще говоря, код, который был оценен PMD как очень плохой, с такой же вероятностью будет принят. Как говорят исследователи:

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

Так что не обращайте внимания на качество, пока оно выполняет свою работу, похоже, это вывод. Как уже упоминалось, это удивительно, учитывая видимость кода.

Есть несколько возможных объяснений. Наиболее очевидным является то, что PMD измеряет ряд проблем с кодом, которые на самом деле не являются проблемами. Другими словами, мера TD является ложной, но это кажется маловероятным, поскольку факторы, которые входят в ее вычисление, имеют действительность лица, а мера TD коррелирует с ошибками. Более вероятно, что средний программист на самом деле не получает таких показателей, как PMD, и интерпретирует качество кода более субъективными и простыми способами – хорошо ли это выглядит? Возможно, все, что имеет значение, – это правильные отступы, использование хороших имен переменных и написание кода, который сопровождающий может или думает, что может понять.

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


Добавить комментарий