Bu yazımızda tez-tez soruşulan front-end və back-end proqramlaşdırma nə deməkdir, o barədə danışaq. Front-end və back-end proqramlaşdırma veb proqramlaşdırmanın iki vacib istiqamətidir, hər birinin kritik önəmi var.
Front-end Proqramlaşdırma: Front-end development istifadəçinin brauzerdə gördüyü, təmas etdiyi interfeysə fokuslanır. İstifadəçi interfeysi(UI) və istifadəçi təcrübəsi(UX) front-end developerin qurub ərsəyə gətirdiyi yerdir.
İstifadə edilən əsas texnologiyalar bunlardır:
- HTML – Veb səhifənin strukturunu qurmaq;
- CSS – Strukturudakı hər bir elementin stilini, görünüşünü, ölçü və rənglərini təyin etmək;
- JavaScript – İnteraktivlik, yəni gördüyümüz görüntüdəki elementlərin (menyu, düymə, şəkil və s.) funksional olub hansısa işi görməsi üçün
Bunlar sadəcə təməl texnologiyalardır. Onlardan istifadə edərək müxtəlif populyar alətlər – freymvörklər və kod kitabxanaları qurulmuşdur. Hal-hazırda onların sırasına React, Angular və Vue.js kimi alətləri aid edə bilərik. Bu kitabxana və freymvörklər sayəsində front-end developerlər mürəkkəb həlləri effektiv yollarla reallaşdıra bilirlər.
Back-end Proqramlaşdırma: Back-end isə server-tərəfli proqramlaşdırmadır. İstifadəçinin görmədiyi tərəfdə, serverdə baş verən funksionallıq və ssenariləri məhz backend proqramçı yazır. İstifadəçilərin front-end tərəfdə gördükləri dinamik məlumatlar, sorğular və cavablar məhz back-end tərəfdə icra edilir. Verilənlər bazası, serverlər, request-respond kimi terminlər məhz backend sahəsinə aid edilir.
Ən populyar texnologiyalara nümunə kimi Python, PHP, Java, C#, Ruby dillərini, eləcə də Django, Laravel, .NET, Spring, Rails freymvörklərini, həmçinin WordPress, Joomla kimi CMS-ləri aid edə bilərik.
Back-end developerlər əsasən verilənlərin saxlanması, emalı, təhlükəsizliyi, sorğu əsasında məlumat kimi front-end tərəfə qaytarılması kimi işləri də icra edir.
Bu iki anlayışla yanaşı Full-stack development adlı hibrid model də mövcuddur. Bu model isə hər iki işlə məşğul olan developerlərin işinə aid edilir. Yəni, elə bir alətlər və texnologiyalardan istifadə etmək lazımdır ki, şəxs həm front-end, həm də back-end tərəflərini effektiv şəkildə icra edə bilsin və bu zaman ayrı-ayrı proqramlaşdırma dilləri öyrənmək ehtiyacı minimuma endirilsin. Əvvəllər full-stack developer dedikdə backend developerin eyni zamanda CSS-HTML və sadə JavaScript ilə veb saytı qurmasına deyirdilər. Bu metod bugün də çox yayğındır amma yeni ad altında – indi artıq ona Backend əsaslı veb developer deyirik.
Çünki müasir dövrdə full-stack developer olmaq da iki ayrı formada mümkündür.
Front-end əsaslı Full Stack: Frontend-əsaslı full stack developerlər yuxarıda qeyd etdiyimiz front-end developerlərin öyrəndiyi alətlərlə yanaşı əlavə olaraq back-end texnologiyaları da öyrənirlər.
Lakin artıq onların mənimsədikləri ənənəvi backend dilləri (PHP, Python, Asp.NET C#və s.) deyil, özlərinin bildikləri JavaScript əsaslı backend texnologiyasıdır. Bu texnologiyalara (bunu qısa şəkildə stack adlandırırıq) MERN və MEAN aid etmək olar. MERN – MongoDB, Express.js, React, Node.js, MEAN isə MongoDB, Express.js, Angular, Node.js texnologiyalarını özündə birləşdirir.
MongoDB – verilənlər bazası texnologiyasıdır. Məlumatları saxlamaq üçün istifadə edilir. NODE.js isə işin veb server hissəsini görür. Yəni, o elə bir proqram təminatıdır ki, frontenddən gələn müraciətləri idarə edib lazımi cavab qayıdana qədər prosesi idarə edir. Ənənəvi backend proqramlaşdırmada bu işi Apache, Nginx, IIS kimi veb serverlər görür.
Back-end əsaslı Full Stack Back-end əsaslı full stack developerlər yuxarıda bəhs etdiyimiz backend developer alətlərindən istifadə edirlər. Əlavə olaraq frontend işlərini də görə bilmək üçün HTML, CSS, JavaScript üçlüsünü yaxşı öyrənməlidirlər.
Veb server və stack olaraq ASP.NET(MsSQL,C#,IIS), LAMP (Linux, Apache, MySQL, PHP), Django kimi alətlər populyardır. MsSQL və MySQL burada verilənlər bazası işini görür.
Yekun olaraq, yadımızda daha asan qalması üçün bir daha qeyd edək: frontend developerlər vizual aspektlərə toxunan tərəfləri həll edən developerlərdir, brauzerdə gördüyünüz vizual elementlərin ərsəyə gəlməsi və işləməsini təmin edirlər. Backend developerlər isə serverlə əlaqəli işlərin icrasını təmin edir(verilənlər bazası ilə əlaqəli işlər, sorğu göndərmək və s.)
Aşağıdakı sadə cədvəldə hər front-end və back-end developerlik haqqında müqayisəli məlumat təqdim edək
Texnologiya | Front-end | Back-end |
Proqramlaşdırma dili və alətlər | JavaScript, Typescript, HTML, CSS | C#, PHP, Python, Ruby, Java, SQL və.s. |
Kitabxana və freymvörklər | Angular, Vue.js, React və.s. | .NET Core, Laravel, Django, Rails, Yii və.s. |
Digər köməkçi texnologiyalar | SQLite | MsSQL, MySQL, NoSQL və.s. |
Bu cədvəldə isə gəlin front-end və back-end əsaslı full stack müqayisəsi aparaq:
Texnologiya | Front-end full stack | Back-end full stack |
Proqramlaşdırma dili və alətlər | JavaScript, HTML, Typescript, CSS | C#, PHP, Python, Ruby, Java və.s. |
Kitabxana və freymvörklər | Angular, Vue.js, React və.s. | .NET Core, Laravel, Django, Rails, Yii və.s. |
Əsas verilənlər bazası | MongoDB | MsSQL, MySQL, MongoDB və.s. |
Veb serverlər | Node.js | Apache, Nginx, IIS |
Əlavə öyrənməli olduqları | SQL, Veb serverlərin iş prinsipi | HTML, CSS, JavaScript |