გზამკვლევი პროგრამირებაში: Back-end დეველოპმენტი

blog-detail-img

ალბათ იცი, რომ პროგრამული უზრუნველყოფის ინჟინრები ყოველთვის განიხილავენ თავიანთი აპლიკაციების front-end და back-end-ს. მაგრამ კონკრეტულად რას ნიშნავს ეს? თუ მათ შორის ტექნიკურ და ვიზუალურ დონეზე განსხვავებით ხარ დაინტერესებული სწორ ადგილას მოხვედი, რადგან ამ ბლოგში გაეცნობი ვების back-end არქიტექტურას.

Front-end არის კოდი, რომელიც შესრულებულია კლიენტის მხარისთვის. ეს კოდი (ჩვეულებრივ HTML, CSS და JavaScript) მუშაობს მომხმარებლის ბრაუზერში და ქმნის მომხმარებლის ინტერფეისს.

Back-end არის კოდი, რომელიც მუშაობს სერვერზე, რომელიც იღებს მოთხოვნებს კლიენტებისგან და შეიცავს ლოგიკას, რომ გაუგზავნოს მათ შესაბამისი მონაცემები. Back-end ასევე შეიცავს მონაცემთა ბაზას, რომელიც მუდმივად ინახავს აპლიკაციის ყველა მონაცემს. ეს ბლოგი ყურადღებას სწორედ სერვერის მხარეს არსებულ hardware-სა და software-ზე ამახვილებს, რაც ამ ყველაფერს შესაძლებელს ხდის.

რა სახის კლიენტები არსებობენ BACK-END-ში?

back-end-web-arqiteqtura-front-vs-back-end

კლიენტად შეიძლება ჩაითვალოს ყველაფერი, ვინც/რაც აგზავნის მოთხოვნებს back-end-ში. ისინი ხშირად ბრაუზერები არიან, რომლებიც ითხოვენ HTML და JavaScript კოდს, რომელსაც ისინი გამოიყენებენ რათა საბოლოო მომხმარებელმა ვებსაიტი აღიქვას. თუმცა, არსებობს მრავალი განსხვავებული ტიპის კლიენტი: ეს შეიძლება იყოს მობილური აპლიკაცია, სხვა სერვერზე გაშვებული აპლიკაცია ან თუნდაც ვებში ჩართული ჭკვიანი მოწყობილობა.

რა არის back-end?

Back-end არის მთელი ტექნოლოგია, რომელიც საჭიროა შემომავალი მოთხოვნის დასამუშავებლად, პასუხის გენერირებისთვის და კლიენტისთვის გაგზავნისთვის. ეს ჩვეულებრივ მოიცავს სამ ძირითად ნაწილს:

  • სერვერი. ეს არის კომპიუტერი, რომელიც იღებს მოთხოვნებს.
  • აპლიკაცია. ეს არის სერვერზე გაშვებული აპლიკაცია, რომელიც უსმენს თხოვნებს, იღებს ინფორმაციას მონაცემთა ბაზიდან და აგზავნის პასუხს.
  • მონაცემთა ბაზა. მონაცემთა ბაზები გამოიყენება მონაცემთა ორგანიზებისა და შენარჩუნების მიზნით.

რა არის სერვერი?

სერვერი უბრალოდ კომპიუტერია, რომელიც უსმენს შემომავალ მოთხოვნებს. მიუხედავად იმისა, რომ არსებობს ამ კონკრეტული მიზნისთვის შექმნილი, ოპტიმიზირებული მანქანები, ნებისმიერ კომპიუტერს, რომელიც დაკავშირებულია ქსელთან, შეუძლია იმოქმედოს როგორც სერვერი. სინამდვილეში, შენც ხშირად იყენებ საკუთარ კომპიუტერს სერვერად აპლიკაციების შემუშავებისას.

რა არის აპლიკაციის ძირითადი ფუნქციები?

სერვერი აწარმოებს აპლიკაციას, რომელიც შეიცავს ლოგიკას იმის შესახებ, თუ როგორ უნდა უპასუხოს სხვადასხვა მოთხოვნას HTTP-ისა და Uniform Resource Identifier (URI) საფუძველზე. HTTP და URI-ის წყვილს მარშრუტი ეწოდება, ხოლო მოთხოვნის საფუძველზე მათ შესაბამისობას – მარშრუტიზაცია.

ზოგიერთი დამმუშავებლის ფუნქცია იქნება მაკავშირებელი პროგრამა. ამ კონტექსტში, მაკავშირებელი პროგრამა არის ნებისმიერი კოდი, რომელიც შესრულებულია სერვერის მიერ მოთხოვნის მიღებასა და პასუხის გაგზავნას შორის. მაკავშირებელი პროგრამის ამ ფუნქციებმა შეიძლება შეცვალოს მოთხოვნის ობიექტი, მოითხოვოს მონაცემთა ბაზა ან სხვაგვარად დაამუშავოს შემომავალი მოთხოვნა. Middleware ფუნქციები, როგორც წესი, მთავრდება კონტროლის შემდეგ ფუნქციაზე გადაცემით, და არა პასუხის გაგზავნით.

საბოლოოდ, გააქტიურდება მაკავშირებელი ფუნქცია, რომელიც ამთავრებს მოთხოვნა-პასუხის ციკლს კლიენტისთვის HTTP პასუხის გაგზავნით.

რა სახის პასუხების გაგზავნა შეუძლია სერვერს?

მონაცემები, რომლებსაც სერვერი აგზავნის უკან, შეიძლება იყოს სხვადასხვა სახის. მაგალითად, სერვერმა შეიძლება გამოიყენოს HTML ფაილი, გამოაგზავნოს მონაცემები JSON-ის სახით, ან შესაძლოა მხოლოდ HTTP სტატუსის კოდი გამოაგზავნოს. ალბათ გინახავს სტატუსის კოდი „404 – Not Found“; რომელიც ჩნდება მაშინ, როცა ცდილობ ნავიგაციას URI-ზე, რომელიც არ არსებობს. მაგრამ არის კიდევ ბევრი სტატუსის კოდი, რომელიც მიუთითებს იმაზე, თუ რა მოხდა, როდესაც სერვერმა მიიღო მოთხოვნა.

რა არის მონაცემთა ბაზა და რატომ გვჭირდება მათი გამოყენება?

მონაცემთა ბაზები ჩვეულებრივ გამოიყენება ვებ აპლიკაციების back-end-ისთვის. ეს მონაცემთა ბაზები უზრუნველყოფს ინტერფეისს, რათა მუდვმივად შეინახოს მონაცემები მეხსიერებაში. მონაცემთა ბაზაში მონაცემების შენახვა ამცირებს დატვირთვას სერვერის CPU-ს მთავარ მეხსიერებაზე და შესაძლებელს ხდის მონაცემთა აღდგენას სერვერის ავარიის ან ენერგიის დაკარგვის შემთხვევაში.

რა არის Web API?

API არის პროგრამული უზრუნველყოფის სხვადასხვა კომპონენტებს შორის კომუნიკაციის მკაფიოდ განსაზღვრული მეთოდების კოლექცია. უფრო კონკრეტულად კი, ეს არის back-end-ის მიერ შექმნილი ინტერფეისი. ვებ API განისაზღვრება იმ მოთხოვნების ტიპებით, რომლებსაც ის შეუძლია გაუმკლავდეს. ეს კი მოიცავს იმ განსაზღვრულ მარშრუტებსა და იმ პასუხების ტიპებს, რომლებსაც კლიენტები იღებენ.

BACK-END მოთხოვნა-პასუხის ციკლის სხვა პრინციპები:

  • სერვერს, როგორც წესი, მოთხოვნის გარეშე პასუხების გაცემა არ შეუძლია;
  • ყველა მოთხოვნას სჭირდება პასუხი, თუნდაც ეს იყოს მხოლოდ 404 სტატუსის კოდი, რომელიც მიუთითებს, რომ კონტენტი ვერ მოიძებნა;
  • სერვერმა არ უნდა გამოაგზავნოს ერთზე მეტი პასუხი თითო მოთხოვნაზე. ეს გამოიწვევს შეცდომებს კოდში;

მოთხოვნის შედგენა

მოდი, ეს ყველაფერი ცოტა უფრო კონკრეტული გავხადოთ, ძირითადი ნაბიჯების მაგალითების შედგენით, რომლებიც ხდება მაშინ, როდესაც კლიენტი გზავნის მოთხოვნას სერვერზე.

  1. ანა შოპინგობს SuperCoolShop.com-ზე. ის აკლიკებს მისი სმარტფონის ყდის სურათს და მას ეგზავნება GET შეთავაზება შემდეგ ლინკზე: http://www.SuperCoolShop.com/products/66432. სადაც, GET აღწერს მოთხოვნის ტიპს. URI (ერთგვაროვანი რესურსის იდენტიფიკატორი) /products/66432 მიუთითებს, რომ კლიენტი ეძებს დამატებით ინფორმაციას პროდუქტის შესახებ და ამ პროდუქტს აქვს 66432 ID.
  2. ანას მოთხოვნა გადადის ინტერნეტის მასშტაბით SuperCoolShop-ის ერთ-ერთ სერვერზე. ეს მთელი პროცესის ერთ-ერთი ყველაზე ნელი ნაბიჯია, რადგან მოთხოვნა არ შეიძლება სინათლის სიჩქარეზე უფრო სწრაფად წავიდეს. ამ მიზეზით, დიდ ვებსაიტებს, რომლებსაც მომხმარებლები მთელ მსოფლიოში ჰყავთ, გააჩნიათ მრავალი განსხვავებული სერვერი და მომხმარებლის მოთხოვნას ყველაზე ახლოს არსებულ სერვერზე მიმართავენ.
  3. სერვერი, რომელიც აქტიურად უსმენს ყველა მომხმარებლის მოთხოვნას, იღებს ანას მოთხოვნას.
  4. ღონისძიების “მსმენელები”, რომლებიც ამ მოთხოვნას იღებს (HTTP ზმნა: GET და URI: /products/66432) გააქტიურებულია. კოდს, რომელიც მუშაობს სერვერზე მოთხოვნასა და პასუხს შორის, ეწოდება მაკავშირებელი პროგრამა.
  5. მოთხოვნის დამუშავებისას, სერვერის კოდი ააქტიურებს მონაცემთა ბაზის მოთხოვნას, რათა მიიღო მეტი ინფორმაცია კონკრეტული პროდუქტის შესახებ. მონაცემთა ბაზა შეიცავს ყველა სხვა ინფორმაციას, რაც ანას სურს იცოდეს ამ სმარტფონის ყუთის შესახებ: პროდუქტის დასახელება, პროდუქტის ფასი,  რამდენიმე მიმოხილვა.
  6. მონაცემთა ბაზის მოთხოვნა შესრულებულია და მონაცემთა ბაზა აგზავნის მოთხოვნილ მონაცემებს სერვერზე. აღსანიშნავია, რომ მონაცემთა ბაზის მოთხოვნები ამ პროცესში ერთ-ერთი ნელი ნაბიჯია. სტატიკური მეხსიერებიდან კითხვა და წერა საკმაოდ ნელია და ასევე, მონაცემთა ბაზა შეიძლება განსხვავებულ მოწყობილობაზე იყოს, ვიდრე ორიგინალი სერვერი.
  7. სერვერი იღებს საჭირო მონაცემებს მონაცემთა ბაზიდან და ახლა მზად არის ააგოს და გაუგზავნოს პასუხი კლიენტს. პასუხის ამ ნაწილს აქვს ბრაუზერისთვის საჭირო ყველა ინფორმაცია, რათა ტელეფონის ქეისის შესახებ მეტი დეტალი აჩვენოს ანას. პასუხის სათაური შეიცავს HTTP სტატუსის კოდს 200, რომელიც მიუთითებს, რომ მოთხოვნამ წარმატებით ჩაიარა.
  8. პასუხი ვრცელდება ინტერნეტში, ანას კომპიუტერში.
  9. ანას ბრაუზერი იღებს პასუხს და იყენებს ამ ინფორმაციას იმ ხედის შესაქმნელად, რომელსაც კლიენტი საბოლოოდ ხედავს.

ასე რომ, თუ ამ ბლოგის წაკითხვის შემდეგ დარწმუნდი, რომ Back-end Development საინტერესო და საჭირო სფეროა დაიწყე სწავლა 0-დან, შემოგვიერთდი Introduction to Programming-ის კურსზე!

თუ Back-end დეველოპმენტი შენთვის საინტერესოა, ჩაეწერე კონსულტაციაზე და გაიგე როგორ შეგიძლია დაეუფლო ამ პროფესიას

გაუზიარე მეგობრებს

შესაძლოა გაინტერესებდეს

საშუალო
1350₾
ტექ. ტალანტებზე მოთხოვნა ასეთი მაღალი არასდროს ყოფილა, რაც თავისმხრივ ართულებს კომპანიების მიერ საუკეთესო ადამიანური რესურსების მოძიებას და მოზიდვას.  ამგვარ კონკურენტულ გარემოში, რეკრუტერებს სჭირდებათ არამარტო ტექ. ინდუსტრიის სიღრმისეული აღქმა, არამედ პრაქტიკული ექსპერტიზა, თუ როგორ იპოვონ, დააონბორდინგონ (Onboarding) და შეინარჩუნონ A+ ტექ პროფესიონალები. კურსი დატვირთულია პრაქტიკული სამუშაოებით და შედგენილია მიმდინარე ტრენდების, პლატფორმების, კვალიფიკაციების დეტალურად აღსაქმელად - ეს არის ტექნოლოგიურ სივრცეში ადამიანური რესურსების რეკრუტინგის მინი MBA. შესაბამისად, კურსის განმავლობაში სტუდენტები შეისწავლიან [Tech] რეკრუტინგის 360 გრადუსიან, სრულ პროცესს.
14 ლექცია
42 საათი
საშუალო
1000₾
დიზაინის ტრადიციული მეთოდები შრომატევადია და დიდ დროის რესურსს მოითხოვს, რაც, ხშირ შემთხვევაში, ზღუდავს შემოქმედობითობას და მოსაწყენს ხდის დიზაინერის ყოველდღიურობას. თუმცა, გენერაციული AI არის ის რევოლუციური გადაწყვეტა, რაც საშუალებას მისცემს დიზაინერებს გადალახონ ამგვარი დაბრკოლებები და მეტიც  იყონ მეტად ეფექტურები ყოველდღიურ საქმიანობაში. კურსი დატვირთულია პრაქტიკული დავალებებით და ფინალური პროექტით, რაც  მოგცემს საშუალებას  დააგროვო პორტფოლიო და შეიძინო ცოდნა, რომელსაც  პრაქტიკაში გამოიყენებ
8 ლექცია
24 საათი
დამწყები
950₾
ხელოვნური ინტელექტი თანამედროვე მენეჯერის განუყოფელი ნაწილი გახდა. შესაბამისად, რაც უფრო მეტად გვესმის რა ენაზე და როგორ ვესაუბროთ ხელოვნურ ინტელექტს მით უფრო მარტივია მისი ყოველდღიურობაში ინტეგრირება. რაც მთავარია, ხელოვნური ინტელექტის საშუალებით შესაძლებელია დროის ეფექტურად გამოყენება და რუტინული საქმეების თავიდან არიდება. ლექციების განმავლობაში დეტალურად შევისწავლით ისეთი პოპულარული AI სისტემების გამოყენებას, როგორიცაა ChatGPT, Claude.ai, და Gemini. პრაქტიკულ დავალებასა და ფინალურ ნაშრომზე მუშაობა კი დაგვეხმარება სიღრმისეული ცოდნა მივიღოთ AI ხელსაწყოების გამოყენებასა და მათ საკუთარ  ნებაზე “მოთვინიერებაში”.
6 ლექცია
18 საათი

ჯერ კიდევ არ იცი რომელი პროფესია შეგეფერება?

შეავსე ქვიზი და მიიღე პერსონალიზებული რეკომენდაციები კარიერულ გზასთან დაკავშირებით

დაწყება