X2D3T9ჩემი აზრით ფრეიმვორქის ცოდნა აუცილებელია. დღესდღეობით ტენდენცია არის 1 გვერდიანი აპლიკაციების წერის. ანუ ფიზიკურად 1 გვერდია და ჯავასკრიპტ აპლიკაციაა ჩატვირთული, "ვირტუალური" გვერდებით.
ფრეიმვორქით მუშაობის დროს სპაგეტი კოდი არ გამოგდის და ყველაფერი დაყოფილია ლამაზად და გასაგებად.
ერთ ერთი დიდი პლიუსი ის არის რომ მოდელზე (ანუ ინფორმაციაზე, მაგალითად ობჯექტზე) ახდენ მანიპულაციას რის შედეგადაც შემდეგ view-ში DOM იცვლება. ანუ MVC (model view controller) დიზაინისკენ ილტვიან ფრეიმვორქები. თუმცა უმეტეს შემთხვევაში MVVM სახელი უფრო შეესადაგებათ. ანუ model-view-viewmodel.
გიბიძგებს იმისკენ რომ დააცალკევო ერთმანეთისგან ეს 3 კომპონენტი.
ფრეიმვორქებს შორის გარდა მათი იმპლემენტაციისა, განსხვავება არის დეველოპერის "თავისუფლება".
მაგალითად, ჩემი ერთ ერთი ფავორიტი ფრეიმვორქი - Mithril.js შედგება დაახლოებით 10 ძირითადი ფუნქციისგან. ეს ფუნქციები კოდის წერის დროს შეიძლება არც გამოიყენო საერთოდ, ანუ შეზღუდული არ ხარ არანაირად როდესაც mithril.js -ში მუშაობ. შეიძლება სულ რაღაც 2 ფუნქცია გამოიყენო და დანარჩენი vanilla js -ში წერო. ანუ უბრალო ჯავასკრიპტში.
mithril.js გიბიძგებს იმისკენ რომ functional ჯავასკრიპტი წერო, ანუ თითოეული პატარა ლოგიკა, ცალკეულ, გამოყენებად ფუნქციებად დაყო (როგორც უნდა იწერებოდეს წესით ჯავასკრიპტი). და რადგანაც "ჩარჩოებში" არ გსვამს და გაძლევს იმის უფლებას რომ წერო რაც გინდა და როგორც გინდა, თუკი შენთვითონ ვერ მოიფიქრებ როგორ დაახარისხო და დაყო ყველაფერი ისე რომ MVC დიზაინი დაიცვა, შეიძლება ეგრეთწოდებული სპაგეტი კოდი გამოგივიდეს, ანუ სრული ქაოსი.
mithril-ს დამუღამება თითქმის არ ჭირდება, რადგანაც ჩვეულებრივ ჯავასკრიპტში მუშაობ, უბრალოდ რამდენიმე ფუნქციას წაგაშველებს იმისთვის რომ უფრო დახვეწილი კოდი დაწერო. და ჩემი აზრით ეს დიდი პლიუსი აქვს - რეალურად, ჯავასკრიპტს სწავლობ.
ასევე ყველაზე პატარა ფრეიმვორქია და ყველაზე სწრაფი. აი აქ run test -ს თუ გააკეთებ, ნახავ შედეგებს:
https://jsperf.com/angular-vs-knockout-vs-ember/308აი ანგულარის შემთხვევაში, ჯავასკრიპტს არ სწავლობ, არამედ ანგულარს სწავლობ. ანუ ჯავასკრიპტს აღარ წერ, ანგულარს წერ რა. დოკუმენტაციაში თუ არ წაიკითხავ აი ეს როგორ კეთდება, ისე ვერ გააკეთებ.
ასევე დოკუმენტაცია გეუბნება რომ აი ამის გაკეთება თუ გინდა, მაშინ აი ასე უნდა დაწერო, ეს უნდა ქნა, ის უნდა ქნა.. ანუ რაღაცნაირად "ჩარჩოებში" გსვამს რა..
მე პირადად მიმუშავია Backbone.js, Backbone.Marionette.js, Angular.js, React.js, Ember.js, Vue.js, Mithril.js, soma.js, Meteor.js.
და გირჩევდი Vue.js-ს და Mithril.js -ს და Meteor.js.
Vue-ს დაახლოებით იგივე სინტაქსი აქვს რაც ანგულარს, მაგრამ ბევრად უფრო დახვეწილია, ბევრად უკეთესი დოკუმენტაცია აქვს და ბევრად უფრო მარტივია.
Meteor.js სულ სხვა დონეა. Meteor-ში სერვერსაც და კლიენტსაც ჯავასკრიპტში წერ. და ძალიან მაგარი რამეა. აი სულ სხვა სამყაროა..

)
This post has been edited by Ruritania on 10 Dec 2015, 06:26