বিশ্রামযুক্ত ব্যাকএন্ডের জন্য এমবার.জেস বা ব্যাকবোন.জেএস [বন্ধ]


98

আমি ইতিমধ্যে জানি যে ember.js ব্যাকবোন.জেএস এর বিপরীতে আরও ভারী ওজনের পদ্ধতির। দুটোই নিয়ে প্রচুর নিবন্ধ পড়েছি।

আমি নিজেকে জিজ্ঞাসা করছি, কোন কাঠামো রেলের বিশ্রামের ব্যাকএন্ডের সম্মুখভাগ হিসাবে আরও সহজ কাজ করে। ব্যাকবোন.জেএস-এর জন্য আমি বিশ্রামের ব্যাক-এন্ড কল করতে বিভিন্ন পন্থা দেখেছি। এম্বারের জন্য মনে হয় আমাকে আরও কিছু লাইব্রেরি যেমন 'ডেটা' বা 'সংস্থানগুলি' অন্তর্ভুক্ত করতে হবে। কেন এই জন্য দুটি গ্রন্থাগার আছে?

তাহলে এর চেয়ে ভাল পছন্দ কী? প্রচ্ছদটির সাথেও সীমান্ত সংযোগ করার জন্য প্রচুর উদাহরণ নেই। এটিতে ব্যাকএন্ডের বিশ্রামের জন্য ভাল কাজের উদাহরণ কী:

ইউআরআই: ../restapi/topics GET অনুমোদনের শংসাপত্র: অ্যাডমিন / নিরাপদ বিন্যাস: json


4
একটি প্রশ্ন পছন্দ করে যা "গঠনমূলক নয়" তবুও সহায়ক, সুচিন্তিত উত্তর এখনও 240+ টি আপগ্রেস পেয়েছে।
অ্যান্ড্রু

উত্তর:


257

জনপ্রিয় মতামতের বিপরীতে এমবার.জেএস ব্যাকবোন.জেএস-তে কোনও 'বেশি ভারী ওজনের দৃষ্টিভঙ্গি' নয়। তারা বিভিন্ন ধরণের সরঞ্জাম যা সম্পূর্ণ ভিন্ন পণ্যগুলিকে লক্ষ্য করে। অ্যাম্বারের মিষ্টি স্পট হল এমন অ্যাপ্লিকেশন যেখানে ব্যবহারকারী দীর্ঘ সময়, সম্ভবত সমস্ত দিন অ্যাপ্লিকেশনটি খোলা রাখবে এবং অ্যাপ্লিকেশনটির দৃষ্টিভঙ্গির সাথে ইন্টারঅ্যাকশন বা ভিউ হায়ারার্কিতে অন্তর্নিহিত ডেটা গভীর পরিবর্তন করতে পারে। অ্যাম্বার ব্যাকবোন থেকে বড়, তবে ধন্যবাদ Expires, Cache-Controlএটি কেবল প্রথম লোডের জন্যই গুরুত্বপূর্ণ। দু'দিনের ব্যবহারের পরে অতিরিক্ত 30k ডেটা স্থানান্তর দ্বারা ছায়া নেমে আসবে, যদি আপনার সামগ্রীতে ছবি অন্তর্ভুক্ত থাকে তবে তাড়াতাড়ি।

ব্যাকবোন হ'ল সংখ্যক রাজ্যের সাথে এমন অ্যাপ্লিকেশনগুলির জন্য আদর্শ যেখানে দৃষ্টিভঙ্গি তুলনামূলকভাবে সমতল এবং যেখানে ব্যবহারকারী খুব কম সময়ে বা স্বল্প সময়ের জন্য অ্যাপ্লিকেশনটিতে অ্যাক্সেস করতে থাকে। ব্যাকবোন কোডটি সংক্ষিপ্ত এবং মিষ্টি থাকতে পারে কারণ এটি এমন ধারণা তৈরি করে যে ডমকে সমর্থনকারী ডেটা ফেলে দেওয়া হবে এবং উভয় আইটেমই মেমরি সংগ্রহ করা হবে: https://github.com/docamentcloud/backbone/issues/231#issuecomment-4452400 ব্যাকবোন এর ছোট আকার এটিকে সংক্ষিপ্ত মিথস্ক্রিয়াগুলির জন্য আরও উপযুক্ত করে তোলে।

অ্যাপস মানুষ উভয় অবকাঠামো লিখতে এই ব্যবহারের চিন্তা-ভাবনা কর Ember.js অ্যাপস অন্তর্ভুক্ত স্কয়ার এর ওয়েব ড্যাশবোর্ড , Zendesk (অন্তত এজেন্ট / টিকিট ইন্টারফেস), এবং Groupon এর নির্ধারণকারী সব অ্যাপ্লিকেশন একটি ব্যবহারকারী সব দিন কাটাতে পারে কর্মরত।

ব্যাকবোন অ্যাপ্লিকেশনগুলি সংক্ষিপ্ত বা নৈমিত্তিক ইন্টারঅ্যাকশনগুলিতে আরও বেশি ফোকাস করে, এটি প্রায়শই একটি বৃহত স্ট্যাটিক পৃষ্ঠার কেবলমাত্র ছোট্ট অংশ: এয়ারবিএনবি , খান একাডেমি , চারসকোয়ারের মানচিত্র এবং তালিকাগুলি

এম্বার টার্গেট (যেমন Rdio ) দ্বারা এম্বার টার্গেট করে এমন ধরণের অ্যাপ্লিকেশন তৈরি করতে আপনি ব্যাকবোন ব্যবহার করতে পারেন ) মেমরি ফাঁস বা জম্বি ইভেন্টগুলির মতো সমস্যা এড়াতে আপনি যে দায়বদ্ধ অ্যাপ্লিকেশন কোডটির জন্য দায়বদ্ধ তা বাড়িয়ে তোলেন (আমি ব্যক্তিগতভাবে এই পদ্ধতির প্রস্তাব দিই না) বা খ) ব্যাকবোন.মারিয়নেট বা কোকসেক্সের মতো তৃতীয় পক্ষের লাইব্রেরি যুক্ত করে - এই লাইব্রেরির মধ্যে অনেকগুলিই একই ধরণের ওভারল্যাপিং কার্যকারিতা সরবরাহ করার চেষ্টা করে এবং আপনি সম্ভবত আপনার নিজস্ব কাস্টম ফ্রেমওয়ার্কটি সংযুক্ত করে শেষ করবেন যা এর চেয়ে আরও বেশি আঠালো কোডের প্রয়োজন হয় আপনি যদি শুধু এমবার ব্যবহার করতেন

শেষ পর্যন্ত "কোনটি ব্যবহার করবেন" এর প্রশ্নের দুটি উত্তর রয়েছে।

প্রথমত, "আমার কেরিয়ারে সাধারণত আমার কোনটি ব্যবহার করা উচিত": দু'টিই, ঠিক তেমনই আপনি ভবিষ্যতে যা করতে চাইবেন সেই কাজের জন্য নির্দিষ্ট কোনও সরঞ্জাম শিখবেন। আপনি কখনই "ব্যাকবোন বা ডি 3?" জিজ্ঞাসা করবেন না; "ব্যাকবোন বা অ্যাম্বার" একটি সমান নির্বোধ প্রশ্ন।

দ্বিতীয়ত, "আমার পরবর্তী প্রকল্পে বিশেষত আমার কোনটি ব্যবহার করা উচিত": প্রকল্পের উপর নির্ভর করে। উভয়ই সমান স্বাচ্ছন্দ্যে একটি রেল সার্ভারের সাথে যোগাযোগ করবে। যদি আপনার পরবর্তী প্রকল্পে জাভাস্ক্রিপ্ট দ্বারা প্রদত্ত তথাকথিত "সমৃদ্ধির দ্বীপ" সহ সার্ভারের দ্বারা উত্পন্ন পৃষ্ঠাগুলির মিশ্রণ জড়িত থাকে তবে ব্যাকবোন ব্যবহার করুন। যদি আপনার পরবর্তী প্রকল্প ব্রাউজার পরিবেশের মধ্যে সমস্ত মিথস্ক্রিয়াটি ঠেলে দেয় তবে এমবারটি ব্যবহার করুন।


4
দুর্দান্ত প্রতিক্রিয়া, ট্রেক। কেবল এখানে মন্তব্য করতে চেয়েছিলেন Expiresএবং Cache-Controlলোকেরা যা ভাবেন তার চেয়ে অনেক কম সহায়তা করতে চান - বিশেষত মোবাইল ডিভাইসের ক্ষেত্রে যা প্রায়শই সেগুলি উপেক্ষা করে। আমি মনে করি আইওএসের একটি সংস্করণ এগুলিকে সম্পূর্ণ উপেক্ষা করেছে (তবে এখনও এইচটিএমএল 5 ক্যাশে ম্যানিফেস্টের জন্য পছন্দ করে)। অতিরিক্তভাবে এই শিরোনামের মানগুলি কোনও ব্যবহারকারীর প্রথম দর্শনের সময় সহায়তা করবে না — যা ব্যবহারকারী আপনার অ্যাপ্লিকেশনটি ব্যবহার করবে এবং ব্যবহার করবে কিনা তা সিদ্ধান্ত নিতে সাধারণত সবচেয়ে গুরুত্বপূর্ণ। 30 কেবি ফাইলের পার্থক্যটি বললে আমার কাছে এত বড় চুক্তি মনে হয় না। এটি কি কাঁচা বা একটি minified এবং gzip 30k পার্থক্য?
মাউভিস লেডফোর্ড

11
যদি আপনি প্রকৃত অ্যাপ্লিকেশনগুলির দিকে যান যা শৈলী এম্বারটি তৈরির জন্য সহায়তা করার উদ্দেশ্যে তৈরি করা হয় তবে আপনি খুঁজে পাবেন যে এই সমস্যাযুক্ত কেবিএস থেকে বাঁচার কোনও নেই। হয় তারা আম্বার থেকে আসছে এবং আপনার অ্যাপ্লিকেশন কোডটি ছোট, বা তারা ব্যাকবোন প্লাগইন থেকে আসছে বা আপনি নিজেরাই লিখেছেন কোড থেকে আসছে। ওয়ান্ডারলিস্ট , যা আপনি প্রায় 300 কিলোবাইট স্থানান্তরের সময়ে "সরল" ঘড়ি হিসাবে মনে করেন। আমি ভাবতাম এটি এম্বারের সাথে একই আকারের হতে পারে, সম্ভবত আরও ছোট - সঠিক কপিটি কখনও লিখেনি উইন্ডারলিস্ট আমি 100% নিশ্চিততার সাথে বলতে পারি না।
ট্রেক গ্লোয়াকি

4
আমি সম্মত, আমার সর্বাধিক জনপ্রিয় ব্যাকবোন অ্যাপ্লিকেশন 178kb + টেমপ্লেটগুলি সংকুচিত এবং মাইনযুক্ত করা হয়েছে। কীভাবে আমাদের ব্রাউজার ক্যাশে নির্ভর করা উচিত নয় তা কেবল নির্দেশ করে।
মাউভিস লেডফোর্ড

4
ট্রেক, বর্ধিত ব্যবহারের নিদর্শন এবং জটিল রাষ্ট্র পরিচালনার সাথে অ্যাপ্লিকেশনগুলিতে ব্যাকবোন ব্যবহারের বিশ্লেষণ নিয়ে আপনি স্পষ্ট। আমি কোনও উত্তরাধিকার অ্যাপটিকে ব্যাকবনে রূপান্তর করার অভিজ্ঞতার মধ্য দিয়ে গিয়েছিলাম এবং আপনি যা তালিকাভুক্ত করেছিলেন ঠিক তাই করতে হয়েছিল। আমাদের সামুদ্রিক একীকরণের পাশাপাশি প্রাক / পোস্ট রুট ফিল্টারিং, মেমরি ফাঁস প্রশমন, এবং আরও ভাল ইভেন্ট ম্যানেজমেন্টের মতো জিনিসগুলির জন্য প্রচুর আঠালো কোড লিখতে হবে write
মাইক ক্লাইমার

9
"আপনি কখনই ব্যাকবোন বা ডি 3 জিজ্ঞাসা করবেন না" - অবশ্যই, তবে আমি খুব সহজেই এমন একটি প্রকল্পের কল্পনা করতে পারি যেখানে আমি ব্যাকবনের সাথে একযোগে ডি 3 ব্যবহার করব। এমন কোনও প্রকল্পের কল্পনা করা খুব শক্ত যেখানে ব্যাকবোন এবং আম্বার একক পৃষ্ঠায় একসাথে ব্যবহৃত হয়। সুতরাং, আমি "ব্যাকবোন বা আম্বার" প্রশ্নটি বেশ ন্যায্য বলে মনে করি। এখানে আরও একটি পোস্ট আমি বেশ তথ্যপূর্ণ পেয়েছি, কারণ এটি দুটি ফ্রেমওয়ার্ককে আরও গভীরভাবে তুলনা করে: নেট.টুটস্প্লস.com
জাভাস্ক্রিপ্ট-

26

একটি সংক্ষিপ্ত, সরলিকৃত উত্তর দেওয়ার জন্য: এই মুহুর্তে একটি বিশ্রামযুক্ত ব্যাকএন্ডের জন্য, আপনার ব্যাকবোন ব্যবহার করা উচিত।

আরও জটিল উত্তর দেওয়ার জন্য: আপনি যা করছেন তার উপর নির্ভর করে এটি। অন্যরা যেমন বলেছে, এমবারটি বিভিন্ন জিনিসের জন্য নকশাকৃত, এবং বিভিন্ন সংখ্যক লোকের কাছে আবেদন করবে। আমার সংক্ষিপ্ত উত্তরটি আপনার বিশ্রামের প্রয়োজনীয়তার অন্তর্ভুক্তির উপর ভিত্তি করে।

এই মুহুর্তে, অ্যাম্বার-ডেটা (যা এম্বারের অভ্যন্তরে পূর্বনির্ধারিত দৃistence়তা প্রক্রিয়া বলে মনে হয়) উত্পাদন প্রস্তুত থেকে অনেক দূরে। এর অর্থ হ'ল এটিতে বেশ কয়েকটি বাগ রয়েছে এবং অত্যন্ত গুরুত্বপূর্ণভাবে নেস্টেড ইউআরআই সমর্থন করে না (উদাহরণস্বরূপ / পোষ্ট / ২ / মন্তব্য / 4556)। যদি আরআরইএসটি আপনার প্রয়োজন হয় তবে আপনি যদি অ্যাম্বারকে বেছে নেন তবে আপাতত আপনাকে এটিকে ঘিরে কাজ করতে হবে (অর্থাত আপনি এটি হ্যাক করতে হবে, অপেক্ষা করুন, নিজেকে স্ক্র্যাচ থেকে এম্বার-ডেটার মতো কিছু বাস্তবায়ন করুন, বা ব্যবহার করবেন না - প্রতি-রিস্টফুল ইউআরআই)। অ্যাম্বার-ডেটা কঠোরভাবে এম্বারের অংশ নয়, সুতরাং এটি সম্পূর্ণভাবে সম্ভব।

আকার থেকে আলাদা হয়ে দুজনের মধ্যে প্রধান পার্থক্যগুলি হ'ল:

অ্যাম্বার আপনার জন্য যথাসম্ভব চেষ্টা করার চেষ্টা করে, যাতে আপনাকে যতটা কোড লিখতে না হয়। এটি অত্যন্ত শ্রেণিবদ্ধ এবং আপনার অ্যাপটিও যদি খুব শ্রেণিবদ্ধ হয় তবে সম্ভবত এটি বেশ উপযুক্ত। কারণ এটি আপনার পক্ষে অনেক কিছু করে, বাগগুলি কোথা থেকে এসেছে তা নির্ধারণ করা এবং অপ্রত্যাশিত আচরণ কেন ঘটছে তা বোঝা মুশকিল হতে পারে (অনেক "জাদু" রয়েছে)। আপনার যদি এমন একটি অ্যাপ্লিকেশন থাকে যা স্বাভাবিকভাবে এম্বার আপনাকে বিল্ডিংয়ের প্রত্যাশা করে এমন অ্যাপ্লিকেশানটির সাথে ফিট করে তবে সম্ভবত সমস্যাটি হবে না।

ব্যাকবোন আপনার জন্য যতটা সম্ভব সম্ভব করার চেষ্টা করে যাতে আপনি কী চলছে তার বিষয়ে যুক্তি করতে পারেন এবং আপনার অ্যাপ্লিকেশনটির সাথে খাপ খায় এমন একটি আর্কিটেকচার তৈরি করতে পারেন (বরং আপনি যে ফ্রেম ব্যবহার করছেন সেই কাঠামোর আর্কিটেকচারের সাথে খাপ খায় এমন অ্যাপ তৈরির চেয়ে)। এটি শুরু করা খুব সহজ তবে আপনি যদি সতর্ক না হন তবে আপনি খুব দ্রুত কোনও গণ্ডগোলের সাথে শেষ করতে পারেন। এটি গণিত বৈশিষ্ট্য, স্ব-আনবাইন্ডিং ইভেন্ট ইত্যাদির মতো জিনিসগুলি করে না এবং এগুলি আপনার কাছে ছেড়ে দেয়, সুতরাং আপনাকে নিজেকে প্রচুর পরিমাণে প্রয়োগ করতে হবে (বা কমপক্ষে আপনার জন্য গ্রন্থাগারগুলি বেছে নেবে), যদিও তা বরং পুরো বিষয়টি।

আপডেট : দেখা যাচ্ছে যে সাম্প্রতিক হিসাবে, এম্বার এখন নেস্টেড ইউআরআই সমর্থন করে, সুতরাং আমি মনে করি যে প্রশ্নটি আপনার অ্যাপ্লিকেশনের জন্য আর্কিটেকচারালিভাবে আপনি কতটা যাদু পছন্দ করেন এবং অ্যাম্বার একটি ভাল ফিট কিনা to


5
"গুরুতরভাবে, নেস্টেড ইউআরআইগুলিকে সমর্থন করে না (/ পোস্টগুলি / 2 / মন্তব্য / 4556 উদাহরণস্বরূপ)" এখানে কয়েক সপ্তাহ আগে সম্পর্কিত প্রতিশ্রুতি দেওয়া হয়েছে: github.com/emberjs/data/commit/… । এটি জানি যে দ্রুত চলমান, প্রাক-প্রকাশের কাঠামোটি ধরে রাখা শক্ত হতে পারে তবে কর্তৃপক্ষের সাথে কথা বলার এবং পরামর্শ দেওয়ার সময় আমাদের সর্বদা নির্ভুলতার লক্ষ্য করা উচিত!
ট্রেক গ্লোয়াকি

শীতল ধন্যবাদ. আমার উত্তর আপডেট। আমার ধারণা গত সপ্তাহে বা এর মধ্যে বড় সম্পর্কের একত্রীকরণে এটি চালু হয়েছিল। তালিকাভুক্ত পরিবর্তনগুলি আমি দেখতে পেয়েছি এবং পড়েছি কিন্তু ইউআরএলগুলির কোনও উল্লেখ পাই না এবং আমি যে বিষয়গুলি ট্র্যাক করেছিলাম সেগুলি এখনও পরীক্ষা করে নিলে তা এখনও খোলা ছিল। প্রতিশ্রুতিটি নির্দেশ করার জন্য ধন্যবাদ - ইতিমধ্যে এর অস্তিত্বটি না জেনে এটি সনাক্ত করা কঠিন।
bengillies

এটি আসলে সম্পর্ক-উন্নতি শাখার সাম্প্রতিক একত্রীকরণ থেকে from আমরা পুরানো সমস্যাগুলি ধীরে ধীরে অনুসরণ করছি এবং এই সপ্তাহে এগুলি বন্ধ করছি।
ট্রেক গ্লোয়াকি

3

আমি মনে করি আপনার প্রশ্নটি শীঘ্রই অবরুদ্ধ হয়ে যাবে :) দুটি ফ্রেমওয়ার্কের মধ্যে কয়েকটি বিতর্ক রয়েছে।

মূলত ব্যাকবোন অনেক কিছু করে না এবং সে কারণেই আমি এটি পছন্দ করি: আপনাকে অনেক কোড করতে হবে, তবে আপনি সঠিক জায়গায় কোড করবেন। এম্বার অনেক কিছু করে, তাই আপনি এটি আরও ভাল করে দেখছেন।

সার্ভার আলোচনা হ'ল ব্যাকবোন যে কয়েকটি কাজ করে তার মধ্যে একটি এবং এটি এটির সাথে দুর্দান্ত কাজ করে। সুতরাং আমি ব্যাকবোন দিয়ে শুরু করব এবং তারপরে আম্বরকে চেষ্টা করব যদি আপনি সম্পূর্ণ সন্তুষ্ট না হন।

আপনি এই পডকাস্টটি শুনতে পারেন যেখানে ব্যাকবোনটির স্রষ্টা জেরেমি আশকানাস এবং এম্বারের সদস্য ইয়াহুদা কাটজ একটি সুন্দর আলোচনা করেছেন


4
ধন্যবাদ. এম্বারের রিট এক্সটেনশন সম্পর্কে আপনি কী বলতে পারেন। ডেটা বা রিসোর্সের ব্যবহার আরও ভাল? বিশ্রাম এপি কলটির সহজ উদাহরণ দিতে পারেন?
রবিন ভেরুচ

4
সংক্ষিপ্ত উত্তরটি হ'ল গ্রন্থাগারগুলি সর্বদা পরিবর্তিত হয় এবং আমি আমার পূর্ববর্তী অভিজ্ঞতার উপর ভিত্তি করে আপনাকে কোনও প্রতিক্রিয়া জানাতে পারি না (মূল্যায়নের জন্য আমি নিজে এটি করেছি)। আমি মনে করি এই পোস্টে চেয়ে আমি করতে পারেন আপনি আরো বলতে হবে: stackoverflow.com/questions/8623091/ember-js-rest-api
নিকোলাস Zozol

4
আমি এই পোস্টটি ইতিমধ্যে দেখেছি। আমি কেন জিজ্ঞাসা করেছি :)
রবিন ওয়েয়ারুচ

4
@ নিকোলাসজোজল কোন পডকাস্ট? লিঙ্ক?
দীপক

4
javascriptjabber.com/004-jsj-backbone-js-with-jeremy-ashkenas ফেব্রুয়ারিতে পিছনে থেকে। এটি পরিষ্কার হয়ে যাওয়ার আগে এটি এই যে ফ্রেমওয়ার্কগুলি ওভারল্যাপিং আখরগুলিতে আসলেই বিদ্যমান ছিল না। আপনি ইহুদা এবং জেরেমিকে কেবল একে অপরের অতীত কথা বলতে শুনেছেন, আসলে কোনও তুলনা করছেন না।
ট্রেক গ্লোয়াকি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.