У 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. Студенти вивчають репозиторії, знайомляться із системою контролю версій. Завантажують проекти для портфоліо. Переходьте за посиланням, щоб дізнатися програму та графік навчання.