Git nədir? Nə işə yarayır?

Git, yazdığımız proqram təminatlarının mənbə kodunu (bəzən documentation, e-kitab və b.) kompüterimizdə və ya hansısa lokal yaddaşda deyil, internet üzərində saxlamağımızı və idarə etməyimizi təmin edən bir versiya nəzarət sistemidir. Niyə git? Versiya nəzarəti: Hər hansı bir layihəni (proqram təminatını) lokal yaddaşda saxlayarkən, baş verə biləcək təhlükələrdən qorunmaq üçün davamlı olaraq bu layihəni backup etmək məcburiyyətindəyik. Git istifadə edərkən buna ehtiyac qalmır, çünki versiyalama funksiyası sayəsində istənilən vaxt layihənin dəyişikliklər etdiyimiz istənilən hissəsinə çata bilirik. Bir layihə üzərində komanda şəklində işləmək: Bir proqram təminatı üzərində bir neçə nəfər eyni zamanda çalışdıqda, kodların birləşdirilməsi, ən son versiyanın müəyyənləşdirilməsi prosesi çox qarışıq və vaxt tələb edən prosesdir. Git vasitəsilə isə buna ehtiyac qalmır. Offline istifadə ediləbilməsi: Git hər hansı bir layihə üzərində çalışarkən onun bir nüsxəsini lokal maşında saxlayaraq, internet şəbəkəsi olmadan da layihə üzərində işləməyə imkan verir. Git ilə işləyərkən layihələrimizi saxlamaq üçün ən məşhur servislər GitHub və GitLab –dır. GitHub: Private şəkildə saxlamaq istədiyimiz repository-lər üçün ödəniş tələb etsədə, Public Repository-lər üçün pulsuzdur və hal-hazırda ən çox istifadə olunanlardandır. 2008 –ci ildə qurulan Github 2011–ci ildən etibarən Open Source proyektlər üçün ən çox istifadə olunan servisdir. GitLab: GitHub-dan fərqli olaraq pulsuz versiyasında öz lokal serverimizə quraraq, yalnız seçdiyimiz istifadəçilərin çata biləcəyi Git servisi təqdim edir.

XML nədir? Nə işə yarayır?

XML (Extensible Markup Language) HTML ilə bir çox baxımdan oxşarlıq göstərən bir işarələmə dilidir. Məlumatın oxunması və izah edilməsi üçün istifadə edilir. HTML-dəki strukturun əksinə XML-də istifadə edilən tag-lər əvvəlcədən müəyyən edilmir. Yeni bir XML faylının strukturu tam olaraq istifadəçi tərəfindən hazırlanır. Məlumatın izah edilməsi üçün DTD adı verilən strukturlardan istifadə edilir. XML və DTD-nin birlikdə istifadə edilməsi ilə fayllar, özlərini izah edən bir forma halını alırlar. XMLin Keçmişi  XMLin təməlləri SGML-dən gəlir. SGML (Standart Generalized Markup Language -ISO 8879), elektronik sənədlərin fərqli məzmunlarını və strukturlarını təyin etmək üçün istifadə edilən beynəlxalq bir standartdır.  XML, SGML-in İnternet üzərində istifadə edilməsini təmin edir. SGML sistemində hər sənəd öz söz silsilə quruluşunu təyin edə bilər. Bu mənada XML də, sizin öz işarə dilinizi (markup language) təyin etmənizi təmin edir.  XML, World Wide Veb Consortium (W3C), tərəfindən inkişaf etdirilmiş bir proyektdir. Ümumi formatı The v1.0 W3C tərəfindən 1998-ci ilin Fevral ayında bir təklif olaraq qəbul edilir və XML spesifikasiyası olaraq təyin olunmuşdur. XML və HTML arasındakı ən bariz fərq XML-in məlumatların özünə, HTML-in isə məlumatların təqdimatına olan marağı olaraq göstərilir. Buna bağlı olaraq HTML faylları məlumatların  formalaşdırma detallarını, XML faylları isə məlumatların izahlarını əks etdirir. XML-in hazırlanma məqsədlərindən biri də məlumatların köçürülməsidir. Sözügedən funksiyalara diqqət etdiyimizdə XML-in bir çox vacib funksiyanı yerinə yetirdiyini görə bilərik. XML dili günümüzdə məlumat transferi ilə bağlı hər sahədə sıxlıqla istifadə edilir. Hazırda veb saytlar üçün sayt xəritəsi hazırlama, verilənlər bazasının köçürülməsi, proqramlaşdırma paketləri tərkibindəki funksiyaların izah edilməsi, maliyyə datalarının köçürülməsi, fayl sistemlərinin hazırlanması, elmi məzmunların saxlanılması kimi yüzlərlə fərqli sahədə XML texnologiyasından istifadə edilir. Qeyd edək ki, XML-i HTML-in yerinə keçəcək bir dil olaraq düşünmək əvəzinə HTML-in tamamlayıcısı olacaq bir dil olaraq düşünmək daha uyğundur. Bir XML faylının tərkibi nəyə bənzəyir? <?xml version="1.0" encoding="utf-8"?> <istifadeciler>         <istifadeci id="1">                 <ad>Elmin</ad>                 <soyad>Həsənov</soyad>         </istifadeci>         <istifadeci id="2">                 <ad>Yunis</ad>                 <soyad>Kərimov</soyad>         </istifadeci>         <istifadeci id="5">                 <ad>Günel</ad>                 <soyad>Quliyeva</soyad>         </istifadeci>         <istifadeci id="8">                 <ad>Nigar</ad>                 <soyad>Müslüm</soyad>         </istifadeci> </istifadeciler>

Proqramçılar üçün alət və resurslar | 2-ci hissə

Bir veb proqramçı üçün ən yaxşı və ən pis xüsusiyyətlər daimi olaraq dəyişir. Bu maraqlı olsa da, veb proqramçılar həmişə dəyişikliklərə uyğun yeni texnologiya və ya proqramlaşdırma dillərini öyrənməkdə fəal olmalı, yeni təklifləri qəbul etməyə hazır və istəkli olmalıdır. Bura, mövcud tələbləri yerinə yetirmək üçün sifarişçinin tələblərinə uyğunlaşmağı, texniki problemləri müəyyənləşdirmək üçün bir veb-saytın sınaqdan keçirilməsi və ya backend funksionallıqlarını daha yaxşı yerinə yetirmək üçün saytın optimallaşdırılması və yenidən qurulması kimi vəzifələri daxil edə bilərik. Bu yolda sizə köməkçi olmaq üçün itcity.academy olaraq biz, proqramçı olaraq daha məhsuldar, məlumatlı olmağınıza və daha yaxşı bir işçi kimi yetişməyinizə kömək edə biləcək veb proqramlaşdırma alətləri və resurslarının geniş siyahısını tərtib etdik.  2018-ci il üçün Veb Proqramlaşdırma alətləri və resursları Aşağıdakı bu veb proqramlaşdırma vasitələrinin bir çoxu bizim də gündəlik olaraq istifadə etdiklərimizdir. İstifadə etdiyimiz bütün alətləri daxil edə bilməsək də xüsusilə seçdiyimiz və artıq öz təsdiqini tapmış alətləri sizlər üçün aşağıda siyahı halına gətirdik. Qeyd: Aşağıdakı alətlər və resurslar heç bir sıralamaya görə düzülməyib. İkonlar Bütün veb proqramçıların, xüsusilə front-end proqramçıların işlərində müəyyən vaxtlarda müxtəlif ikonlardan istifadə etməyə ehtiyacı olur. Aşağıdakı mənbələrdən istifadə etməklə müəyyən pulsuz və yüksək keyfiyyətli ödənişli ikonları əldə edə bilərsiniz. Font Awesome: Ölçü, rəng, kölgələr və CSS-nin gücüylə edilə biləcək işləri görə bilən vektor ikonlar . IconMonster: Sadə, ikonların pulsuz, yüksək keyfiyyətli, böyük və davamlı artan platforması. Bizim favoritlərimizdən biri! Icons8: Bir dizayn komandasının yaratdığı yüksək səviyyədə xüsusiləşdirilə bilən ikon platforması. IconFinder: Iconfinder dizaynerlər və proqramçılara milyonlarla fərqli ikon təqdim edir. Fontello: İkonlarla xüsusi şriftlər yaratmaq üçün tətbiqdir. Veb Serverlər İstifadə etdiyiniz veb server, adətən, üstünlük, funksionallıq və ya mövcud olan infrastrukturun birləşməsindən asılı olacaq. Nginx və Apache ən çox istifadə olunan iki web serverdir, lakin digər variantlar var. Nginx: Açıq mənbə kodlu, yüksək performanslı veb serverdir.  Apache: Hazırda bütün saytların 50%-dən çoxuna güc verən veb serverdir. Çox böyük kütləyə və müxtəlif modullara sahibdir. IIS: Microsoft tərəfindən hazırlanmış veb serverdir. Yüksək təhlükəsizlik, korporativ dəstək təklif etsə də açıq mənbədən söz gedə bilməz. Caddy: Demək olarki ən yeni veb serverdir. Açıq mənbə kodludur, avtomatik HTTPS ilə işləyən HTTP/2 veb serverdir. API alətləri Runscope: API performans testi, monitorinqi və debuggingi üçün həll üsulu.  Zapier: Müxtəlif tətbiqlərin API və servislərini asanlıqla birləşdirmək və avtomatlaşdırmaq üçün platforma  Postman: API proqramlaşdırma üçün hazırlanmış platforma.  SoapUI: İnkişaf etmiş REST və SOAP test aləti. Funksionallıq, təhlükəsizlik, performans və s. kimi testlər üçün şərait yaradır. Lokal serverlər İşlətdiyiniz əməliyyat sisteminə və ya hazırda istifadə etdiyiniz kompüterə bağlı olaraq, sürətli bir lokal proqramlaşdırma mühiti axtara bilərsiniz. Apache, mySQL, phpMyAdmin və s. kimi gərəkli ləvazimatları özündə birləşdirən bir neçə pulsuz lokal server var. Bu serverlərdə işləmək, kodlarınızı test etmək üçün sürətli və asan həll üsuludur. Bəzilərinin hətta portativ versiyaları da mövcuddur. XAMPP: Tamamilə pulsuz, asanlıqla yüklənilən Apache əsaslı MariaDB, PHP və Perl dəstəkli lokal server. MAMP: Windows və OS X əməliyyat sistemlərində saniyələr içində quraşdıra biləcəyiniz lokal server. WampServer: Windows üçün proqramlaşdırma mühiti. Burada siz Apache2, PHP və MySQL verilənlər bazası ilə saytlar hazırlaya bilərsiniz. Vagrant: Yüngül, təkrarlanan və portativ lokal serverlər yaradın və konfiqurasiya edin. Laragon: Windows-da lokal server hazırlamaq üçün sürətli və asan bir yol. Mysql, PHP Memcached, Redis, Apache və Laravel layihələrinizlə işləmək üçün mükəmməldir. Fərq Tapma alətləri Fərq tapma alətləri, fayllar arasındakı fəqlilikləri qarşılaşdırmağınıza və daha sonra dəyişiklikləri birləşdirməyinizə şərait yarada bilər. Bütün bunlar CLI vasitəsilə də edilə bilər, lakin bəzən dəyişiklikləri vizual olaraq görmək də faydalı ola bilər. Diffchecker: iki mətn faylı arasında fərqləri müqayisə etmək üçün onlayn fərqləndirmə vasitəsidir. Tələsirsinizsə və təcili bir şeyləri müqayisə etmək lazımdırsa əla vasitədir. Beyond Compare: Faylları və qovluqları əvvəlcədən qeyd etdiyiniz fərqliliklərə diqqət yetirməklə və qeyd etmədiklərinizi yox saymaqla, güclü əmrlərdən istifadə edərək müqayisə edən bir proqramdır. Yuxarıda göstərdiyimiz pulsuz mətn redaktorlarının bir çoxu sizin fayllarınızı fərqləndirməyə və ya müqayisə etməyə imkan verən plugin və ya tətbiqlərə malikdir. Canlı Kod paylaşımı JS Bin: Veb dilləri ilə təcrübə aparmaq üçün vasitədir. Xüsusilə HTML, CSS və JavaScript, Markdown, Jade və Sass. JSfiddle: Brauzerinizin içərisində JavaScript, HTML və CSS kodunuzu test etmək üçün xüsusi platforma. Codeshare: digər proqramçılar ilə real-vaxtda kodunuzu paylaşın. Dabblet: CSS və HTML kodlarının snippetlərini tez bir zamanda test etmək üçün interaktiv platforma. Komanda alətləri Hər böyük proqramlaşdırma komandasının bir-birləri ilə canlı, dinamik və məhsuldar əlaqə qurmaq üçün kanallara ehtiyacları var. Hazırda bir çox komanda distant olaraq işləyir. itcity komandası olaraq biz də bu kimi alətlərdən istifadə edərək bir-birimizlə sürətli şəkildə əlaqə qururuq. Slack: İş həyatınızı daha sadə, daha xoş və daha məhsuldar etmək üçün hədəflər üzrə qruplar yarada bildiyiniz mesajlaşma proqramı. Biz də itcity.academy komandası olaraq Slack-dən istifadə edirik! Trello: Komanda yoldaşlarınızla bütün tapşırıqları toplaya, onlar üzərində işləyə biləcəyiniz platforma.  Glip: inteqrasiya olunmuş tapşırıqların idarə edilməsi, videokonfrans, paylaşılan təqvimlər, daxili mesajlaşma və daha çoxu. Asana: Komandaların işlərini və nəticələrini izləmək üçün peşəkar platforma. Jira:  Komanda üzvlərinizin hər biri üçün tətbiq və ya web saytlarını planlaşdırmaq, izləmək və paylaşmaq üçün hazırlanmış platforma. İlham mənbələri Haradasa bütün proqramçıların müəyyən vaxtlarda başqalarının hazırladığı işlərdən ilham almağa ehtiyacları olur. Xüsusilə də front-end proqramçılar üçün müəyyən vaxtlarda kifayət qədər maraqlı ideyalar əldə etmək üçün mükəmməl üsuldur.  CodePen: Yaradıcılığınızı nümayiş etdirin və geridönüş əldə edin. Layihələriniz üçün dizayn və kod nümunələri əldə edin. Dribble: Dizaynerlərin cəmiyyəti, onların öz layihələrini  paylaşdıqları platforma. Behance: Istifadəçilərin yaradıcı işlərini nümayiş etdirdikləri və insanların fikirlərini öyrənə bildikləri platforma. Saytların sürətini ölçən vasitələr Veb saytın sürəti onun üçün kritik bir amil ola bilər. Sürət saytlar üçün yüksək SEO reytinqləri, yüksək geridönüş dərəcələri, aşağı çıxış dərəcələri və daha yaxşı bir istifadəçi təcrübəsinə çevrilə bilir. Veb saytınızın sürətini sınaqdan keçirmək üçün mövcud olan bir çox pulsuz vasitədən istifadə etmək olar. Google PageSpeed Insights: Google tərəfindən hazırlanmış alət, saytın bütün kontentini analiz edir və daha sürətli olması üçün təkliflər göstərir. Google Chrome DevTools: Google Chrome-da quraşdırılmış veb proqramlaşdırma və debugging vasitələri toplusu. Dotcom-Tools Speed Test: Dünyada 25 fərqli məkandan real brauzerlərdə veb sayt sürətinizi test edin. WebPageTest: Real brauzerlər (IE və Chrome) və real istifadəçilərin qoşulma sürəti ilə dünyanın bir çox yerindən pulsuz sürət testi. Pingdom: Saytınızın yükləmə müddətini test edin, təhlil edin və problemləri tapın. GTmetrix: Saytınızın sürətinin nə qədər yaxşı olduğu barədə fikir verir və onu optimallaşdırmaq üçün bir neçə təsirli məsləhətlər verir. Veb Proqramçı Topluluqları Veb proqramçıların həll edə bilmədikləri bir problem olduğunda onlar nə edirlər? Bəli, onlar tez cavab tapmaq üçün Google-da axtarışa istiqamətlənəcəklər. Google isə fərqli saytlarda bir çox məzmun təklif edir ki, onlara daxil olaraq problemləri asanlıqla anlayıb, aradan qaldıra bilərsiniz. Aşağıdakı linklərdən suallarınıza cavab tapa biləcəyiniz, həvəskar və peşəkar proqramçıların toplandıqları platformalarla tanış ola bilərsiniz. Stack Overflow: Bir-birlərinə kömək edən 4.7 milyon proqramçının toplaşdığı platforma Front-end Front: Front-end proqramçıların suallar verdikləri, maraqlı linkləri paylaşdıqları və  başqa insanlara işlərini göstərə biləcəkləri bir yer. Hashnode: Veb developerlərin bir-birləri ilə əlaqə qurmaları və bir-birlərindən proqramlaşdırma öyrənmələri üçün hazırlanmış qlobal platforma Refind: Vebdə ən yaxşı linkləri toplayan və bir-birləri paylaşan şirkət sahiblərinin, hackerlarin və dizaynerlərin platforması. Google + Veb Developerlər Qrupu: Veb proqramçılar, web dizaynerlər və veb kodlaşdırma. Google + Veb Developerlər Qrupu 2: Java, PHP, Ruby, JavaScript və Python resursları Webdeveloper.com: Veb proqramçıların və veb dizaynerlərin HTML, Java və JavaScript-də veb saytların, proqramların qurulmasını öyrəndikləri platforma. Sitepoint Forums: Veb proqramçıların müzakirə platforması.