სკრიპტი - ვებ დეველოპმენტის კომპონენტები


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


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


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


Back-end-ის დეველოპმენტი, როგორც წესი, მოიცავს სერვერის პროგრამირების ენების გამოყენებას, როგორიცაა Python, PHP, Ruby,Java და სხვა ძალიან ბევრი. ეს ენები დეველოპერებს საშუალებას აძლევს დაამუშავონ მონაცემები, განახორციელონ გამოთვლები და შეასრულონ რთული ალგორითმები სერვერზე. გარდა ამისა, არსებობს ფრეიმვორქები ანუ უფრო მარტივად რომ ვთქვათ კოდის მზა ბიბლიოთეკები სადაც ძალიან ბევრი საქმე წინასწარ უკვე გამზადებულია ძრავების სახით და ჩვენ უბრალოდ შესაბამისად ვიყენებთ გამარტივებულ გარემოში ამ ძრავებს. ასეთებია Node.js, Django, Flask და Ruby on Rails. 



ბექენდის კიდევ ერთი მნიშვნელოვანი ასპექტია მონაცემთა ბაზის მართვა. Back-end დეველოპერები მუშაობენ მონაცემთა ბაზებთან ვებ აპლიკაციისთვის საჭირო მონაცემების მისაღებად, დასამუშავებლად და შესანახად. პოპულარული მონაცემთა ბაზებია MySQL, PostgreSQL, MongoDB და SQLite. დეველოპერები ქმნიან მონაცემთა ბაზის სქემებს, რასაც არქტიტექტურას ვეძახით. ახდენენ მოთხოვნების ოპტიმიზაციას მონაცემთა ეფექტური მოძიებისთვის და უზრუნველყოფენ მონაცემთა უსაფრთხოებას.


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


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


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


ეს კონცეფცია უფრო მარტივად რომ ავხნსათ, ფრონტ-ენდ დეველოპერები ვებსაიტის ან ვებ აპლიკაციის მომხმარებლის ინტერფეისზე მუშაობენ, რაც დიზაინერის მიერ შექმნილი ვიზუალური პატერნების ერთი-ერთში აწყობას გულისხმობს, რომელთან ურთიერთობა უკვე ვებ აპლიკაციის მომხმარებლებს აქვთ. პროცესი უფრო მკაფიოდ, რომ წარმოვიდგინოთ მოდით სამუშაო პროცესი ერთხელ კიდევ გადავიაროთ: პროდუქტ მენეჯერი ქმნის მოთხოვნას რაიმე ტიპის ფუნქციონალზე, მაგალითად ვებსაიტზე სადაც ამ ვიდეოს უყურებთ ალბათ ავტორიზაცია გაიარეთ ლოგინ პაროლის დახმარებით. ეს მოთხოვნა ყალიბდება PRD ის, რაც იშიფრება როგორც Product requirements document ანუ ტექნიკური დავალების სახით, შემდეგ გადაეცემა დიზაინერს ამ ლოგიკის დიზაინში ვიზუალიზაციისთვის და ბოლოს მზა დიზაინი მისდის ფრონტ-ენდ დეველოპერს ვიზუალური ლოგიკის ასაწყობად.

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


Front-end დეველოპმენტი ეყრდნობა სამ ძირითად ტექნოლოგიას: HTML, CSS ანუ მარკირების ენებს  და JavaScript -ს რაც უკვე პროგრამირების ენაა. HTML -ით ვქმნით ვებ გვერდის სტრუქტურასა და შინაარსს მაგალითად ვებსაიტზე ლოგოს, მენიუს, ენების გადამრთველს, სლაიდერს და ა.შ. CSS ამატებს სტილს და ვიზუალურ დიზაინს ანუ როგორ არის განლაგებული ელემენტები ერთმანეთის მიმართ ან რა ფერია, ხოლო JavaScript საშუალებას აძლევს ვებსაიტს გახდეს ინტერაქტიული და უზრუნველყოს დინამიური ქცევა ანუ მაგალითად სლაიდერზე ფოტოები რომ იცვლება ხოლმე ან ხელით შეგვიძლია გადავრთოთ მაგას უკვე პროგრამული ენა ჯავასკრიპტი აკეთებს რაც ინტერაქციული ლოგიკის შექმნაში გვეხმარება. 


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


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

ფრონტ-ენდში არსებობს რამდენიმე ძირითადი ფრეიმვორქი და ბიბლიოთეკა როგორიცაა React, Angular და Vue.js. ეს ფრეიმვორქები უზრუნველყოფენ მრავალჯერადი გამოყენების კომპონენტების შექმნას, ეფექტურ რენდერს და უკეთეს სამუშაო პროცესებს. ისინი გვეხმარებიან მარტივად შევქმნათ რთული და ინტერაქტიული მომხმარებლის ინტერფეისები. თუ გადაწყვეტთ რომ ფრონტ-ენდ დეველოპერი გახდეთ რომელიმე ზემოთ ჩამოთვლილის სწავლა ყველა ვარიანტში მოგიწევთ რადგან მხოლოდ html css და javaScript დღეს აღარ არის საკმარისი იმისთვის რომ კონკურენტუნარიანი დეველოპერი იყოთ დასაქმების ბაზარზე. სანამ რომელიმე ფრეიმვორქს აირჩევთ იქამდე დიდი გზა გაქვთ გასავლელი და ამ ეტაპზე კარგად უნდა ისწავლოთ html css და JavaScript რადგან დანარჩენი ყველაფერი ამაზეა დაშენებული.


ფრონტ-ენდ დეველოპერები ხშირად აწყდებიან ბრაუზერის ჯვარედინი თავსებადობის უზრუნველყოფის გამოწვევას. ვებსაიტებმა და ვებ აპლიკაციებმა უნდა იმუშაონ თანმიმდევრულად სხვადასხვა ბრაუზერებში, როგორიცაა Chrome, Firefox, Safari და Edge. ფრონტ-ენდის დეველოპერები იყენებენ ისეთ ტექნიკას, როგორიცაა ბრაუზერის მახასიათებლების  ამოცნობა და შემდეგ კოდის შესაბამისი მორგება, რა თქმა უნდა ყველა ბრაუზერი ერთნაირად არ მუშაობს ამიტომ გვიწევს კოდის ბრაუზერის შესაბამისად წერა.
ერთი შეხედვით საკმაოდ რთული პროცესია, მაგრამ ეტაპობრივად რაც უფრო მეტს ისწავლით მით უფრო მარტივი მოგეჩვენებათ შემდეგ.


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


Back-end და front-end დეველოპერები მჭიდროდ მუშაობენ ერთად, თანამშრომლობენ UX/UI დიზაინერებთან, პროექტის მენეჯერებთან და გუნდის სხვა წევრებთან. ეფექტური კომუნიკაცია და გუნდური მუშაობა აუცილებელია წარმატებული ვებ პროექტებისთვის.


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



ბოლო ცვლილება: Monday, December 25 2023, 6:17 AM