Menu
article thumbnail

Open Source proqram təminatı və “Kibrit”

Open Source proqram təminatı (bundan sonra sadəcə OSS) “mənbə kodları” (source code) açıq olan və istənilən şəxs tərəfindən baxıla, dəyişdirilə və təkmilləşdirilə bilən proqram təminatıdır.

“StackOverflow”-nun apardığı sorğuya görə proqramçıların 75%-i boş vaxtlarında  OSS-layihələr üzərində işləyiblər. Bu məqalədə biz iki suala cavab verməyə çalışacağıq: 

  1. Proqramçılar niyə OSS layihələrdə iştirak edir?
  2. “Kibrit”-in proqramçıları OSS-ə töhfə edirlərmi?

Proqramçılar niyə OSS layihələrdə iştirak edirlər?

OSS layihələr keyfiyyətli proqram təminatı yaratmaq üçün əla üsuldur. Biz proqramçılar bu üsulu onun təqdim etdiyi bir neçə fürsətə görə seçirik:

  • Daha çox bilik əldə etmək

Proqramlaşdırmanı öyrənməyin ən sadə və yaxşı yolu kod yazmaqdır! İkinci yol – digər proqramçıların bunu necə etdiyini izləməkdir. GitHub və OSS bunların hər ikisini özündə cəmləşdirir. Kod açıq olduğundan, hər bir proqramçı onu yükləmək, oxumaq və dəyişdirməklə yanaşı həmin kodu nəzərdən keçirərək yeni şeylər öyrənə bilər.

  • Digər proqramçılara fayda gətirmək

Hamımız istifadə etdiyi layihənin üzərində işləyərək biz onu hamı üçün təkmilləşdiririk. Bu isə  OSS proqramlaşdırmanın ən gözəl tərəflərindən biridir. Biz özümüzü faydalı hiss edirik. 

  • İş portfoliosunu zənginləşdirmək

GitHub-a istinad CV-mizin mühüm hissələrdən biridir. O bizim bacarıqlarımızı, maraqlarımızı və motivasiyamızı səciyyələndirir. “Pull request”-lərimiz ideal olmaya bilər, lakin OSS-layihələrdə daimi iştirakımız peşəkarlığımızın əyani göstəricisidir.

  • Yeni insanlarla tanış olmaq

Öz fikir və təkliflərimizlə bölüşərək proqramçı kimi böyüyürük. OSS-layihəyə qoşulmaqla biz çoxsaylı müzakirələrə qatılmış oluruq, yaranan sual və problemləri böyük komanda çərçivəsində həll etməyi öyrənirik. Bəzi hallarda, həmin müzakirələrin sayəsində özümüzə mentor və yeni dostlar tapırıq.

  • İdeyalarımızı reallaşdırırıq

Tutaq ki, bizim maraqlı ideyalarımız var və biz onları proqram məhsuluna çevirmək istəyirik, və ya hər hansı bir mövcud layihəni təkmilləşdirmək arzusundayıq, lakin bunları həyata keçirə biləcək komandaya malik deyilik.  Belə olan halda nə etməliyik? Ruhdan düşməyərək GitHub kimi platformalarda fəal olmalıyıq. Digər OSS proqramçılardan rəylər alıb, onları komandamıza cəlb etməliyik. Bu yolu seçsək, ideyalarımızı reallaşdırmaq asan olacaq.

“Kibrit”-in proqramçıları OSS-ə töhfə edirlərmi?

Kibrit şirkətinin həyata keçirtdiyi sonuncu OSS-layihə “Yüksəliş” layihəsi oldu. Frontend- proqramçılarımız web-application üçün React framework-unu seçdilər. Qarşımıza qoyulmuş tələblərdən biri isə interfeys elementlərinin  hamısının Azərbaycan dilində olması idi. Lakin proqramın istismara verilməsinə  az zaman qalmış, istifadə etdiyimiz təqvim komponentin İngilis dilində olduğunu aşkarladıq.  Həmin komponentin dil konstantaları Azərbaycan dilin dəstəkləməyən “date-fns” library-dən asılı idi. Biz belə bir qərara gəldik ki, problemi tək özümüz üçün deyil, bütün proqramçılar üçün həll edək. Böyük məmnuniyyətlə nəzərinizə çatdırırıq ki, artıq, mütəxəssisimiz Emil Bağırovun əməyi sayəsində, “date-fns” library (2.9.0 versiyasından başlayaraq) Azərbaycan dilini dəstəkləyir. Onu da qeyd  etmək lazımdır ki, “date-fns” sadəcə komponentlərdə deyil, həm də “Material-UI” kimi məşhur UI framework-larda da istifadə olunur.

Bu töhfəmizin iki maraqlı tərəfi var.

  1. Həll Azərbaycan dilində library-lərin az olması ilə bağlıdır. “Date-fns” ilk baxışdan çox sadə iş görür. Bu library vasitəsi ilə proqramçılar dilə aid tarix, vaxt və digər konstantaları yarada, bir dildən digər dilə tərcümə və konvertasiya edə bilər. Töhfəmiz ondan ibarətdir ki, koda yeni lokalizasiya qovluğu  əlavə edildi. İstənilən proqramçı,  “date-fns” istifadə olunan layihələrdə, Azərbaycan dilinin lokalizasiyasını 1 sətir  kodla əlavə edə bilər. Əslində, layihəmizdə Azərbaycan dilinin istifadəsinə artıq noyabrın sonundan başlamışdıq. Çətinlik ondan ibarət idi ki, görülən işi hamı üçün əlçatan edək.

  2. Problem süni surətdə yaradılmayıb – üzərində işlədiyimiz “Yüksəliş” layihəsinin gedişatında meydana çıxıb. OSS-ə töhfə etmək qərarını probleminin həll yolların müzakirə etdiyimiz zaman qəbul etdik. Dolayı (və qısa) yolla bu problemi sırf bu layihə üçün yarayan qaydada həll etmək olardı. Lakin daha çətin yolu seçərək, bir həftədən çox sürən testləri bir-bir keçərək və “date-fns” “maintainer”-inin “pull request”-imizi mənbə koda daxil etməsini bir aydan çox gözləyərək arzuladığımız nəticəni əldə etdik. Hamınız onunla tanış olub, ondan faydalana bilərsiniz .

Ümid edirik ki, bu yalnız bir başlanğıc idi, və digər yerli şirkətlərin komandaları OSS sahəsinə öz dəyərli töhfələrini verərək, onu daha da faydalı edəcək.