თუ თქვენ ხედავთ ამ შეტყობინებას, ესე იგი საიტზე გარე რესურსების ჩატვირთვისას მოხდა შეფერხება.

If you're behind a web filter, please make sure that the domains *.kastatic.org and *.kasandbox.org are unblocked.

ძირითადი მასალა

რომელი JS ბიბლიოთეკა უნდა გამოსცადოთ?

არსებობს უამრავი ბიბლიოთეკა და დიდი ალბათობით, ერთი და იგივე ფუნქციონალის მატარებელი რამდენიმე ბიბლიოთეკა არსებობს. მაგალითად, იმდენად ბევრი თარიღის ამრჩევი ბიბლიოთეკა არსებობს, რომ მათ შესახებ გამოქვეყნებულია შემდეგი ტიპის სტატიები "ტოპ 15 jQuery თარიღის ამრჩევი".
თუმცა, ზედმეტად დიდ არჩევანს შეუძლია, ჩვენთვის, ვებდეველოპერებისთვის, გადაწყვეტილების მიღება უაღრესად გაართულოს. როგორ გავიგოთ, რომელია საუკეთესო? რა მოხდება, თუ არასწორ არჩევანს გავაკეთებთ?
ხშირად არ არსებობს ერთადერთი „საუკეთესო არჩევანი" ვებ დეველოპმენტში, თუმცა ხშირად ზოგიერთი არჩევანი სჯობს სხვებს. ქვემოთ მოცემული მსჯელობები დაგეხმარებათ საუკეთესო არჩევანის გაკეთებაში.
იქიდან გამომდინარე, რომ JS ბიბლიოთეკა ხშირად გამოიყენება მომხმარებელზე ორიენტირებული პროდუქტის შექმნისას, მოცემულმა მსჯელობებმა უნდა დააკმაყოფილოს საზოგადოების ორი კატეგორია: დეველოპერები, რომლებმაც უნდა დაწერონ კოდი და უზრუნველყონ ამ ბიბლიოთეკის გამოყენებით დაწერილი კოდის მხარდაჭერა (ასეთი დეველოპერი თქვენ თვითონ ბრძანდებით!) და მომხმარებლები, რომლებიც გამოიყენებენ მას.

იქნება თუ არა ეს კარგი გამოცდილება დეველოპერობის კუთხით?

  • კარგად დოკუმენტირებული: ადვილი უნდა იყოს ფუნქციის შემავალი და გამომავალი მონაცემების განსაზღვრის აღწერის პოვნა, გამოყენების დემოების მოძიება და უფრო ნარატიული „როგორ გამოვიყენოთ" გზამკვლევის ნახვა. თუ ბიბლიოთეკას არ გააჩნია დოკუმენტაცია, ეს იმის ნიშანია, რომ ის არ არის დეველოპერისათვის მოსახერხებელი.
  • მოქნილობა: დოკუმენტაციაში არსებული დემოები შეიძლება, დიდებულად მოგეჩვენოთ, მაგრამ გინდოდეთ ბიბლიოთეკის ოდნავ ან სრულიად სხვაგვარად გამოყენება. ეძებეთ მოქნილობის ნიშნები - ადვილია კონფიგურაციის პარამეტრების შეცვლა? არის ბიბლიოთეკაში დოკუმენტირებული დანამატის არქიტექტურა? ბევრ ისეთ მოვლენას იწვევს, რომელსაც შეგიძლიათ, თქვენი კოდი დაუკავშიროთ?
  • აქტიურად განახლებული: ბრაუზერები ხშირად იცვლებიან. ბიბლიოთეკებმა, რომლებიც ადრე მუშაობდნენ, შეიძლება, უცებ შეწყვიტონ მუშაობა, რადგან იყენებდნენ ბრაუზერის ისეთ ნაწილს, რომელიც შეიცვალა. ეს განსაკუთრებით ეხება HTML5-ის „შიმებსა" და „პოლიფილებს", რადგან ბრაუზერები ხშირად უშვებენ ახალ ვერსიებს, რომლებიც მოიცავენ HTML5-ის ელემენტების განვითარებად იმპლემენტაციებს. შეგიძლიათ, გაარკვიოთ, რამდენად დიდი ხნის წინ განაახლეს ბიბლიოთეკა მათ ცვლილების ჟურნალში (changelog) თარიღის ნახვით. თუ ცვლილების ჟურნალი არ მოიძებნა და ბიბლიოთეკის ჰოსტინგს ახორციელებს ისეთი ღია პროგრამული წყაროს რეპოზიტორია, როგორიცაა Github, შეგიძლიათ, შეამოწმოთ ბოლო დადასტურების (commit-ის) თარიღი.
  • მომავალზე ფიქრი: თუ ეძებთ HTML5 „შიმს", არჩიეთ „პოლიფილი" - შიმი, რომელიც API-ს იმიტაციას აკეთებს. ამ გზით, თეორიულად, როდესაც თქვენი ყველა მომხმარებელი იყენებდა ბრაუზერს, რომლის მხარდაჭერაც ჰქონდა მოცემულ ტექნოლოგიას, შეგეძლებოდათ ბიბლიოთეკის გამოყენების შეწყვეტა თქვენი კოდის უცვლელად დატოვებით. მაგალითად, თუ იყენებთ ბიბლიოთეკას თქვენს ვებგვერდში ვიდეოს გამოსაყენებლად, გამოიყენეთ პოლიფილი, რომელიც შესაძლებლობას მოგცემთ, გამოიყენოთ HTML5 video ტეგი და ის შეცვლის მას ისეთი სარეზერვო ტექნოლოგიით, როგორიცაა Flash ძველ ბრაუზერებში.
  • დატესტილი: ყველა კარგ ბიბლიოთეკას უნდა მოჰყვებოდეს ტესტები, რომლებიც ამ ფუნქციის გამართულად მუშაობის გარანტიას გვაძლევს. როდესაც ბიბლიოთეკა არის დატესტილი, შეგვიძლია, დავიჯეროთ, რომ ბიბლიოთეკის ახალ ვერსიებში უკუთავსებადობის გარკვეული ხარისხი გვექნება.
  • სუფთა კოდი: შეგვიძლია, ღია პროგრამული წყაროს ბიბლიოთეკებს შევხედოთ, როგორც შავ ყუთებს და მათში ჩახედვაზე უარი ვთქვათ, მაგრამ ზოგჯერ შეიძლება, დაგჭირდეთ ბიბლიოთეკის კოდში ჩახედვა, რათა გამართოთ გარკვეული პრობლემა ან დაამატოთ მცირედი ფუნქციონალობა. გადახედეთ კოდს და ნახეთ, რამდენად ადვილი წასაკითხია, არის თუ არა სერიოზული დიზაინერული შეცდომები დაშვებული, როგორიცაა ზედმეტად დიდი რაოდენობით დაკომენტარებული ხაზი კოდში.
  • რეაგირებადი თემი: თქვენ გექნებათ შეკითხვები. თქვენ გადააწყდებით შეცდომებს („ბაგებს"). იდეალურ შემთხვევაში თქვენ შეძლებთ მათ გამართვას დეველოპერებთან ერთად, იქნებიან ისინი ამ ბიბლიოთეკის განახლების მხარდამჭერები თუ მომხმარებლები.
თუ ბიბლიოთეკის ჰოსტინგს ახორციელებს მონაცემთა წყაროს მართვის ისეთი საიტი, როგორიცაა Github, შეგიძლიათ, შეხედოთ:
  • ვარსკვლავების რაოდენობა: ბევრი ვარსკვლავი ნიშნავს, რომ ბევრმა დეველოპერმა ჩათვალა საჭიროდ მოცემული ბიბლიოთეკის ვარსკვლავით მონიშვნა. ეს არ ნიშნავს, რომ ისინი დაგეხმარებათ, მაგრამ ეს დასაწყისია! დიდ ბიბლიოთეკებს ხშირად აქვთ ბევრი ვარსკვლავი, შედარებით პატარა ბიბლიოთეკებს აქვთ 100 ან 10 ვარსკვლავი.
  • პრობლემების რაოდენობა: ბევრი ღია პრობლემაა? ეს შეიძლება, იყოს იმის ნიშანი, რომ პრობლემების გადასაჭრელად საზოგადოება არ არის საკმარისად ჩართული. ეს აგრეთვე შეიძლება, ნიშნავდეს, რომ ეს პროექტი ძალიან პოპულარულია და მისი გაუმჯობესებისათვის უამრავი იდეაა, ამიტომ, განაგრძეთ ძებნა.
  • პრობლემებზე რეაგირება: გადახედეთ რამდენიმე პრობლემას და გააგზავნეთ შეთავაზებები. ითვალისწინებენ მათ მოცემულ ბიბლიოთეკაზე პასუხისმგებელი პირები? პასუხობენ ისინი შეკითხვებს გამოყენებაზე? მათთან საუბრისას დადებით რეაქციას იღებთ, თუ - უარყოფითს?
  • დამატებითი წყაროები: ბიბლიოთეკის შესახებ შეკითხვებზე პასუხები მოიძებნება StackOverflow-ზე? არსებობს ბიბლიოთეკები, რომლებიც მოცემულ ბიბლიოთეკაზეა დაშენებული? ბევრი პატარა ბიბლიოთეკა არ არის საკმარისად დიდი იმისათვის, რომ დამატებითი წყაროები გააჩნდეს, შედარებით დიდებს, როგორიცაა Modernizr ან Backbone, აქვთ მნიშვნელოვანი წყაროები, და ეს დიდი მოტივაციაა მათი გამოყენებისთვის. შეგიძლიათ, ინტერნეტში მოძებნოთ ბიბლიოთეკის სახელი და ნახოთ, რა შედეგებს მიიღებთ.

იქნება თუ არა ეს კარგი გამოცდილება მომხმარებლის კუთხით?

თუ JS ბიბლიოთეკა არ შექმნის UI (მომხმარებლის ინტერფეისის) კომპონენტს, მაშინ აქედან მხოლოდ რამდენიმე თვისებას აქვს აზრი.
  • ფაილის ზომა: რამდენად გააუმჯობესებს ეს თქვენი მომხმარებლებისათვის გადმოსაწერი JS-ის ზომას? მაგალითისთვის, jQuery-ს gzip ფორმით (ფაილის შეკუმშვის ფორმა) და მისი კოდიდან ყველა ზედმეტი სიმბოლოს ამოღების შემდეგ ის არის 18k, ხოლო Select2 არის 7K.
  • მუშაობის ეფექტურობა: ზომის გარდა JS-ის ბიბლიოთეკის სხვა ასპექტებსაც შეუძლია მისი მუშაობის ეფექტურობაზე გავლენის მოხდენა, მაგალითად: დიდი დოზით DOM-ის მანიპულაციის შესრულება, გრაფიკის დამუშავება, გამოთვლა, მეხსიერებიდან ინფორმაციის სინქრონული მოთხოვნა და ა.შ. საუკეთესო მუშაობის წინაპირობები ეძებეთ დოკუმენტაციაში და, რა თქმა უნდა, სცადეთ თქვენით.
  • ბრაუზერის მხარდაჭერა: შეამოწმეთ, აქვს თუ არა მას თქვენთვის საჭირო ყველა ბრაუზერის მხარდაჭერა. დღეს ბევრი ბიბლიოთეკა სპეციალურად არ ახორციელებს ძველი ბრაუზერების მხარდაჭერას (რომლის მხარდაჭერაც შეიძლება, თქვენს ვებგვერდს სჭირდებოდეს), რადგან ისინი არიან გათვლილი მხოლოდ მობილურის ბრაუზერებისათვის.
  • დამხმარე საშუალებები: UI კომპონენტების ბევრი ბიბლიოთეკა დიდებულად გამოიყურება, მაგრამ მათ არ გააჩნიათ დამხმარე საშუალებები (ისინი არ მუშაობენ კარგად შეზღუდული ვიზუალური შესაძლებლობების მქონე მომხმარებელთათვის). ამის სწრაფად გადასამოწმებლად შეგიძლიათ, გაუშვათ WAVE ბიბლიოთეკის დემოს გვერდზე.
  • რეაგირებადობა: თუ თქვენი იუზერები ოდესმე გამოიყენებენ UI კომპონენტს ბიბლიოთეკიდან მობილურის ბრაუზერში, მაშინ მან კარგად უნდა იმუშაოს აქაც. ღილაკები საკმარისად დიდი ზომისაა? იყენებს შეხების მოვლენებს? ერგება მცირე ზომის ეკრანს?
თუ ყველა კრიტერიუმი განიხილეთ და მაინც ვერ ირჩევთ ბიბლიოთეკას, შეგიძლიათ, დახმარების მიღება სცადოთ: ჰკითხეთ კოლეგებს ან დეველოპერ მეგობრებს, რომელ ბიბლიოთეკებს იყენებენ. შეიძლება, უმრავლესობის საყვარელი ბიბლიოთეკა აღმოაჩინოთ.
გახსოვდეთ: არ არსებობს ერთი სწორი პასუხი, არ არსებობს ერთი საუკეთესო არჩევანი. აგრეთვე, არ არის აუცილებელი, საზრიანად განიხილოთ JS-ის ყველა ბიბლიოთეკა, რომელთა გამოყენებასაც ფიქრობთ, განსაკუთრებით იმ შემთხვევაში, თუ საკუთარ პროექტზე მუშაობთ. შეგიძლიათ, აირჩიოთ ბიბლიოთეკა და ნახოთ, რა მოგწონთ მასში მისი გამოყენებისას. გონებაში დაიწყებთ თქვენი საყვარელი ბიბლიოთეკების სიის შედგენას და გაგიჩნდებათ ბიბლიოთეკების შერჩევის თქვენი კრიტერიუმები, რაც მომავალში დაგეხმარებათ გადაწყვეტილებების მიღებაში.

გსურთ, შეუერთდეთ დისკუსიას?

პოსტები ჯერ არ არის.
გესმით ინგლისური? დააწკაპუნეთ აქ და გაეცანით განხილვას ხანის აკადემიის ინგლისურენოვან გვერდზე.