В 2022 году GitHub объединил 83 миллиона разработчиков. Сайт используют как портфолио, место для совместной работы, форум. В статье рассказываем — что такое GitHub, и почему каждый программист должен работать с сайтом чаще, чем открывать Instagram.
GitHub — это хостинг для кода и тусовка программистов
Гитхаб придумали в 2008 году как площадку для разработки проектов: приложений, сайтов или чат-ботов. С 2019 года сайт предлагает программистам размещать код в открытом и закрытом доступе. Компании, команды и фрилансеры бесплатно могут загружать код, как файлы на облако. Что это значит?
Код и документация проектов в одном месте. Не нужно отправлять архивы с папками и просить клиентов скачивать редакторы кода — достаточно загрузить проект в GitHub и дать доступ.
Папка, куда программист загрузил конкретный проект называется — репозиторий GitHub. Простое название — хранилище. На картинке вверху один из таких примеров.
Клиентам важен результат, а не голые строчки кода. Поэтому, например, для вёрстки GitHub предлагает собственный хостинг — можно загрузить код и открыть мини-сайт для клиента.
Проекты бывают публичными — видны всем пользователям. И приватные — если передавать доступ ограниченному числу людей.
Если поделиться доступом к папке — можно работать вместе. На примере с вёрсткой сайта: один разработчик пишет код для карточек сайта блоки, другой — верстает основную часть, третий — стили для меню.
Совместная работа помогает отладить проект. Бывает, что разработчики пишут в разных стилях. А когда код соединяют — сайт или приложение не работает, как нужно.
GitHub решает проблему. Сначала разработчики пишут код в отдельных папках. Это называется ветками проекта. После ветки соединяют в главную папку — коммит.
Если в коммите появляются ошибки — можно найти конкретную ветку и её исправить.
В GitHub сохраняются прошлые версии проекта. За это отвечает Git — система контроля версий. Это вроде папки с обновлениями для компьютерной игры: если игра работает — человек пользуется последней версией. Но бывает, что игру запустили рано, и обновление работает плохо. Тогда можно удалить новое и вернуться к старому.
Из чего состоит GitHub
GitHub — инструмент для управления проектами и версиями кода. Сайт можно разделить на две составляющие: Git — система контроля версий; Hub — социальная сеть для разработчиков.
Git. Система контроля версий напоминает Behance для дизайнеров или сайт с портфолио на собственном домене и хостинге.
Например, проекты на картинке открыты для общего доступа. Можно перейти и посмотреть, какими идеями делятся разработчики. А для клиентов — это подтверждение опыта программиста.
Внутри сайта можно загрузить код любого проекта — скопировать из Visual Studio Code или другого редактора.
👉 Напомним: папка с проектом на GitHub — репозиторий.
Пример одного из проектов. На странице видим описание, все файлы проекта и меню.
Главная цель Git — сохранять все копии кода. Допустим, вы встречались с функционалом Google Docs. Внутри редактора работает инструмент — История версий. В нём автоматически сохраняются изменения документа в отрезки времени.
—10:00 — пользователь добавил предложение «GitHub — это социальная сеть для разработчиков».
—10:05 — пользователь удалил предложение. Создал список.
—10:06 — добавлен главный заголовок H1.
В истории версий Google Docs видно, как все авторы и редакторы изменяли документ. То же самое и с Git. Если куча разработчиков пишет код — система сохраняет изменение каждого, как резервную копию.
История версий видна пользователям с доступом к Git. В общем доступе показывают дату последнего изменения.
Представьте ситуацию: компания разрабатывает мобильное приложение на 200 страниц. Четырём разработчикам передали в разработку по 50 страниц.
Программисты одновременно пишут код, исправляют ошибки на своих участках — ветках проекта. Пока они работают, как отдельные единицы.
После тестирования кода ветки добавляются в основную папку.
Для чего нужны версии? Это полезно, когда что-то ломается и разработчикам нужно вернуться назад и восстановить предыдущую версию — резервную копию.
Например, на этапе тестирования ветки работали без ошибок. Но при соединении проект не запускается. Часто это случается при обновлении приложения.
Вместо того, чтобы переписывать код — возвращаются к прошлой версии. Сравнивают с новой и исправляют ошибку.
Hub. На GitHub рабочая атмосфера. Программисты публикуют проекты. Некоторые показывают другим пользователям, чтобы получить комментарий, отзыв, ответить на вопросы.
Популярные проекты с хорошими оценками GitHub публикует на странице трендов.
А в строке Built By показывает несколько иконок пользователей GitHub — это все разработчики, которые создавали проект в системе контроля версий Git.
Работы оценивают звёздами, комментируют. Отдельно работает кнопка спонсорства разработчиков. Если приложение или код помог решить проблему, можно отблагодарить программиста.
Важная функция в каждом репозитории — Fork. Нажав на кнопку, можно скопировать проект в свой аккаунт. Это не кража, потому что проекты находятся в Open-source режиме, а не в закрытом доступе.
Open-source проекты — это программы с открытым кодом для разработчиков. Его можно скачать и изменять. Лицензия остаётся за создателем, а остальные пользуются копиями.
Матёрые разработчики из копий улучшают код, исправляют баги или улучшают работу программы. Этим пользуются крупные компании — запускают open-source проекты. Компания получает тысячи умов, которые находят решения. Продукт становится качественнее. А разработчики получают опыт и практику.
Если версия сообщества помогает компании — её добавляют в Git. А программист может обозначить в профиле, что работал с компанией в резюме.
Если компания заинтересовалась идеями конкретного человека — его могут пригласить на работу или в отдельный проект.
Возьмём пример — Mozilla Firefox. Это проект с открытым исходным кодом. К главному файлу разработчики создали 27 тысяч копий: кто-то устранил баг или придумал новую кнопку, меню, стили.
Добавить сторонний репозиторий в основной или нет — решать разработчикам компании.
Копирование репозиториев — практика для начинающего разработчика. Можно брать идеи и переписывать код для себя. Например, взять часть вёрстки сайта и вставить в проект.
Ещё вариант — копировать код, чтобы научиться читать стиль других программистов — это сильно поможет в компании. Часто придётся брать сырые проекты и разбираться, чем занимались коллеги.
Чем ещё полезен GitHub
Кроме контроля версий,совместной работы и хранилища файлов, GitHub предлагает другие возможности для разработчиков: резюме, магазин приложений, конференции и соревнования.
Визитка. В настройках профиля левую сторону можно использовать как резюме: написать имя, информацию о себе, место работы. А к фото добавить эмодзи и статус. Например, «в поисках работы» или «открыт к предложениям».
В документации GitHub подробно рассказано, как создавать частные репозитории. А ещё — как сменить доступ с открытого на закрытый, и наоборот.
Частные репозитории. Иногда нужно закрыть доступ к проекту, но работать в системе Git. Например, когда в документации конфиденциальная информация о клиенте и его продукте. А разработчики подписали документ о неразглашении (NDA).
Ещё вариант — разработчик не хочет делиться проектами с сообществом. Делает профиль на GitHub, как визитку: чтобы перейти на проекты, программист делится доступом с конкретным человеком.
В GitHub можно создать частный репозиторий. Это как файл с ограниченным доступом в Google Drive или другом облаке.
На платном тарифном плане команды могут сотрудничать на GitHub, сохраняя свой код за закрытыми виртуальными дверями.
Marketplace. Кроме фриланса, программисты могут заработать на приложениях внутри GitHub. Нужно создать полезную программу, пройти модерацию и опубликовать в магазине.
Некоторые публикуют приложения бесплатно. Люди скачивают, а продукт набирает популярность. Программиста могут заметить потенциальные клиенты.
Например, человек разработал блокнот для Project-менеджмента. Сначала его заметили пользователи — скачали более 10 000 раз. GitHub установил значок — рекомендовано.
Если клиент найдёт подобное приложение и заинтересуется в разработке — он свяжется с программистом. Часто так предлагают спонсорство в проекте, рекламу или работу в компании. Как над новыми продуктами, так и версиями приложения из магазина.
Инструменты планирования. В GitHub встроена система проектов, вроде блокнота. Работает, как Notion или другой планировщик задач.
Создают проекты во вкладке Project. Далее, человек пишет всё, что поможет решить задачу: название черновика, ответственного за исполнение, дедлайны, готовность проекта. По результатам к каждому этапу прикрепляет ссылку на ветку разработчика.
Мероприятия. На GitHub публикуют ивенты для разработчиков. Например, конференции или соревнования. На конференции идут за новостями, трендами, интересными идеями. А на соревнованиях можно показать весь опыт и наработки, заинтересовать потенциальных клиентов.
В сообществе публикуют и локальные соревнования. Допустим, разработчики Киева создают репозиторий с документацией — правилами игры. Участники пишут код или улучшают готовый.
На момент написания статьи, в GitHub 482 публичных репозитория. Люди соревнуются в идеях и программных решениях.
Что почитать, чтобы стать гуру GitHub
Вот главные материалы, которые помогут новичкам в работе с Git и Hub:
-
Шпаргалка на русском языке. В статье опытный разработчик делится первыми шагами на GitHub.
-
Githowto — интерактивный учебник с уроками по основам Git.
-
Бесплатный вводный курс по Git на Youtube.
-
Видео — как разместить проект на GitHub.
В IT STEP студенты-программисты работают с Git и GitHub. Один из примеров — курс программирования на Python. Студенты изучают репозитории, знакомятся с системой контроля версий. Загружают проекты для портфолио. Переходите по ссылке, чтобы узнать программу и график обучения.