Readability and Understandability of Snippets Recommended by General-purpose Web Search Engines: a Comparative Study
Dantas, Maia
Developers often search for reusable code snippets on general-purpose web search engines like Google, Yahoo! or Microsoft Bing. But some of these code snippets may have poor quality in terms of readability or understandability. In this paper, we propose an empirical analysis to analyze the readability and understandability score from snippets extracted from the web using three independent variables: ranking, general-purpose web search engine, and recommended site. We collected the top-5 recommended sites and their respective code snippet recommendations using Google, Yahoo!, and Bing for 9,480 queries, and evaluate their readability and understandability scores. We found that some recommended sites have significantly better readability and understandability scores than others. The better-ranked code snippet is not necessarily more readable or understandable than a lower-ranked code snippet for all general-purpose web search engines. Moreover, considering the readability score, Google has better-ranked code snippets compared to Yahoo! or Microsoft Bing
academic
Читаемость и понятность фрагментов кода, рекомендуемых поисковыми системами общего назначения: сравнительное исследование
Разработчики часто ищут повторно используемые фрагменты кода в поисковых системах общего назначения, таких как Google, Yahoo! или Microsoft Bing. Однако эти фрагменты кода могут иметь низкое качество с точки зрения читаемости или понятности. В данной статье представлен эмпирический анализ, использующий три независимые переменные (ранжирование, поисковая система и рекомендуемый веб-сайт) для анализа оценок читаемости и понятности фрагментов кода, извлеченных из сети. Исследование собрало топ-5 рекомендуемых веб-сайтов и соответствующие рекомендации фрагментов кода от Google, Yahoo! и Bing для 9 480 запросов и оценило их показатели читаемости и понятности. Исследование показало, что некоторые рекомендуемые веб-сайты значительно превосходят другие по оценкам читаемости и понятности. Фрагменты кода с более высоким ранжированием не обязательно более читаемы или понятны, чем фрагменты с более низким ранжированием во всех поисковых системах общего назначения. Кроме того, в отношении оценок читаемости Google обеспечивает лучшее ранжирование фрагментов кода, чем Yahoo! или Microsoft Bing.
Основная проблема: Фрагменты кода, рекомендуемые поисковыми системами общего назначения, демонстрируют различия в качестве с точки зрения читаемости и понятности; фрагменты с более высоким ранжированием не обязательно имеют более высокое качество
Практическая необходимость: Разработчики широко используют поисковые системы общего назначения для поиска примеров кода, но отсутствует систематическая оценка качества этих фрагментов кода
Ограничения поисковых систем: Хотя Google использует более 200 факторов ранжирования, страницы с высоким ранжированием могут содержать примеры кода низкого качества
Повторное использование фрагментов кода может сократить время выполнения задач программирования и ускорить процесс разработки
Google контролирует более 90% рынка поисковых систем, но качество ранжирования кода в других поисковых системах неизвестно
Необходимо понимание взаимосвязи между читаемостью и понятностью: читаемость связана с синтаксическим пониманием, понятность — с семантическими аспектами
Статья ссылается на исследование Hora: при поиске "File.mkdirs examples" в Google фрагмент кода с веб-сайта Tutorialspoint, несмотря на более низкие показатели читаемости и повторного использования, получил более высокий рейтинг благодаря наличию объяснений на естественном языке, похожих на запрос.
Первое систематическое сравнительное исследование: Крупномасштабный сравнительный анализ читаемости и понятности фрагментов кода, рекомендуемых тремя основными поисковыми системами: Google, Yahoo! и Microsoft Bing
Построение крупномасштабного набора данных: Сбор 47 400 веб-ссылок для 9 480 запросов, охватывающих 5 355 различных веб-сайтов
Многомерная аналитическая база: Предложена методология анализа на основе трех независимых переменных: ранжирование, поисковая система и рекомендуемый веб-сайт
Эмпирические открытия: Подтверждены два важных предположения: фрагменты кода с более высоким ранжированием не обязательно имеют более высокую читаемость/понятность; существуют значительные различия в качестве кода между рекомендуемыми веб-сайтами
Стандартизация метрики понятности: Предложена методология нормализации когнитивной сложности в интервал 0,1
Входные данные: Запросы, связанные с программированием
Выходные данные: Оценки читаемости и понятности фрагментов кода
Ограничения: Анализ только фрагментов кода на Java, рассмотрение топ-5 результатов поиска
Парадокс ранжирования: Ранжирование поисковой системы не полностью коррелирует с качеством кода; фрагменты кода Top-2 и Top-3 могут иметь более высокое качество
Различия между поисковыми системами: Google показывает лучшую производительность в читаемости, но преимущество ограничено
Дифференциация качества веб-сайтов: Существуют значительные различия в качестве между рекомендуемыми веб-сайтами; учебные веб-сайты (GeeksforGeeks) обеспечивают лучшую читаемость
Ограничения понятности: Текущие метрики понятности имеют ограниченную дискриминационную способность для простых фрагментов кода
Статья цитирует 23 связанные работы, включая в основном:
Методы измерения читаемости и понятности кода
Исследования поиска и рекомендации кода
Анализ качества кода StackOverflow
Исследования механизмов ранжирования поисковых систем
Общая оценка: Это высококачественная статья эмпирической программной инженерии, заполняющая пробел в исследованиях оценки качества поиска кода, с важной теоретической и практической ценностью. Методология исследования научно обоснована, масштаб данных достаточен, надежность выводов высока, предоставляя ценные идеи для разработчиков и исследователей.