2022-ci ildə GitHub 83 milyon proqram tərtibatçısını birləşdirib. Bu sayt portfolio,
birgə iş məkanı, forum kimi istifadə olunur. Bu məqalədə biz GitHub nədir və nə
üçün hər bir proqramçı onunla çox tez-tez işləməlidir suallarına cavab tapmağa
çalışacağıq.
GitHub bir kod hostinqi və proqramçıların görüş məkanıdır
Github 2008-ci ildə proqramlar, saytlar və çatbotlar kimi layihələrin hazırlanması
üçün nəzərdə tutulmuş bir platforma kimi yaradılıb. 2019-cu ildən bəri sayt
proqramçılara kodu açıq və bağlı şəkildə (открытый и закрытый доступ)
yerləşdirməyi təklif edir. Şirkətlər, komandalar və frilanserlər sayta kodu faylları
buluda yüklədikləri kimi yükləyə bilər. Bu nə deməkdir?
Layihələrin kodu və faylları bir məkanda. Arxivləri qovluqlarla birlikdə
göndərməyə və müştərilərdən kod redaktorlarını yükləmələrini xahiş etməyə
ehtiyac yoxdur – sadəcə layihəni GitHub-a yükləyin və ona giriş açın.
Proqramçının müəyyən bir layihəni yüklədiyi qovluq GitHub repozitorisi adlanır.
Bu, bir anbardır. Yuxarıdakı şəkildə siz repozitori nümunələrindən birini
görürsünüz.
Müştərilər üçün quru kod sətirləri deyil, nəticə əhəmiyyət daşıyır. Buna görə də,
məsələn saytların tərtib edilməsi üçün GitHub bizə öz hosting xidmətini
təklif edir – siz kodu yükləyə və müştəri üçün mini sayt aça bilərsiniz.
Layihələr ümumi və xüsusi ola bilər. Birinciləri bütün
istifadəçilər, ikinciləri isə məhdud sayda istifadəçilər görə bilər.
Hər-hansı bir qovluğa giriş açsanız, yəni ona giriş icazəsi versəniz, o zaman
birgə işləyə bilərsiniz. Saytın yaradılması ilə bağlı bir misaldan istifadə edək:
tərtibatçının biri saytın başlığını və sonunu, ikincisi saytın əsas hissəsini, üçüncüsü
isə saytın menyusunu düzəldir.
Birgə iş layihəni sazlamağa kömək edir. Lakin bəzən tərtibatçılar müxtəlif
üslublarda işləyir. Bütün tərtibatçıların yazdığı kodu birləşdirdikdə isə məlum olur
ki, yaradılan sayt və ya proqram lazım olduğu kimi işləmir.
GitHub bu problemi həll edir. Əvvəlcə tərtibatçılar kodu ayrı-ayrı qovluqlarda
yazır. Onlar layihənin budaqları adlanır. Sonra bu budaqları birləşdirib kommit
adlanan qovluq yaradırlar.
Kommitdə xəta olsa, onu müəyyən bir qovluqda tapıb düzəltmək olar.
GitHub-da layihənin əvvəlki versiyaları saxlanılır. Buna Git, yəni versiyalara
nəzarət sistemi cavabdehdir. Bu, kompüter oyunu üçün yeniləmələr olan bir qovluq
kimidir: oyun işləyirsə, istifadəçi onun son versiyasından istifadə edir. Ancaq
bəzən oyunu tələsik işə salırlar və yeniləmə pis işləyir. O zaman yeni versiyanı
silib əvvəlkinə qayıdırlar.
GitHub nədən ibarətdir
GitHub layihənin və kod versiyalarının idarə edilməsi üçün bir vasitədir. Saytı iki
hissəyə bölmək olar: Git – versiyalara nəzarət sistemi; Hub – tərtibatçılar üçün şəbəkədir.
Git. Versiyalara nəzarət sistemi dizaynerlər üçün nəzərdə tutulmuş Behance-ni və
ya öz domenində və hostinqində portfoliosu olan saytı xatırladır.
Məsələn, şəkildəki layihələrə ümumi giriş açıqdır. Linklərdən istifadə
edərək keçib tərtibatçıların hansı ideyaları bölüşdüyünü görə bilərsiniz.
Müştərilər üçünsə bu, proqramçının təcrübəli olmasının təsdiqidir.
Saytın içərisinə istənilən bir layihənin kodunu yükləmək olar – Visual Studio Code
ya başqa bir redaktordan copy etməklə.
Qeyd: layihənin GitHub-dakı qovluğu repozitori adlanır.
Layihələrdən biri. Səhifədə layihənin təsviri, faylları və menyusu əks
olunmuşdur.
Git-in əsas vəzifəsi kodun bütün nüsxələrini saxlamaqdır. Google Docs
funksionallığı ilə tanışsınızmı? Redaktorun içərisində bir “versiya tarixçəsi” aləti
var. Müəyyən vaxtdan bir fayl-da edilən dəyişiklər avtomatik olaraq yaddaşda
saxlanılır.
-10:00 – istifadəçi "GitHub tərtibatçılar üçün bir sosial şəbəkədir" cümləsini əlavə
etdi.
-10:05 – istifadəçi həmin cümləni sildi. O, bir siyahı yaratdı.
-10:06 – H1 əsas başlığı əlavə edildi.
Google Docs-un versiya tarixçəsində bütün müəlliflərin və redaktorların sənədi
necə dəyişdirdiyi göstərilir. Bu, Git-də də belədir. Kodu bir dəstə tərtibatçı
yazdıqda sistem onların hər birinin dəyişikliyini ehtiyat nüsxə kimi yaddaşda
saxlayır.
Versiya tarixçəsini Git-ə girişi olan istifadəçilər görə bilər. Ümumi giriş
son dəyişiklik tarixini göstərir.
Tutaq ki, şirkət 200 səhifəlik bir mobil tətbiqi hazırlayır. Dörd tərtibatçının hər
birinə 50 səhifənin işlənməsi həvalə edilib.
Proqramçılar eyni zamanda kod yazır, öz sahələrindəki, yəni layihənin
budaqlarındakı səhvlərini düzəldirlər. Müəyyən müddət ərzində onlar ayrı-ayrı
vahid kimi işləyir.
Kodu sınadıqdan sonra budaqlar əsas qovluğa əlavə olunur.
Versiyalar nəyə lazımdır? Bu mexanizm nəyinsə pozulması zamanı tərtibatçıların
geri qayıdıb əvvəlki versiyanı, yəni ehtiyat nüsxəni bərpa etməsi lazım olduqda
faydalıdır.
Məsələn, sınaq mərhələsində budaqlar xətasız işləyir. Ancaq onları bir-birinə
bağladıqda layihə işə düşmür. Bu, adətən proqramı yeniləyərkən baş verir.
Bu zaman kodu yenidən yazmırlar. Sadəcə əvvəlki versiyaya qayıdırlar. Yeni
versiya ilə müqayisə edib, səhvləri düzəldirlər.
Hub. GitHub-da iş ab-havası var. Proqramçılar layihələr dərc edir. Bəziləri onları
şərh və rəy almaq, eləcə də suallara cavab vermək üçün digər istifadəçilərə
göstərir.
Yüksək reytinqli populyar layihələri GitHub trendlər səhifəsində dərc edir.
Built By sətrində isə GitHub bir neçə istifadəçi nişanını (иконка) göstərir. Bunlar
Git versiyalara nəzarət sisteminə əsasən layihənin bütün tərtibatçılarıdır.
İşlərə ulduzlar vasitəsilə qiymət verilir, şərh edilir. Proqramçıların sponsorluq
düyməsi də var. Proqram və ya kod problemi həll etməyə kömək edibsə,
proqramçıya təşəkkür etmək olar.
Hər bir repozitorinin mühüm funksiyalarından biri Fork adlanır. Düyməni
sıxmaqla layihəni öz hesabınıza copy edə bilərsiniz. Bu oğurluq deyil, çünki
layihələrin girişi bağlı (закрытый доступ) deyil, onlar Open-source rejimindədir.
Open-source layihələri kodu tərtibatçılar üçün açıq olan proqramlardır. Onlar
endirilə və dəyişdirilə bilər. Lisenziya proqramın yaradıcısında qalır, qalanları isə
nüsxələrdən istifadə edir.
Təcrübəli proqramçılar nüsxələrdəki kodu təkmilləşdirir, səhvləri düzəldir və
proqramın işini yaxşılaşdırır. Bu imkanlardan iri şirkətlər yararlanır: öz layihələrini
open-source elan edib GitHub-da yerləşdirirlər. Minlərlə proqramçı həmin şirkət
üçün ideyalar axtarır. Məhsul daha keyfiyyətli alınır. Tərtibatçılar isə təcrübə yığır.
Hamıya sərf edir.
Hər hansı bir versiya şirkətin işinə yarıyırsa, o zaman həmin versiya Git-ə əlavə
olunur. Versiyanı tərtib edən proqramçı isə öz hesabında həmin şirkətlə işlədiyini
göstərə bilər.
Hər hansı bir şirkət müəyyən bir proqramçının ideyaları ilə maraqlanırsa, onu işə
və ya ayrıca bir layihənin icrasına dəvət edə bilər.
Bir misala baxaq – Mozilla Firefox. Bu layihə açıq mənbə koduna malikdir. Əsas
fayldan tərtibatçılar 27 min nüsxə yaradıb: biri bir xəta aradan qaldırıb, ikincisi
yeni bir düymə əlavə edib, üçüncüsü menyunu təkmilləşdirib və s.
Layihənin repozitorisinə kənar repozitori əlavə edib etməmək haqqında qərarı
şirkətin tərtibatçıları verir.
Repozitorilərin copy edilməsi təcrübəsiz tərtibatçının işidir. İdeyaları mənimsəyə
və kodu özünüzə uyğunlaşdıra bilərsiniz. Məsələn, saytın kodunun bir hissəsini
götürüb öz layihənizə daxil edə bilərsiniz.
Daha bir variant digər proqramçıların yazı üslubunu öyrənmək üçün kodu copy
etməkdir. Bu, işdə çox kömək edir. Belə ki, siz tez-tez xam layihələr götürməli və
həmkarların nə yazdığını anlamalı olacaqsınız.
GitHub-ın faydaları
Versiyalara nəzarət, əməkdaşlıq və fayl anbarı ilə yanaşı, GitHub tərtibatçılara CV,
tətbiq mağazası, konfrans və yarış kimi digər imkanlar təklif edir.
Vizit kartı. Profil parametrlərində sol tərəf CV kimi istifadə edilə bilər: öz adınızı,
özünüz haqqında məlumatı, iş yerinizi yazın. Fotoşəklə isə emoji və status əlavə
edin. Məsələn, "iş axtarışındayam" və ya "təkliflərinizi gözləyirəm".
GitHub sənədləri xüsusi repozitorilərin necə yaradıldığını ətraflı izah edir.
Girişi açıqdan bağlı və əksinə çevirmək qaydasını da.
Şəxsi repozitori. Bəzən layihəyə girişi bağlayıb Git sistemində işi davam etdirmək
lazım olur. Məsələn, fayllarda müştəri və onun məhsulu haqqında gizli məlumatlar
olduqda. Axı tərtibatçılar isə gizli məlumatları yaymayacaqları haqqında sənəd
(NDA) imzalayır.
Başqa bir variant – tərtibatçı öz layihəsini paylaşmaq istəmir. GitHub-da profili
vizit kartı kimi yaradır: layihələrə keçmək üçün proqramçı girişi müəyyən bir
istifadəçi ilə bölüşür.
GitHub-da şəxsi repozitori yaratmaq da olar. Bu, Google Drive və ya başqa bir
buludda məhdud girişli bir fayl kimidir.
Ödənişli tarif planında komandalar GitHub-da əməkdaşlıq edərkən öz kodlarını
virtual qapılar arxasında bağlı saxlaya bilərlər.
Marketplace. Frilans işləri ilə yanaşı, qazancı proqramçılar GitHub-ın daxilindəki
tətbiqlərdən də əldə edə bilərlər. Bunun üçün faydalı bir proqram yaratmaq,
moderasiyadan keçmək və onu mağazada yerləşdirmək lazımdır.
Bəziləri proqram tətbiqlərini pulsuz yayımlayır. İnsanlar onları endirir və məhsul
populyarlıq qazanır. Proqramçını potensial müştərilər və şirkətlər görə bilər.
Məsələn, tərtibatçılardan biri layihələrin idarə edilməsi üçün bir bloknot tərtib
edib. Əvvəlcə onu istifadəçilər görür və onu 10.000 dəfədən çox endirir. GitHub bu
proqramı “tövsiyə olunur” (рекомендовано) nişanı ilə qeyd edir.
Müştəri bu proqramı görərsə və onun tərtibatı ilə maraqlanarsa, o proqramçı ilə
əlaqə qurur. Çox zaman bu qaydada layihə sponsorluğu, reklam və ya şirkətdə iş
təklif edilir. Bu, həm yeni-yeni proqramlar, həm də mağazadakı proqramlarla bağlı
olur.
Planlama vasitələri. GitHub-a bloknot kimi bir sistem quraşdırılmışdır. O, Notion
və ya digər tapşırıq planlayıcısı kimi işləyir.
Project tabında layihə yaradılır. Bundan əlavə, müştəri məsələni həll
etməyə kömək edəcək məlumatı qeyd edir: qaralamanın adını, məsələnin həll
edilməsinə cavabdeh olan şəxsin adını, son tarixi və s. Hər bir mərhələ üçün o,
tərtibatçı budağına bir link əlavə edir.
Tədbirlər. GitHub-da tərtibatçılar üçün tədbirlər dərc olunur. Məsələn, konfranslar
və ya yarışlar. Konfranslarda xəbərlər, tendensiyalar, maraqlı fikirlər üçün iştirak
edirlər. Yarışlarda isə bütün təcrübə və yaradılmış məhsulları göstərə, potensial
müştərilərin marağını cəlb etmək olar.
GitHub-da yerli yarışlar da dərc olunur. Məsələn, Kiyev proqramçıları daxilində
oyun qaydaları olan bir repozitori yaradır. İştirakçılar yeni kod yazır və ya hazır
olanları təkmilləşdirir.
Məqalənin yazıldığı anda GitHub-da 482 ictimai repozitori var. İnsanlar ideya və
proqram yaratmaqda yarışır.
IT STEP-də proqramçı tələbələr Git və GitHub ilə işləyir. Python proqramlaşdırma
kursu buna bir misaldır. Tələbələr repozitoriləri öyrənir, versiyalara nəzarət sistemi
ilə tanış olur, portfolio üçün layihələr endirir. Proqramı və tədris cədvəlini
öyrənmək üçün bu linkdən istifadə edin.