Знакомство разработчика с GitHub

1656669029 znakomstvo razrabotchika s github

Хотите изучить JavaScript? Получите мою электронную книгу на jshandbook.com

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

Короче говоря, это платформа для разработчиков ПО, и она построена вокруг Git.

СОВЕТ. Если вы еще не знаете о Git, посмотрите мое руководство по Git.

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

Почему GitHub?

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

В конце концов, GitHub управляется частной компанией, получающей прибыль от размещения кода людей. Почему вы должны использовать это вместо подобных платформ, таких как BitBucket или GitLab?

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

Основные кодовые базы со временем перешли из других систем контроля версий на Git из-за его удобства, и GitHub исторически занимал хорошие позиции и прилагал много усилий для удовлетворения потребностей сообщества с открытым кодом.

Поэтому сегодня, когда вы будете искать библиотеку, в 99% случаев вы найдете ее на GitHub.

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

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

Проблемы GitHub

Проблемы GitHub являются одними из самых популярных трекеров ошибок в мире.

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

Если вы открываете проблему в проекте, которым управляет кто-то другой, она будет оставаться открытой, пока вы ее закроете (например, если вы выясните проблему, которая у вас возникла), или пока ее не закроет владелец хранилища.

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

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

Социальная кодировка

zeKPlxHOUmeK4gjz37spBu8yaOyHFfn0SPn6
Кредит изображения: https://octodex.github.com

Несколько лет назад логотип GitHub содержал слоган «социального кодирования».

Что это означало и актуально ли это до сих пор? Это, конечно, да.

Следуйте

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

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

Звезды

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

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

Большие проекты могут иметь десятки тысяч звезд.

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

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

Вилка

Последний важный сетевой показатель проекта – количество разветвлений.

Это ключ к тому, как работает GitHub, поскольку форк является основой Pull Request (PR), являющегося предложением изменений. Человек может разветвить ваше хранилище, внести некоторые изменения, а затем создать запрос на получение, чтобы попросить вас объединить эти изменения.

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

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

Запросы на вытягивание

В предыдущем разделе я представил, что такое запрос на извлечение (PR). Повторимся, человек может разветвить ваше хранилище, внести некоторые изменения, а затем создать запрос на получение, чтобы попросить вас объединить эти изменения.

Проект может иметь сотни PR, и, как правило, чем более популярный проект, тем больше он имеет PR, например проект React:

Z3cdqa5H6YpVbiRanpK5KrI7R7ylKFnErRho

После того, как лицо посылает запрос на получение, его должны пересмотреть основные сопровождающие проекта.

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

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

Это означает, что запрос на вытягивание не всегда принимается быстро, и нет никакой гарантии, что запрос на получение когда-нибудь будет принят.

В примере, который я опубликовал выше, у репо есть запрос на изъятие, которое датируется 1,5 лет назад. И это происходит в все проекты – это вполне нормально и может быть связано с причинами, которые я упомянул выше.

Управление проектами

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

Один из них Проекты. Это очень ново в экосистеме и очень редко используется, но это a Канбан доска что помогает организовать вопросы и работу, которую нужно проделать.

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

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

Говоря о выпусках, GitHub улучшил Тег Git функциональность путем введения выпуски.

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

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

Хотя тег Git можно создать программно (например, с помощью командной строки git программа), создание выпуска GitHub – это ручной процесс, происходящий через интерфейс пользователя GitHub. По сути, вы приказываете GitHub создать новый выпуск и сообщаете им, к какому тэгу вы хотите применить этот выпуск.

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

GitHub предлагает множество инструментов для работы с вашим кодом.

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

GitHub позволяет делать это с помощью сравнить вид: просто добавьте /compare к концу имени репо.

Например, https://github.com/facebook/react/compare

GBDt2fNQIOZS17JBdVo2ILLTQdu1wcF9FYxq

На рисунке ниже я сравниваю последние React v15.x до последнего v16.0.0-rc версия, доступная на момент написания этой статьи, чтобы увидеть, что изменилось.

NVNSfcKh3bIYmlM0wgG4qgJNLp9wwFcg8mqB

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

Веб-перехват и службы

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

Веб-хуки

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

Когда происходит событие, GitHub посылает запрос POST на URL, который мы ему приказываем использовать.

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

Мы отправляем данные на GitHub, GitHub сообщает серверу, который мы отправили, и сервер получает данные из GitHub.

Услуги

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

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

Вы можете настроить постоянную интеграцию с помощью CircleCI.

Вы можете создать интеграцию Codeclimate, которая анализирует код и предоставляет отчет о «техническом долге» и тестовом покрытии.

Заключительные слова

GitHub – это отличный инструмент и сервис, которыми стоит воспользоваться, настоящая жемчужина в наборе инструментов для современных разработчиков. Этот учебник поможет вам начать работу, но реальный опыт работы над проектами GitHub с открытым (или закрытым) кодом – это то, что нельзя пропустить.

Хотите изучить JavaScript? Получите мою электронную книгу на jshandbook.com

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

Ваш адрес email не будет опубликован.