
Proqramçı: Son 3 ay ərzində öyrəndiklərim (BİRİNCİ HİSSƏ)
Təqdimat.
Öncəliklə istərdim özümü təqdim edim. Həsənağa Azad. Veb proqramçı, startapçı və daha bir neçə özünəmaraqlı fəaliyyət növləri
ilə məşğul olan aktiv gənc. Əslində daha öncələr də Technote-da 1-2 məqalə
yazmışam. Amma bu məqalə birbaşa mənim işimlə əlaqəli olduğu üçün kiçik təqdimata
ehtiyac gördüm.
Giriş.
Adətən mən tez-tez öz Facebook hesabımda yeni
öyrəndiklərim barədə qısa postlar yazıram. Bu dəfə qərar verdim ki, bunu bir məqalə
formasında edim, bəlkə kolleqalarıma və ələxsus yeni başlayan proqramçılara belə
bir məlumat maraqlı və faydalı olar. Məqalədə öyrəndiklərim barədə qısa məlumat
və öz subyektiv fikrimi əks etdirmişəm. Dəqiqləşdirmək üçün deyirəm ki, bu məqalə
reklam deyil. Tövsiyyə edəcəyim “alətlərin” şirkətlərindən heç bir maddi dəstək
almıram. Məqsəd sadəcə biliklərimi paylaşmaqdır. Məqalənin uzun olacağını
bildiyim üçün onu iki hissəyə bölmüşəm. Birinci hissəni oxuduqdan sonra xahiş
edirəm fikirlərinizi, əgər varsa, suallarınızı şərhdə qeyd edin. Və ümumiyyətlə
Technote-da bu tərz məqalələr görmək istəyirsinizsə bu məqaləni repost edin. Bu, ikinci hissə üzərində
işə daha da həvəs qatacaqdır.
1. Laravel:
Proqramçılıq fəaliyyətim bir neçə ili əhatə
etsə də bu framevorkla ilk tanışlığım bu son 3 ay ərzində oldu. Hə, ola bilər
yeni başlayanlar məni qoca, geridə qalmış, müasirdən uzaq hesab etsinlər, amma mən core dildə
yazmağın tərəfdarıyam. Və hesab edirəmki hər bir peşəkar proqramçının öz şəxsi
MVC sistemi olmalıdır, hansının ki, üzərində saytlar yığır. Amma biliyə qarşı deyiləm. Daha asan üsulları
bilmək olar. İstifadə edib etməmək isə proqramçının öz seçimidir. Sonunda bir
proqramı yazmaq üçün minlərcə fərqli üsul tapmaq olar. Və bu peşənin üstünlüklərindən biri də bundadır: ”Sən azadsan,
dil sadəcə bir alətdir, hansını seçib və necə istifadə edəcəyin sənin şəxsi
seçimindir”.
Birincisi
onu deyim ki, laravel, core php-dən dəfələrlə asandır. Hələ o router var haa, o
laravelin routeri yağ kimi gedir. Model sistemi də çox asandır. Əminəmki php-ni
yaxşı bilənlər, ələxsus öz mvc sistemi olan peşəkarlar 1-2 saata nəyin necə işlədiyini
anlayacaqlar. Yeni başlayanlar – php-ni az-maz bilənlər də birbaşa Laravelə keçə
bilərlər. Manual asandır. Hələ düzəməlli İDE işlədirsinizsə (məsələn PhpStorm)
işiniz daha da asanlaşır. Artisan model və cədvəllərin yaradılışını terminalda
bir neçə sətr əmr yazmağa bərabər edir.
Mənfi özəlliklər
də var. Birincisi Laravel çətin yazılır. Composer bilməlisiz, terminalda əmrlər
yazmalısız, təlimatı oxumadan yazmaq demək olar ki mümkün deyil. Bir söznən
- heçnə “qutuda hazır” gəlmir. Əgər Windows
işlədirsinizsə, məsələ daha da qəlizləşir, yüklənmə zamanı bəzən çıxan xətalar
sizi forumlarda axtarış aparmağa məcbur edə bilər. (Ümumiyyətlə peşəkar Veb tərtibatçılara
Windows-dan mümkün qədər uzaq olmaq, Mac və ya ən yaxşı halda Linux istifadə
etmək məsləhət görülür). Bazaya sorğular yazmaq asan olsa da bəzi hallarda
ciddi çərçivələr yaranır, və bu sizi documentation-dan faydalanaraq öz həllinizi
yazmağa vadar edir. Məsələn: Saytda paginasiya yaratmaq asandır - bir iki sətrlik
kod. Yox, əgər paginasiya olunan data bazadan çıxarılarkən Join və Group olmalıdırsa
laravelin adi üsulları işləmir və hətda rəsmi documentation sizə əlavə həllər
yaratmağı tövsiyyə edir.
Ümumilikdə framevork, asan, sürətli və
yüngüldür. Framevorkda işləməyi sevməsəz də, sistemin kodundan “oğurlamaq” üçün maraqlı ideyalar tapacağınıza əminəm.
2. Docker:
Docker bir
qutudur. Daha dəqiq desək konteyner. Deməli dockersiz veb proqramlaşdırma nəyə
bənzəyir? Öz serverinizdə (istər local istərsədə public) kod yazıb sayt/proqram
yaradırsınız. İş bitdikdə və yaradılmış saytı/proqramı başqa serverə köçürdükdən
sonra isə moqrasiya zamanı bir sıra problemlər yaranır. Və bu problemləri
aradan qaldırmaq üçün də təbii ki, ikinci serverə çatışmayan sistem
proqramlarını əlavə edirsiz. Bərbaddır. Elə deyilmi?
Faktiki olaraq eyni işi
iki dəfə görməli olursuz. Və bu hələ ən üstdə olan problemlərdir. Bəs bu iki
serverlərin konfiqurasiyaları fərqli olduğuna görə yaranan buglar? Gözlənilməyən
limitlər? Hələ müştəriyə “bizdə normal işləyir, sizin serverdə anlamırıq niyə
belə olur” cümləsini demək zərurəti. Docker bütün bu məsələləri həll edir. Məntiqi
çox asandır. Konteyner yaradırsınız, içərisinə əməliyyat sistemi yazırsınız, və
öz saytınızı / proqramınızı elə məhz bu konteynerin içərisində yaradırsınız. Və
beləliklə miqrasiya elədikdə sadəcə olaraq konteynerleri eksport edib ikinci
serverə elə konteynerler formasında köçürürsünüz. Nəticədə konteynerleri hara
köçürsəniz bütün serverlərdə eyni cür işləyəcək. Üstəlik dockerin fəlsəfəsi git
sisteminə yaxındır. Yəni dəyişiklikləri qeydə alıb istələn an konteynerin
hazırki vəziyyətini bir backup kimi kənarda save edə bilərsiniz.
Mənfi özəlliklər:
Miqrasiya üçün hər iki serverə docker yazılmalıdır. İlk baxışdan sistem insana
qəliz gəlir. İdarəetmə yalnız terminaldandır. Konteynerlər böyük yer tuturlar.
Sizin yazdığınız proqram 500 MB olsa da, konteynerlə birgə ən azı 2 GB yer
tutacaq, çünkü konteynerlərin daxilində əməliyyat sistemi mövcuddur.
Araşdırsanız,
dockerin bir neçə bənzəri barədə məlumat tapa bilərsiniz, amma mən məhz lider
barədə danışdım sizə. İstənilən halda bu sistem sizə ancaq köməkçi olacaqdır. Yəni,
maraqlanmağa dəyər.
Birinci hissənin sonu. Ümid edirəm fikirlərim
barədə oxuyanda sıxılmadınız və məqalənin davamını maraqla qarşılayacaqsınız. Və
bir daha yada salıram: ”Əgər hər hansı suallarınız yarandısa bunu çəkinmədən
şərhlərdə soruşa bilərsiniz”.
Paylaş
Bənzər xəbərlər