Сегодняшняя статья немного отличается от наших обычных. Если вы разработчик, несомненно, вы могли пройти через процесс поиска кода. Это может быть репозиторий кода вашей организации, и вы пытаетесь внедрить что-то новое, или это может быть просто очередной хобби-проект, и вы развеиваете свои сомнения в StackOverflow. Сегодня мы рассмотрим 5 лучших инструментов разработчика для поиска кода.

Эта статья изначально была размещена по адресу: https://www.quod.ai/post/5-best-dev-tools-for-code-search.

Разработчики и поиск кода

Увеличение размера базы кода и сложная логика побуждают разработчиков чаще выполнять поиск в коде. Согласно исследованию, разработчики просматривают код не менее 5 раз в день. Большинство поисковых запросов связаны с использованием определенных API, где находится конкретный код, почему часть кода дает сбой или что делает часть кода. Поиск по коду становится важной частью разработки программного обеспечения, и разработчики должны быть оснащены правильными инструментами.

По результатам исследования мы сузим наше сравнение до определенных аспектов инструментов. Вот две таблицы, чтобы облегчить процесс понимания того, какими будут критерии.

Имея в виду эту статистику, мы установим основные критерии, которые будем использовать для сравнения инструментов. Мы будем оценивать инструменты на основе их способности делать следующее:

  • Получить примеры кода
  • Расширенные параметры поиска
  • Анализ влияния кода

Гитхаб

  • Идеально подходит для: общедоступных примеров кода
  • Плюсы: прост в использовании
  • Минусы: трудно найти точный код и отфильтровать то, что вы хотите

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

GitHub — это то место, куда вы хотите попасть, если хотите получить примеры кода. Из-за огромного количества кода, размещенного на нем, всегда есть что-то, что соответствует вашим критериям при поиске примеров.

Что касается поиска, доступно множество расширенных опций, но чтобы максимально использовать их, вам нужно знать, что именно вы ищете. GitHub не позволяет искать точные фрагменты кода, а только по именам проектов и файлов. Поиск примеров репозиториев довольно прост, и вы можете использовать панель поиска для поиска в вашем текущем репозитории, вашей текущей организации или на всем GitHub.

Расширенные параметры могут не звонить в колокола, если вы не видели их раньше. Поскольку GitHub также поддерживает систему контроля версий Git, его можно использовать для проверки запросов на вытягивание, просмотра влияния слияний в случае возникновения каких-либо конфликтов и принятия необходимых корректирующих действий.

Quod AI

  • Идеально подходит для: углубленного поиска кода, анализа влияния
  • Плюсы: простой в использовании интерфейс, интеграция с Git/Github, JIRA, универсальный поиск по коду.
  • Минусы: языки программирования ограничены Javascript, Typescript, Java, Python и Ruby.

Quod AI — это инструмент на базе искусственного интеллекта, который делает большую часть работы за вас. Он позволяет вам искать код, находить экспертов и результаты из репозиториев GitHub, а также из задач Jira. QuodAI может быть отличным инструментом, если использовать его в дополнение к GitHub, потому что оба они очень хорошо дополняют друг друга. Если вы нашли нужный пример кода на GitHub, вы можете подключить репозиторий к Quod AI.

После установления соединения Quod AI использует искусственный интеллект для сканирования всего репозитория и создания вопросов и тегов. Эти вопросы перенаправят вас к фрагментам кода, в которых выполняется конкретная операция, а теги перенаправят вас ко всем фрагментам, где этот тег может иметь значение. Например, если есть тег API, он приведет вас ко всем контроллерам в исходном коде, где может быть реализован API. Расширенный поиск позволяет фильтровать технические теги, бизнес-теги, путь (вплоть до определенного файла), дату изменения и расширения файлов. Пользовательский интерфейс очень прост для освоения, а также есть быстрая демонстрация, которая проведет вас через все при первом запуске.

VSCode

  • Идеально для: поиска местного кода
  • Плюсы: де-факто текстовый редактор для разработки программного обеспечения, множество доступных расширений.
  • Минусы: поиск по коду не очень многофункциональный

VSCode — это собственный редактор кода Microsoft, ставший стандартом де-факто в отрасли. Он используется подавляющим большинством разработчиков благодаря богатой экосистеме расширений, которые он поддерживает. Когда у вас есть работающий репозиторий на вашем компьютере, вы можете открыть его в VSCode для поиска по нему. Поиск не очень многофункционален, но вполне хорош для редактора кода. VSCode имеет расширения с Git, которые могут показать предварительный анализ воздействия, но опять же, это ограничено, учитывая, что это редактор кода.

Исходный график

  • Идеально для: поиска в больших кодовых базах
  • Плюсы: поддерживает несколько типов репозиториев, быстрый поиск по коду
  • Минусы: сложный пользовательский интерфейс, нужно понимать запросы

SourceGraph — это веб-система поиска и навигации по коду. На наш взгляд, у него сложный пользовательский интерфейс, и к нему нужно будет привыкнуть. Вы можете связать свои учетные записи GitHub или GitLab и выбрать репозитории, которые вы хотите искать, или вы также можете добавить общедоступные репозитории. Их поиск быстрый, и есть довольно много расширенных параметров поиска, которые вы можете попробовать. Поиск осуществляется с помощью определенных запросов, которые вы можете найти здесь, поэтому для тех, кто пробует это впервые, будет немного сложно понять их. Он также не имеет никаких функций для просмотра воздействий.

Опенгрок

  • Идеально подходит для: быстрого поиска кода, лучше подходит для более продвинутых пользователей.
  • Плюсы: поддержка нескольких систем контроля версий, быстрый поиск по коду
  • Минусы: сложно настроить, первоначальная настройка немного сложна

Opengrok — это браузер исходного кода и инструмент навигации по коду. Он очень быстро выполняет поиск кода и может выполнять сложные поисковые запросы, но требуемая начальная настройка немного сложна для слабонервных. Но у них есть образ Docker, который упрощает процесс. Opengrok — это чрезвычайно многофункциональный браузер кода, который поддерживает полнотекстовый поиск, поиск по определениям и идентификаторам, поиск по пути и истории, поиск по API, использование логических операторов для цепочки запросов и т. д. Он поддерживает множество систем контроля версий, таких как Git, RCS, CVS, Monotone и другие. Opengrok также не поддерживает какой-либо анализ воздействия.

Вывод

Это все, что касается наших 5 лучших инструментов разработки для поиска кода. По нашему мнению, инструмент, который вы используете, во многом зависит от того, чего вы пытаетесь достичь. Мы считаем, что для достижения наилучших результатов не следует ограничиваться одним инструментом, а использовать их в комплексе для максимальной эффективности.