Skip to main content

Поиск и понимание примера кода

Улучшайте навыки программирования, обучая пример кода на GitHub.

Как узнать из кода на GitHub?

Обучение проектов на GitHub — отличный способ обучения новых методов и поиска вдохновения для собственных проектов.

Однако с миллионами общедоступных репозиториев на GitHub, поиск кода, применяемого к проекту, может быть подавляющим. Даже после поиска идеального репозитория может быть трудно перейти к базе кода, чтобы найти полезные примеры.

Вместо того чтобы понять весь проект, лучше выбрать одну функцию или функцию и узнать, как она работает. Мы можем использовать функции поиска Copilot Chat и GitHub, чтобы найти функцию и следовать за ней. Это отличный способ узнать, как мы можем увидеть, как функция работает весь путь от серверной части к интерфейсу.

В этом руководстве вы узнаете, как это сделать , выполнив пример сценария: узнайте, как загружать и отображать данные из файлов на веб-сайте Jekyll. Затем вы можете применить советы и методы к другим проектам и языкам программирования.

Поиск примера проекта

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

Используйте Copilot Chat для идентификации репозитория

Самый быстрый способ найти проект с кодом, который можно узнать, заключается в том, чтобы попросить Copilot Chat найти репозитории, соответствующие вашим критериям.

Откройте Copilot Chat и запустите чат общего назначения. Затем спросите:

Можно ли найти некоторые популярные репозитории, использующие Jekyll для отображения данных из файлов в репозитории?

Copilot вернет ссылки на соответствующие репозитории, и вы можете задать дополнительные вопросы о репозиториях.

Часто Copilot завершает ответ с ссылкой на GitHub с дополнительными результатами. Далее мы рассмотрим эти результаты.

Использование поиска для определения дополнительных параметров

Если Copilot включили ссылку на результаты поиска, следуйте ссылке. Если нет, создайте собственный поисковый запрос, выполнив приведенные ниже действия.

  1. Перейдите к расширенному поиску.
  2. В разделе "Дополнительные параметры" используйте раскрывающийся список "Написанный на этом языке" для выбора языка программирования. Для нашего сайта Jekyll мы будем выбирать HTML.
  3. При необходимости в разделе "Параметры репозиториев" рядом с параметром "С этим множеством звезд", введите >150. Это поможет вам найти популярные репозитории, которые, вероятно, хорошо поддерживаются.
  4. В верхней части страницы нажмите кнопку "Поиск".

Tip

Мы можем дополнительно сузить результаты поиска, добавив разделы и текст в поисковый запрос. Например, topic:jekyll "blog" возвращать репозитории владелец классифицировался как связанный с Jekyll и словом "блог" в имени или описании репозитория. Список популярных тем см. в разделах GitHub.

Выбор проекта

После просмотра результатов из Copilot и поиска мы решили использовать репозиторий github/choosealicense.com . Этот репозиторий содержит исходный код для выбора лицензии, веб-сайт Jekyll, который предоставляет сведения о лицензиях открытый код.

Мы особенно заинтересованы на странице "Лицензии", которая отображает популярные открытый код лицензии из файлов данных.

Ориентирование на себя в проекте

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

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

Файл README.md

Всегда рекомендуется читать файл README.md , который является первой страницей репозитория и автоматически отображается под списком файлов. Различные средства обслуживания будут включать разные сведения, но часто можно найти сведения о проекте, как создать его на локальном компьютере и ссылки на документацию.

github/choosealicense.com В репозитории README.md-файл объясняет, где живут файлы лицензий (/_licenses), атрибуты каждой лицензии и как получить веб-сайт, работающий на компьютере.

Использование Copilot Chat

Если файл README.md не дает вам всех ответов, вы можете попросить Copilot помочь вам перейти к репозиторию и найти функциональные возможности.

Чтобы открыть Copilot Chat, щелкните значок GitHub Copilot рядом с строкой поиска и задайте свой вопрос. Например:

Что такое основная целевая страница для этого веб-сайта Jekyll?

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

Вики-сайт репозитория

Другой возможный источник информации — вики-сайт** репозитория**, раздел репозитория специально для размещения документации. Каждый репозиторий на GitHub оснащен возможностью использовать вики-сайт, но не каждый репозиторий использует его. Чтобы получить доступ к вики-сайту, щелкните вкладку Вики-сайта в репозитории.

Выпуски

Если исходный код репозитория встраивается в исполняемый файл, некоторые ответственный за репозиторий будут использовать выпуски** репозитория **для публикации двоичных файлов. Вы можете скачать и запустить эти двоичные файлы, чтобы изучить, как работает приложение при изучении базы кода, не создавая проект самостоятельно.

Выпуски репозитория можно найти на боковой панели справа от списка файлов и README.md.

Внутренняя документация

Вы также можете найти внутреннюю документацию в содержимом репозитория. Это может быть один файл Markdown или каталог, полный файлов Markdown. Распространенные имена для поиска: "docs", "документация", "wiki", "resources", "help" и "manual".

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

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

Чтобы приступить к работе, нам нужно что-то найти. Это может быть строка текста, уникального для проверяемой функции, или мы могли бы просмотреть html-источник страницы и найти конкретный class или id атрибут.

В нашем примере мы найдем текст в верхней части страницы лицензий, используя следующий запрос: repo:github/choosealicense "If you’re looking for a reference table?" Возвращается один результат, файл с именем licenses.html.

Теперь мы можем щелкнуть результат и углубиться! licenses.html является источником страницы "Лицензии" мы искали. Мы видим строку, которую мы искали, и что каждая из лицензий включена в код ниже:

{% include license-overview.html license-id="agpl-3.0" %}

Общие сведения о исходном коде

Теперь, когда мы нашли конкретный код, который мы заинтересованы, мы можем перейти к его пониманию.

Запрос Copilot Chat о коде

Вы можете использовать Copilot для получения дополнительных сведений о файле или даже определенных строках кода. Copilot объединяет сведения о языке программирования с контекстом из репозитория, чтобы получить подробные ответы на ваши вопросы.

Давайте попросите Copilot объяснить, что происходит в строке 11 с тегом {% include %} . Щелкните номер строки. Затем справа от строки щелкните . В окне чата попросите:

Что происходит в этой строке?

Copilot объяснит, что строка включает license-overview.html файл и передает их в "agpl-3.0" качестве отображаемого license-id .

Tip

Если вы не понимаете ответ от Copilot Chat, вы всегда можете попросить его упростить или расширить в определенной части.

Чтение комментариев

Комментарии — это доступные для чтения заметки, которые можно использовать для понимания кода и не выполняются. Обычно они разделены символами, такими как // или /*.

Есть несколько типов комментариев для поиска:

  • Строка: одно строковый комментарий, описывающие то, что делает определенная строка
  • Блок: много строковый комментарий, которые могут описать, что делает вся функция или файл.
  • Файл: блок-комментарий в самом начале файла, предоставляющий обзор этой конкретной части базы кода.

Поиск функций в ссылках на язык программирования

Каждый язык программирования будет иметь ссылку в Интернете, объясняя каждый аспект языка.

При использовании поисковой системы для поиска языка программирования и функции необходимо найти ссылку на эталонную страницу этой функции.

В нашем примере поиск jekyll include в поисковой системе должен вернуть документацию "Включает" в документации Jekyll. Если ознакомиться с документацией Jekyll, мы видим, что сами лицензии являются коллекцией в каталоге_licenses.

Tip

Если вы не можете найти функцию в справочнике по языку программирования, скорее всего, эта функция определена в самой базе кода. Попросите GitHub Copilot найти его.

Чтобы сводные сведения о том, что мы узнали: licenses.html файл включает в себя /_includes/license-overview.html каждую лицензию. Файл /_includes/license-overview.html соответствует license-id предоставленной лицензии в /_licenses коллекции и отображает сведения.

Экспериментирование с небольшими изменениями

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

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

Попробуйте найти license-overview.html файл в _includes каталоге, а затем внести изменения в способ отображения лицензии или экспериментировать с тем, как лицензия загружается из коллекции.

Вы можете изменить метаданные в начале одного из файлов лицензий, изменить атрибуты, отображаемые в license-overview.html, или даже попробовать добавить собственный атрибут. После внесения изменений его можно протестировать, выполнив README.md инструкции по просмотру в браузере.

Применение того, что мы узнали

Репозиторий github/choosealicense.com является отличным примером большого проекта Jekyll и демонстрирует, сколько возможно с Jekyll и GitHub Pages. Можете ли вы применить то, что вы узнали из структуры репозитория, как он использует коллекции и как он включает данные лицензии для создания собственного проекта?

Следующие шаги

Теперь, когда вы понимаете, как работает пример кода, может потребоваться повторно использовать его в собственном проекте. Повторное использование кода является мощной частью разработки программного обеспечения, но есть важные шаги, чтобы сделать это правильно и юридически. Полный учебник см. в разделе Reusing other people's code in your projects.