অ্যাঙ্গুলারজেএস কি কেবল একক পৃষ্ঠার অ্যাপ্লিকেশনগুলির জন্য রয়েছে (এসপিএ)?


201

আমরা যে অ্যাপ্লিকেশনটি তৈরি করছি তার সম্মুখ প্রান্তটি তৈরির জন্য বিকল্পগুলি আমরা খুঁজছি এবং এমন একটি সরঞ্জাম মূল্যায়নের চেষ্টা করছি যা আমাদের জন্য কাজ করবে এবং আমাদের এগিয়ে যাওয়ার জন্য সেরা প্ল্যাটফর্ম দেবে।

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

আমরা কয়েকটি ফ্রেমওয়ার্ক দেখেছি যা আমরা ক্লায়েন্টকে ব্যাকবোন.জেএস , মেটিয়র ইত্যাদি তৈরি করতে ব্যবহার করতে পারি এবং অ্যাংুলারজেএসও।

এটি একটি মোটামুটি সুস্পষ্ট প্রশ্ন হতে পারে, তবে অ্যাঙ্গুলারজেএস যদি নিখুঁতভাবে একক পৃষ্ঠার অ্যাপ্লিকেশনের জন্য থাকে বা উদাহরণস্বরূপ এটি এক্সপ্রেসের মতো মাল্টি-পৃষ্ঠাগুলির অ্যাপ্লিকেশনগুলির জন্য ব্যবহার করা যায় তবে আমরা কোনও সিদ্ধান্ত গ্রহণ করতে পারি না।


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

Sensকমত্যটি ছিল যে আমরা একাধিক স্ট্যাটিক পৃষ্ঠাগুলি পরিবেশন করতে পারি এবং AngularJS অ্যাপ্লিকেশন তৈরি করতে পারি যা কেবলমাত্র সেই পৃষ্ঠাগুলির সাথে কাজ করে, কার্যকরভাবে এসপিএর সংগ্রহ তৈরি করে এবং সেই অ্যাপ্লিকেশনগুলিকে স্ট্যান্ডার্ড লিঙ্কিংয়ের সাথে সংযুক্ত করে। এখন আমাদের ব্যবহারের ক্ষেত্রে খুব সুনির্দিষ্ট কারণ আমাদের সমাধানটিতে বেশ কয়েকটি অ্যাপ্লিকেশন রয়েছে এবং আমি যেমন বলেছিলাম যে আমরা প্রথমে একক কোড বেস চেষ্টা করব এবং সেখান থেকে অনুকূলিত করব।

আপডেট 18 জুন 2016 প্রকল্পটি একটি খসখসে পড়েছে, তাই আমরা কখনই খুব বেশি কিছু করতে পারিনি। আমরা সম্প্রতি এটি আবার তুলেছি, তবে আর কৌণিক ব্যবহার করছি না এবং পরিবর্তে প্রতিক্রিয়া ব্যবহার করছি। আমরা এখনও পূর্ববর্তী আপডেটে বর্ণিত আর্কিটেকচারটি ব্যবহার করছি, যেখানে আমরা এক্সপ্রেস এবং স্ব-সংযুক্ত অ্যাপ্লিকেশনগুলি ব্যবহার করি, উদাহরণস্বরূপ, আমাদের /chatএক্সপ্রেসে একটি রুট রয়েছে যা আমাদের প্রতিক্রিয়া চ্যাট অ্যাপ্লিকেশনটিকে পরিবেশন করে, আমাদের আরও একটি রুট রয়েছে /projectsযা প্রকল্প অ্যাপ্লিকেশনটিকে পরিবেশন করে এবং শীঘ্রই. প্রতিটি অ্যাপটিকে আমরা যেভাবে এটি দেখতে চাইছি তা তার বৈশিষ্ট্য সেট অনুসারে সামগ্রিক মূল, এটি নিজেই একটি অ্যাপ হিসাবে বিবেচিত হওয়ার জন্য এটি এককভাবে সক্ষম হওয়া প্রয়োজন to প্রযুক্তিগতভাবে, সমস্ত তথ্য বাইরে রয়েছে, এটির কেবলমাত্র বেসিক এক্সপ্রেস এবং ক্লায়েন্ট সাইড অ্যাপ্লিকেশন বিল্ডিং সদ্ব্যবহারের যে কোনও স্বাদ আপনি ব্যবহার করতে চান।


5
তাহলে কীভাবে চলবে? আমি কীভাবে একটি 50+ পৃষ্ঠার ASP.NET অ্যাপ্লিকেশনটিকে খাঁটি এইচটিএমএল + জাভাস্ক্রিপ্ট + রিস্ট অ্যাপ্লিকেশনটিতে স্থানান্তরিত করব তা নির্ধারণের প্রক্রিয়ায় রয়েছি এবং কীভাবে এটি এসপিএ হিসাবে কাজ করবে তা আমি সত্যিই পাই না।
গ্রেগ

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

1
এটি যা করে তা হ'ল প্রতিটি বিভাগকে (যেমন ব্যবহারকারী, সংবাদ, পণ্য ইত্যাদি) নিজের হাতে একটি এসপিএ তৈরি করা, তবে সম্মিলিতভাবে তারা আপনার অ্যাপ্লিকেশনটি গঠন করে।
মোডিকা

1
দুর্দান্ত, আপনাকে ধন্যবাদ। আলাদা এসপিএ একসাথে বেঁধে রাখার জন্য কি কোনও নির্দিষ্ট কোডিং রয়েছে? নাকি কেবল নিয়মিত লিঙ্ক?
গ্রেগ

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

উত্তর:


216

একেবারেই না. আপনি বিভিন্ন অ্যাপ্লিকেশন তৈরি করতে কৌনিক ব্যবহার করতে পারেন। ক্লায়েন্ট-পার্শ্বের রাউটিং এটির একটি সামান্য অংশ।

আপনার কাছে বৈশিষ্ট্যগুলির একটি বৃহত তালিকা রয়েছে যা ক্লায়েন্ট-সাইড রাউটিংয়ের বাইরে আপনাকে উপকৃত করবে:

  • দ্বিমুখী বাঁধাই
  • টেমপ্লেট
  • মুদ্রা বিন্যাস
  • pluralization
  • পুনরায় ব্যবহারযোগ্য নিয়ন্ত্রণ
  • রেস্টলফুল এপিআই হ্যান্ডলিং
  • এজেএক্স হ্যান্ডলিং
  • modularization
  • নির্ভরতা ইনজেকশন

এটা ভেবে পাগল যে এই সমস্ত "শুধুমাত্র একটি একক পৃষ্ঠার অ্যাপ্লিকেশনটিতে ব্যবহার করা যেতে পারে"। অবশ্যই তা নয় .. এটি "জ্যাকুারি কেবলমাত্র অ্যানিমেশন সহ প্রকল্পগুলির জন্য" বলার মতো।

যদি এটি আপনার প্রকল্পের সাথে মানায় তবে এটি ব্যবহার করুন।


42
আরেকটি বিষয় উল্লেখ করার দরকার হ'ল অ্যাংুলার সম্পূর্ণ পৃষ্ঠাগুলির জন্যও ব্যবহার করার প্রয়োজন হয় না - এটি উপাদান তৈরির জন্য একটি বিদ্যমান সিস্টেমে সংহত করা যেতে পারে, অর্থাত্ কোনও উত্তরাধিকার আবেদনের অভ্যন্তরে একটি জটিল উইজেট বা প্লাগইন।
অ্যালেক্স ওসবার্ন

2
@ ব্লেশ, উত্তরের জন্য আপনাকে ধন্যবাদ জানায়, এটি বোধগম্য হয় তবে আমরা কীভাবে এটির জন্য লড়াই করে যাচ্ছি তা হ'ল "কীভাবে" আমরা এটি ব্যবহার করি মাল্টি পেজের অ্যাপ্লিকেশন তৈরি করা কারণ প্রশ্নটি কেন পোস্ট করা হয়েছিল, এটি সত্যই অন্যরকম প্রশ্ন তাই আপনার উত্তরটি হয়েছে স্বীকৃত তবে উদাহরণস্বরূপ আমরা এক্সপ্রেস.জেএস সহ কৌণিক.জেএস ব্যবহার করতে পারি বা এটি এমন কিছু সময় এবং ব্যথার জটিলতা।
মোডিকা

এক্সপ্রেসের সাথে কৌণিক প্রায় আদর্শ! এক্সপ্রেসের সাহায্যে একটি RESTful API তৈরি করা সত্যিই সহজ, আপনি নিজের কৌনিক অ্যাপ্লিকেশন (গুলি) থেকে গ্রাস করতে পারেন। গুগল নোডজেএস এক্সপ্রেস আরএসএফুল এপিআই এবং অ্যাংুলারের $ সংস্থান এবং $ HT পরিষেবাগুলি। এর পরে, কেবল প্রোটোটাইপিং এবং এটির সাথে খেলতে শুরু করুন। আমি মনে করি আপনি একবারে তারা কত সুন্দরভাবে কাজ করেছেন তা দেখে আপনি "HOW" সম্পর্কে খুব বেশি চিন্তাভাবনা করছেন / চিন্তিত হতে পারেন।
বেন লেশ

@ ব্ল্লেস, দেরি করে ফিরে আসার জন্য দুঃখিত। আমাদের কাছে ইতিমধ্যে রেজটাইফ ব্যবহার করে একটি রেস্ট / হাইপারমিডিয়া এপিআই তৈরি করা আছে, আমি অনুমান করি যে আমাদের আলাদাভাবে তৈরি করা "অ্যাপস" একসাথে লিঙ্ক করার একটি ঝরঝরে উপায় খুঁজে বের করা দরকার, এটি খতিয়ে দেখবে এবং সম্ভবত প্রশ্নটি কোনও পর্যায়ে আপডেট করবে।
মোডিকা

@ মোডিকা আপনি কি কোনও ভাল সংস্থান খুঁজে পেতে সক্ষম হয়েছেন, বা মাল্টি পেজ অ্যাপসের জন্য কোনও ভাল অন্তর্দৃষ্টি আছে?
dre

16

আমি প্রথমে অ্যাঙ্গুলারের সাথে "কীভাবে" লড়াই করেছিলাম। তারপরে একদিন এটি আমার উপর ছড়িয়ে পড়ে: "এটি এখনও জাভাস্ক্রিপ্ট"। অ্যাঙ্গুলারের ইনস অ্যান্ড আউটস সম্পর্কে একগুচ্ছ উদাহরণ রয়েছে ( https://github.com/angular-app/angular-app বইটির সাথে আমার অন্যতম প্রিয় )। সবচেয়ে বড় বিষয় মনে রাখার বিষয়টি হ'ল আপনার মতো অন্য কোনও প্রকল্পের মতো জেএস ফাইলগুলি লোড করা। আপনাকে যা করতে হবে তা নিশ্চিত করেই বিভিন্ন পৃষ্ঠাগুলি সঠিক কৌণিক বস্তুর (নিয়ামক, দর্শন ইত্যাদি) রেফারেন্স করেছে এবং আপনি বন্ধ আছেন এবং চলছে। আমি আশা করি এটি বোধগম্য হয় তবে উত্তরটি এত সহজ ছিল আমি এটি উপেক্ষা করেছি।


6

হয়তো আমার অভিজ্ঞতা কারও কাজে লাগবে। আমরা যৌক্তিকভাবে আমাদের প্রকল্প বিভক্ত। আমরা ফিডের জন্য ব্যবহার করি এমন একটি এসপিএ, মানচিত্রের সাথে কাজ করার জন্য আরেকটি, ব্যবহারকারীর প্রোফাইল সম্পাদনা করার জন্য আরেকটি এবং ইত্যাদি example উদাহরণস্বরূপ আমাদের তিনটি অ্যাপ্লিকেশন রয়েছে: ফিড, ব্যবহারকারী এবং মানচিত্র। আমি এটি পৃথক ইউআরএলগুলিতে ব্যবহার করি:

https://host/feed/#/top/
https://host/user/#/edit/1/
https://host/map/favorites/#/add/

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

প্রকৃতপক্ষে, আপনি খুব সহজেই এসপিএ অ্যাপ্লিকেশনগুলির মিশ্রণ তৈরি করতে পারেন, উদাহরণস্বরূপ ফিডটি অ্যাঙ্গুলার অ্যাপ্লিকেশন সহ ইউআরএল হবে, রিঅ্যাকটজ সহ ব্যবহারকারী অ্যাপ এবং ব্যাকবোন.জেএস অ্যাপ্লিকেশনটিতে মানচিত্র।

আপনার প্রশ্নের জবাবে:

কৌণিকতা কেবল এসপিএর জন্য নয়, এসপিএ অ্যাপ্লিকেশনগুলির জন্য কৌণিক ভাল এবং দ্রুত খেলা করে, তবে কেউ বিভিন্ন এসপিএ অ্যাপ্লিকেশনগুলির এমপিএ অ্যাপ্লিকেশন তৈরি করতে সাহস করে না। তবে আপনার ইউআরএল আর্কিটেকচার সম্পর্কে ভাবনা আপনার অ্যাপ্লিকেশনগুলির এসইও উপলব্ধতার কথা ভুলে যাবে না।

আমি এই ধারণাটি সমর্থন করি:

একটি প্রকল্প এবং একটি অ্যাপ্লিকেশন মধ্যে পার্থক্য কি? একটি অ্যাপ্লিকেশন একটি ওয়েব অ্যাপ্লিকেশন যা কিছু করে - যেমন একটি ওয়েবলগ সিস্টেম, পাবলিক রেকর্ডের একটি ডাটাবেস বা একটি সাধারণ পোল অ্যাপ্লিকেশন। একটি প্রকল্প হ'ল নির্দিষ্ট ওয়েবসাইটের জন্য কনফিগারেশন এবং অ্যাপ্লিকেশনগুলির সংকলন। একটি প্রকল্পে একাধিক অ্যাপস থাকতে পারে। একটি অ্যাপ একাধিক প্রকল্পে থাকতে পারে।


3

আপনার কেবলমাত্র ক্লায়েন্টের ডেটাবাইন্ডিংয়ের সাথে কয়েকটি পৃষ্ঠা থাকলে আমি নকআউট এবং জাভাস্ক্রিপ্ট নেমস্পেসিংয়ের সাথে যেতে পারি।

নকআউট দুর্দান্ত, বিশেষত আপনার যদি জটিল জটিল অনগ্রসর সামঞ্জস্যতা প্রয়োজন এবং মোটামুটি সোজা ফরোয়ার্ড পৃষ্ঠাগুলি থাকে। আপনি যদি ২ য় পক্ষের উপাদান ব্যবহার করছেন, নকআউটের কাস্টম বাইন্ডিংগুলি সোজা এবং সহজে কাজ করা যায়।

জাভাস্ক্রিপ্ট নেমস্পেসিং আপনাকে আপনার কোড পৃথক এবং পরিচালনাযোগ্য রাখতে দেয়।

var myCo = myCo || {};
myCo.page = {
    init: function(){ ... },
    ...
}

এবং স্ক্রিপ্ট ট্যাগে আপনার অন্যান্য স্ক্রিপ্টগুলি লোড হওয়ার পরে

<script>
    myCo.init();
</script>

মূলটি হ'ল, আপনি যখন প্রয়োজন তখন যে কোনও সরঞ্জামটি ব্যবহার করতে চান use ডেটাবাইন্ডিং দরকার? নকআউট (বা আপনি যা পছন্দ করেন) রুটিং দরকার? sammy.js (বা আপনি যা পছন্দ করেন)।

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


1

আমি যদি বলি যে আপনি কেবল এসপিএ বিকাশ করতে চান তবে অ্যাঙ্গুলার অত্যধিক দক্ষ হয়। অবশ্যই, যদি আপনি এটির সাথে বিকাশ করতে ইতিমধ্যে স্বাচ্ছন্দ্য বোধ করেন তবে এগিয়ে যান। তবে আপনি যদি কাঠামোতে নতুন হন এবং কেবল একটি এসপিএ বিকাশ প্রয়োজন, আমি এর নিজস্ব সুবিধাগুলি দিয়ে আরও সাধারণ কিছু নিয়ে যেতে চাই। আমি Vue.js বা Aurelia.io সন্ধান করার পরামর্শ দিচ্ছি

ভ্যু.জেএস দ্বি-মুখী ডেটা বাঁধাই, এমভিভিএম, পুনরায় ব্যবহারযোগ্য উপাদানগুলি, সহজ এবং পিকআপে দ্রুত, লিখতে কম কোড ইত্যাদি ব্যবহার করে It

অরেলিয়া.আইও , সমস্ত সততার সাথে, আমি এর সম্পর্কে খুব বেশি জানি না। তবে আমি আশেপাশে উঁকি মেরেছি এবং এটি উপরের মতো সন্ধান করার মতো বিকল্প বলে মনে হচ্ছে।

লিঙ্কগুলি:
https://vuejs.org/
http://aurelia.io/

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.