Как программист наш способ работы — использовать существующие API-интерфейсы и использовать их в новых целях. Для этого мы опираемся на хорошие примеры использования API. Здесь может помочь EG, инструмент, который добывает кодовые базы и показывает общие идиоматические примеры использования методов API.
EG расшифровывается как Exempla Gratis, и это подробно описано в статье Exempla Gratis (E.G.): бесплатные примеры кода, представленной на 28-й совместной европейской конференции и симпозиуме ACM по разработке программного обеспечения и симпозиуме по основам разработки программного обеспечения (ESEC / FSE ’20). Это мероприятие проходило как виртуальное мероприятие с 8 по 13 ноября 2020 г., и статья Селесты Барнаби и др., Аффилированная с Facebook, где был разработан инструмент, Калифорнийский университет в Беркли и Гарвард, теперь доступна на arXiv.
Объясняя, почему был необходим инструмент, помогающий находить примеры бесплатного кода, в документе говорится:
Интерфейсы прикладного программирования (API) становятся все более распространенным компонентом современной разработки программного обеспечения. Основная задача инженеров-программистов в промышленности — использовать существующие API идиоматическим образом в своей организации. Для этого разработчики часто ищут документацию по API и примеры использования. Однако это может быть особенно сложно в компаниях, где многие API являются проприетарными. Поскольку эти проприетарные API документируются только внутри компании ее инженерами, на таких сайтах, как StackOverflow, нет документации или примеров, размещенных извне.
В статье объясняется, как работает EG, то есть путем индексации большого корпуса кода:
Учитывая метод запроса, он собирает список тел методов в корпусе, содержащем этот метод, а затем находит максимальное поддерево, которое содержит API запроса и является частью значимой части методов. Затем EG реконструирует это поддерево в краткий, релевантный и репрезентативный пример кода.
EG был интегрирован во внутренний инструмент поиска кода Facebook для языка Hack и оценивался на проектах GitHub с открытым исходным кодом, написанных на Python. Его также сравнивали с результатами поиска кода и рукописными примерами на популярном веб-сайте программирования под названием ProgramCreek. По сравнению с этими двумя базовыми линиями, примеры, созданные EG, более лаконичны и репрезентативны с меньшим количеством посторонних утверждений:
Опрос разработчиков Facebook показывает, что примеры EG предпочтительнее кодировать результаты поиска в 97% случаев, и что 100% разработчиков согласились с тем, что цветовое кодирование общего шаблона использования в примерах EG полезно.