ওয়েব অ্যাপ্লিকেশনগুলিতে ক্লায়েন্ট / সার্ভার আর্কিটেকচারের সুবিধাগুলি কী কী কোনও সার্ভারের দ্বারা তৈরি ফ্রন্টএন্ড অ্যাপ্লিকেশনটির বিপরীতে রয়েছে


13

আমাদের সংস্থায়, আমাদের একটি এম্বেডড লিনাক্স প্ল্যাটফর্মের মধ্যে একটি ওয়েব ইন্টারফেস তৈরি করতে হবে। আমি 2 বিকল্প দেখতে চাই: আপনি এমন একটি প্রযুক্তি ব্যবহার করেন যেখানে সার্ভার সাইডে এইচটিএমএল এবং জাভাস্ক্রিপ্ট উত্পন্ন হয় (থিংক জেএসপি, গ্রিলস, তবে এমন কিছু যা সি ++ ব্যবহার করে এবং এইচটিএমএল / জাভাস্ক্রিপ্ট তৈরি করে) বা আপনি একটি HTML5 'ক্লায়েন্ট' তৈরি করেন অ্যাপ্লিকেশন যা JSON বা XML তৈরির ব্যাকএন্ডে কথা বলে।

আমার অনুভূতি আছে যে ওয়েব অ্যাপ্লিকেশনগুলি বর্তমানে আধুনিকদের সাথে যেতে চায় তবে এটি করার সুবিধা কী কী (প্রকল্পের বিকাশকারীরা প্রাক্তনটিকে বেছে নেন, মূলত তারা সি +++ এর পরে আরও ভাল জানেন এইচটিএমএল এবং জাভাস্ক্রিপ্টের উপর ভিত্তি করে)


যদি বিকাশকারীরা এইচটিএমএল + জেএসের তুলনায় সি ++ এর সাথে বেশি পরিচিত হন তবে তারা পূর্বের সমাধানটির সাথে কেন যান? পরে তাদের কম ঝামেলা করবে, বিশেষত যদি তারা "এইচটিএমএল 5 ক্লায়েন্ট" কে সি ++ ডেস্কটপ অ্যাপ্লিকেশন, বা একটি জাভা অ্যাপলেট বা জেএনএলপি মোতায়েন ডেস্কটপ অ্যাপ্লিকেশন ...
শিবান ড্রাগন

উত্তর:


4

AJAX এর

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

এক্সএমএল নিয়ে আমার প্রচুর অভিজ্ঞতা আছে এবং জেএসএনের সাথে প্রায় কোনওটাই নেই। এক্সএমএল সম্পর্কে আমি যা কিছু জানি তা আমাকে পরামর্শ দেয় যে আপনি যদি সম্ভব হয় তবে জেএসএন ব্যবহার করুন।

AJAX পেশাদাররা:

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

আজাক কনস:

  • ডিফল্ট জাভাস্ক্রিপ্ট
  • জটিলতা?
  • জাভাস্ক্রিপ্টের সাহায্যে আপনি যে জিনিসটি করতে পারেন তা অন্ধ বা প্রতিবন্ধীদের জন্য ব্যবহার করা প্রায়শই সম্পূর্ণ অসম্ভব।
  • মোট আরও কোডের প্রয়োজন হতে পারে (আপনার এম্বেড থাকা ডিভাইসে বড় সামগ্রিক স্টোরেজ)

ক্লায়েন্ট সার্ভার

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

পরিষেবা বনাম অ্যাপ্লিকেশন।

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

সি / ওয়েব

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

আপনার যদি মেমরি বা ফার্মওয়্যার কারণে সি ব্যবহার করতে হয় তবে আপনাকে যা করতে হবে তা হ'ল। শুধু সতর্ক হও!

ব্রাউজার সমর্থন

ওয়েব অ্যাপ্লিকেশন তৈরির প্রথম পদক্ষেপটি আবিষ্কার করছে যে আপনার ব্রায়াররা আপনার ক্লায়েন্টরা ব্যবহার করবেন ? ডাব্লু 3 স্কুল এবং উইকিপিডিয়া উভয়ই সাধারণ পরিসংখ্যানের ভাল উত্স, তবে ওয়াইএমএমভি।

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

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

সারসংক্ষেপ

সমস্ত ওয়েব সাইটগুলি এইচটিএমএল এবং এইচটিটিপিতে নির্মিত। আপনি নিজের অ্যাপ্লিকেশনটি তৈরি করার সময় এই প্রযুক্তিগুলির জন্য একটি ভাল রেফারেন্স পান। এমনকি কোনও সরঞ্জামকিট ব্যবহার করেও অ্যাপ্লিকেশন দেওয়ার সময় আপনি এই সমস্যাগুলি সমাধান করার জন্য এই প্রযুক্তিগুলিকে প্রাথমিক বোঝার প্রয়োজন বলে মনে করবেন।

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

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

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


"ব্রাউজারের মধ্যে জাভাস্ক্রিপ্ট দ্বারা উত্পাদিত এইচটিএমএল কোড যাচাই বা এমনকি দেখার জন্য অনেক সরঞ্জাম সম্পর্কে আমি অবগত নই" ফায়ারব্যাগ এটিই (বা অন্য কোনও ওয়েব বিকাশকারী ব্রাউজার এক্সটেনশান যেমন ক্রোমের ওয়েব বিকাশকারী সরঞ্জাম)।
স্লেসকে

13

পরেরটির সুবিধা রয়েছে যে এটি আপনার "পিছনের প্রান্তকে" একটি জেনেরিক "ডেটা পরিষেবা" করে তোলে (এটি আপনার প্রসঙ্গে যা বোঝাতে পারে)।

আপনার এইচটিএমএল ক্লায়েন্ট তখন সেই ডেটার সম্ভাব্য অনেক গ্রাহকের মধ্যে একটি one আইওএস অ্যাপ, অ্যান্ড্রিওড অ্যাপ্লিকেশন, উইন্ডোজ 8 অ্যাপ্লিকেশন, এপিআই, ইত্যাদি - অন্যান্য গ্রাহক হিসাবে ভাবেন।


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

6

ওয়েব অ্যাপ্লিকেশনটির একটি ক্রমবর্ধমান সাধারণ উপায় হ'ল উভয়টির মিশ্রণ, এক বা অন্য দিকে ঝাঁকুনি।

প্রথম পদ্ধতির অধিক প্রথাগত হয়, বছরের পর বছর ধরে সেখানে হয়েছে এবং এর ভাল, নথিভুক্ত (যদিও C ++ সাধারণত যে জন্য জনপ্রিয় একটি ভাষা নয়)।

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

সর্বোপরি, এটি অন্যান্য সীমাবদ্ধতার উপর নির্ভর করে যেমন টিম পরিচিতি এবং ব্যবসায়ের ক্ষেত্রে।

কিছু প্রশ্ন যা আপনাকে আপনার বিকল্পগুলি মূল্যায়নে সহায়তা করতে পারে:

  1. দলে কি ভাষা এবং প্ল্যাটফর্মের অভিজ্ঞতা আছে?
  2. দলটি নতুন পদ্ধতি এবং প্রযুক্তি শিখতে ইচ্ছুক?
  3. অ্যাপ্লিকেশনটি অন্যান্য ডিভাইসের (আইফোন, অ্যান্ড্রয়েড, উইন্ডোজ 8 ইত্যাদি) আরও সহজে প্রোগ্রামযোগ্য হওয়ার সুবিধা গ্রহণ করে?
  4. অন্যান্য, অভ্যন্তরীণ বা বাহ্যিক অ্যাপ্লিকেশন পরিষেবাগুলি বা ডেটার সাথে সংহত হয়ে কি অ্যাপ্লিকেশনটিতে সক্ষম হবে?

5

এই জাতীয় "ইন্ট্রানেট" অ্যাপ্লিকেশনগুলির জন্য আমি এক্সটجیএস 4 এর সাথে ফ্যাট-ক্লায়েন্ট (জাভাস্ক্রিপ্ট / এইচটিএমএল 5-অ্যাপ্লিকেশন + জেএসএন) ব্যবহার করি।

সাধারণ "ইন্টারনেট" ওয়েবসাইটগুলির জন্য আমি আরও "ধ্রুপদী" পদ্ধতির ব্যবহার করব।

ক্লায়েন্টদের যে কোনও উপায়ে সাইটটি রেন্ডার করতে হবে, সুতরাং কেন তাদের পুরো প্রক্রিয়াটি চার্জ না করে কেবল তাদের পূরণ করার জন্য ডেটা দিন It এটি প্রতিক্রিয়া উত্পন্ন করার জন্য সার্ভার কোডকে কেবলমাত্র সাফ করে তোলে (কেবল প্লেইন জেএসএন বা এক্সএমএল), যা কর্মক্ষমতা সংরক্ষণ করে। সার্ভারের চেয়ে সবসময় আরও বেশি ক্লায়েন্ট থাকার কারণে, ক্লায়েন্টরা আরও কাজ সম্পন্ন করলে পুরো সিস্টেমটি আরও ভাল স্কেল করে।

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

আমি সাধারণ ওয়েবসাইটগুলিতে একটি ধ্রুপদী দৃষ্টিভঙ্গি পছন্দ করার একমাত্র কারণ হ'ল অনুসন্ধান ইঞ্জিন।

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