জাভা সার্ভার ফেস 2.0 এর মূল অসুবিধাগুলি কী কী?


234

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

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

সুতরাং আমার প্রশ্নগুলি হ'ল:

  • জাভা সার্ভার ফেস 2.0 এর মূল অসুবিধাগুলি কী কী?
  • কোন জেএসএফ বিকাশকারী জেএসএফের পরিবর্তে এএসপি.নেট এমভিসি ব্যবহার বিবেচনা করতে পারে?

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

উত্তর:


464

জেএসএফ ২.০ অসুবিধা? সত্যিকার অর্থে, যখন আপনার কাছে ওয়েব ওয়েব ডেভলপমেন্ট (এইচটিএমএল / সিএসএস / জেএস, সার্ভার সাইড বনাম ক্লায়েন্ট সাইড ইত্যাদি) এবং বেসিক জাভা সার্ভলেট এপিআই (অনুরোধ / প্রতিক্রিয়া / সেশন ) সম্পর্কে কোনও শক্ত পটভূমি জ্ঞান না থাকে তখন আপেক্ষিক খাড়া শেখার বক্রতা বাদে , ফরওয়ার্ডিং / পুনঃনির্দেশকরণ ইত্যাদি) কোনও গুরুতর অসুবিধা মাথায় আসে না। জেএসএফকে তার বর্তমান প্রকাশে এখনও প্রাথমিক যুগের সময়ে প্রাপ্ত নেতিবাচক চিত্র থেকে মুক্তি পাওয়া দরকার, যার মধ্যে বেশ কয়েকটি গুরুতর অসুবিধা ছিল।

জেএসএফ 1.0 (মার্চ 2004)

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

জেএসএফ 1.1 (মে 2004)

এটি বাগফিক্স প্রকাশ ছিল। পারফরম্যান্স এখনও খুব একটা উন্নত হয়নি। এর একটি বড় অসুবিধাও ছিল: আপনি জেএসএফ পৃষ্ঠায় নির্বিঘ্নে এইচটিএমএল ইনলাইন করতে পারবেন না। সমস্ত সরল ভ্যানিলা এইচটিএমএল জেএসএফ উপাদান গাছের আগে উপস্থাপন করা হবে । আপনাকে সমস্ত সরল ভ্যানিলা <f:verbatim>ট্যাগগুলিতে আবদ্ধ করতে হবে যাতে তারা জেএসএফ উপাদান উপাদানটিতে অন্তর্ভুক্ত হয়। যদিও এটি স্পেসিফিকেশন অনুযায়ী ছিল, এটি অনেক সমালোচনা পেয়েছে। এও জেএসএফ / ফেসলেটগুলিও দেখুন: কেন এইচটিএমএল ট্যাগের সাথে জেএসএফ / ফেসলেটগুলি মেশানো ভাল ধারণা নয়?

জেএসএফ 1.2 (মে 2006)

রায়ান লুবেকে নেতৃত্বাধীন নতুন জেএসএফ উন্নয়ন দলের এটি প্রথম প্রকাশ ছিল। নতুন দল অনেক দুর্দান্ত কাজ করেছে। জল্পনাও পরিবর্তন ছিল। সবচেয়ে বড় পরিবর্তনটি হ'ল হ্যান্ডলিংয়ের উন্নতি ছিল। এটি কেবল জেএসপি থেকে জেএসএফকে সম্পূর্ণরূপে বিচ্ছিন্ন করে দেয় না, তাই কেউ জেএসপি থেকে আলাদা ভিউ প্রযুক্তি ব্যবহার করতে পারে তবে এটি ডেভেলপারদের <f:verbatim>ট্যাগ ছাড়াই জেএসএফ পৃষ্ঠায় সাদামাটা ভ্যানিলা এইচটিএমএল ইনলাইন করার অনুমতি দেয় । নতুন দলের আরও একটি প্রধান ফোকাস ছিল পারফরম্যান্সের উন্নতি। সূর্যের JSF রেফারেন্স বাস্তবায়ন 1.2 (যা codenamed ছিল জীবদ্দশায় Mojarra বিল্ড 1.2_08 সাল থেকে 2008 কাছাকাছি), কার্যত প্রতি বিল্ড স্বাভাবিক (মাইনর) বাগ পাশে (প্রধান) পারফরম্যান্সের উন্নতি সঙ্গে জাহাজে গিয়েছে।

জেএসএফ 1.x এর একমাত্র গুরুতর অসুবিধা (১.২ সহ) অনুরোধ এবং সেশনের সুযোগের মধ্যে তথাকথিত কথোপকথনের সুযোগের মধ্যে কোনও সুযোগের অভাব । এটি বিকাশকারীদের গোপন ইনপুট উপাদানগুলি, অপ্রয়োজনীয় ডিবি কোয়েরিগুলি এবং / বা সেশন স্কোপটি আপত্তিজনক কারণে ঝামেলা করতে বাধ্য করেছে যখনই যখন কেউ পরবর্তী অনুরোধে প্রাথমিক মডেল ডেটা ধরে রাখতে চায় যাতে আরও কার্যকরভাবে বৈধতা, রূপান্তর, মডেল পরিবর্তন এবং ক্রিয়া আহ্বান প্রক্রিয়া করতে পারে জটিল ওয়েব অ্যাপ্লিকেশন। তৃতীয় পক্ষের লাইব্রেরি গ্রহণ করে ব্যথাটি নরম হতে পারে যা মাইফিসস টমাহাক<t:saveState> উপাদান, জেবস সীম কথোপকথনের সুযোগ এবং মাইফিসস অর্কেস্ট্রা এর মতো পরবর্তী অনুরোধে প্রয়োজনীয় ডেটা ধরে রাখে কথোপকথন কাঠামো।

এইচটিএমএল / সিএসএস পিউরিস্টদের জন্য আরেকটি অসুবিধা হ'ল জেএসএফ উত্পন্ন এইচটিএমএল আউটপুটটিতে :এইচটিএমএল উপাদানটির স্বাতন্ত্র্যতা নিশ্চিত করতে আইডি বিভাজক চরিত্র হিসাবে কোলন ব্যবহার করে id, বিশেষত যখন কোনও অংশে একবারে একাধিক বার পুনঃব্যবহার করা হয় (টেম্প্লেটিং, পুনরাবৃত্ত উপাদানগুলি ইত্যাদি) । যেহেতু এটি সিএসএস শনাক্তকারীদের একটি অবৈধ চরিত্র, আপনার \সিএসএস নির্বাচকগুলিতে কোলন থেকে বাঁচতে ব্যবহার করতে হবে , ফলস্বরূপ কুৎসিত এবং বিশ্রী চেহারা পছন্দকারী #formId\:fieldId {}বা এমনকি পছন্দ করে #formId\3A fieldId {}সিএসএস নির্বাচনকারীদের ":" কোলন ":" সহ জেএসএফ উত্পন্ন HTML উপাদান আইডি কীভাবে ব্যবহার করবেন তা দেখুন তবে, আপনি যদি পিউরিস্ট না হন তবে ডিফল্টরূপেও পড়ুন, জেএসএফ অযোগ্য আইডি উত্পন্ন করে, যা ওয়েব মানের সিএসএস অংশের সাথে সঙ্গতিপূর্ণ নয়

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

জেএসএফ ১.২ এর জীবনকালের প্রায় অর্ধেক, নতুন এক্সএমএল ভিত্তিক ভিউ প্রযুক্তি চালু করা হয়েছিল: ফেসলেটস । এটি জেএসপির উপরে, বিশেষত টেম্প্লেটিংয়ের ক্ষেত্রের উপরে প্রচুর সুবিধা দেয়।

জেএসএফ ২.০ (জুন ২০০৯)

এটি দ্বিতীয় প্রধান প্রকাশ ছিল, এ্যাজাক্সের সাথে বুজওয়ার্ড হিসাবে। প্রযুক্তিগত এবং কার্যকরী পরিবর্তনগুলি অনেক ছিল। JSP ডিফল্ট ভিউ প্রযুক্তি Facelets দ্বারা প্রতিস্থাপিত হয় এবং Facelets বিশুদ্ধ এক্সএমএল (তথাকথিত ব্যবহার কাস্টম উপাদান তৈরি করতে ক্ষমতা খোঁজা হয়েছে যৌগিক উপাদান )। আরও দেখুন কেন Facelets JSF2.0 অগ্রে থেকে দেখুন সংজ্ঞা ভাষা হিসেবে JSP বেশী প্রাধান্য হয়?

এজাক্স শক্তিগুলি <f:ajax>উপাদানটির স্বাদে প্রবর্তিত হয়েছিল যা আজাক্স 4 জেএসএফের সাথে অনেক মিল রয়েছে। যথাসম্ভব ভার্বোজ ফাইলটি মুছে ফেলার জন্য টীকাগুলি এবং কনভেনশন-ওভার-কনফিগারেশন বর্ধনগুলি প্রবর্তিত হয়েছিল faces-config.xml। এছাড়াও, ডিফল্ট নামকরণের ধারক আইডি বিভাজক চরিত্রটি :কনফিগারযোগ্য হয়ে ওঠে, সুতরাং এইচটিএমএল / সিএসএস পিউরিস্টরা স্বস্তির নিঃশ্বাস ফেলতে পারে। আপনাকে যা করতে হবে প্রয়োজন যেমন সংজ্ঞায়িত হয় init-paramমধ্যে web.xmlনাম দিয়ে javax.faces.SEPARATOR_CHARআপনি চরিত্র নিজেকে যেমন ব্যবহার করছেন না যে কোন জায়গায় ক্লায়েন্ট ID এর, এবং নিশ্চিত -

সর্বশেষে তবে অন্তত নয়, একটি নতুন সুযোগ চালু করা হয়েছিল, দেখার সুযোগ। এটি পূর্বে বর্ণিত হিসাবে আরও একটি বড় জেএসএফ 1.x অসুবিধা দূর করেছে। আপনি কেবল @ViewScopedশিমকে পরবর্তী (কথোপকথন) অনুরোধগুলিতে ডেটা ধরে রাখার সমস্ত উপায়ে ঝামেলা ছাড়াই কথোপকথনের সুযোগ সক্ষম করার জন্য ঘোষণা করুন । একটি @ViewScopedশিম যতক্ষণ না আপনি পরবর্তী সময়ে একই দৃশ্যে (খোলা ব্রাউজার ট্যাব / উইন্ডো থেকে স্বতন্ত্রভাবে!) হয় তা সিঙ্ক্রোনালি বা অ্যাসিনক্রোনাসলি (অ্যাজাক্স) অবধি বেঁচে থাকবে। আরও দেখুন পরিচালিত মটরশুটি দেখুন এবং অনুরোধ সুযোগ মধ্যে পার্থক্য এবং কিভাবে সঠিক শিম সুযোগ পছন্দ করে নিন?

যদিও কার্যত জেএসএফ 1.x এর সমস্ত অসুবিধাগুলি অপসারণ করা হয়েছে, সেখানে জেএসএফ ২.০ নির্দিষ্ট বাগ রয়েছে যা শোস্টোপারে পরিণত হতে পারে। @ViewScopedট্যাগ হ্যান্ডেলার ব্যর্থ আংশিক রাষ্ট্র সংরক্ষণে একটি মুরগির ডিম সমস্যার কারণে। এটি জেএসএফ ২.২ এ স্থির এবং মোজারার ২.১.১৮ এ ব্যাকপোর্ট করা হয়েছে। এছাড়াও কাস্টম বৈশিষ্ট্যাবলী ক্ষণস্থায়ী HTML5 এর মতdata-xxx সমর্থিত নয়। এটি জেএসএফ ২.২ এ নতুন পাসথ্রু উপাদান / বৈশিষ্ট্য বৈশিষ্ট্য দ্বারা স্থির করা হয়েছে। আরও জেএসএফ বাস্তবায়ন মোজারার নিজস্ব ইস্যুগুলির একটি সেট রয়েছে । তুলনামূলকভাবে তাদের অনেকগুলিই কখনও কখনও অনিয়ন্ত্রিত আচরণের<ui:repeat> সাথে সম্পর্কিত হয় , নতুন আংশিক রাষ্ট্রীয় সংরক্ষণ বাস্তবায়ন এবং দুর্বলভাবে প্রয়োগ করা ফ্ল্যাশ সুযোগের সাথে সম্পর্কিত । তাদের বেশিরভাগ মোজারার ২.২.x সংস্করণে স্থির রয়েছে।

জেএসএফ ২.০ সময় জুড়ে, প্রাইমফ্রিজগুলি jQuery এবং jQuery UI এর ভিত্তিতে প্রবর্তিত হয়েছিল। এটি সর্বাধিক জনপ্রিয় জেএসএফ উপাদান লাইব্রেরিতে পরিণত হয়েছে।

জেএসএফ 2.2 (মে 2013)

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

নির্দিষ্ট বাগ এবং কিছু "বিরক্তিকর ছোট জিনিস" বাস্তবায়ন ব্যতীত বৈধতা প্রদানকারী / রূপান্তরকারী (ইতোমধ্যে জেএসএফ ২.৩-এ সংশোধিত) কোনও ইজেবি ইনজেক্ট করতে অক্ষমতা, জেএসএফ ২.২ স্পেসিফিকেশনে সত্যিকারের বড় অসুবিধাগুলি নেই।

উপাদান ভিত্তিক এমভিসি বনাম অনুরোধ অনুরোধ এমভিসি

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

আরো দেখুন:


5
স্কোপগুলি সম্পর্কিত: জাভা EE 6 এ এমন একটি সুযোগ ব্যবহার করাও সম্ভব যা বিভিন্ন দর্শনগুলির জন্য অনুরোধকে বিস্তৃত করে। এটি সিডিআই কথোপকথনের সুযোগ। যদিও প্রযুক্তিগতভাবে জেএসএফের অংশটি যথাযথ নয়, এটি জেএসএফের সাথে এত ভাল সংহত করেছে যে এটি একটি দেশীয় জেএসএফ সুবিধার মতো বোধ করে।
আরজান তিজমস

3
তবুও, ইউআই: পুনরাবৃত্তি সংশোধন করা দরকার এবং নেস্টেড এইচ: ডেটা টেবিল + এজ্যাক্স সহ বাগগুলি প্রকাশের এক বছরেরও বেশি সময় পরে করুণাময়। সত্যিই দুঃখের বিষয়, কারণ দুটি সমস্যার জন্য না হলে আমি সকল ওয়েব অ্যাপ্লিকেশন বিকাশের সমাধান হিসাবে যে কাউকে জেএসএফ 2.0 সুপারিশ করব ।
fdreger

1
উত্তম উত্তর তবে আমার মনে হয় পরীক্ষার বিষয়ে কিছু যুক্তি মিস করুন। জেএসএফ পরীক্ষা করা শক্ত। এএসপি.এনইটি এমভিসি টিডিডি প্রস্তুত।
গুয়াইডো79

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

1
বড় অসুবিধা হ'ল গ্রহন আইডিইতে এর মধ্যযুগীয় সংহতকরণ যার সাথে কোনও রিফ্যাক্টরিং সমর্থন, খারাপ ওয়েবফ্র্যাগমেন্ট সমর্থন, খারাপ সার্ভার ইন্টিগ্রেশন, না click and go to component or include, উপাদান / ট্যাগগুলির নির্ভরতা গ্রাফ এবং নিজস্ব বা তৃতীয় পক্ষের ট্যাগগুলির জন্য কোনও মেনু নেই। আমি কোথায় অংশ বা ফাংশন এক্স ব্যবহৃত হয় তা বুঝতে প্রজেক্টের প্রশস্ত অনুসন্ধানগুলি সম্পাদন করতে অনেক সময় ব্যয় করি।
djmj

56

জেএসএফের সাথে 5 বছর কাজ করার পরে, আমি মনে করি যে আমি আমার 2 সেন্ট যোগ করতে পারি।

দুটি বড় জেএসএফ ত্রুটি:

  1. বড় শেখার বাঁক জেএসএফ জটিল, এটি ঠিক সত্য।
  2. এর উপাদান প্রকৃতি। কম্পোনেন্ট-ভিত্তিক কাঠামো ওয়েবে প্রকৃত প্রকৃতিটি আড়াল করার চেষ্টা করে, যা বিপুল পরিমাণ জটিলতা এবং বিপর্যয় নিয়ে আসে (প্রায় 5 বছরের মধ্যে জেএসএফ-তে জিইটি সমর্থন না করার মতো)।
    আইএমএইচও বিকাশকারীদের কাছ থেকে এইচটিটিপি অনুরোধ / প্রতিক্রিয়া লুকিয়ে রাখা একটি বিশাল ভুল orm আমার অভিজ্ঞতা থেকে, প্রতিটি উপাদান-ভিত্তিক কাঠামো ওয়েব বিকাশে বিমূর্ততা যুক্ত করে, এবং যে বিমূর্তনের ফলে অপ্রয়োজনীয় ওভারহেড এবং উচ্চতর জটিলতা দেখা দেয়।

এবং ছোট ছোট ঘাটতিগুলি যা আমার মনে আসে:

  1. ডিফল্টরূপে আইডিটির আইডি তার পিতামাতার আইডিস সমন্বিত হয়, উদাহরণস্বরূপ ফর্ম 1: বাটন 1।
  2. ভুল পৃষ্ঠাটির খণ্ড মন্তব্য করার সহজ উপায় নেই। ট্যাগ <ui:remove>চিহ্নগুলি সিন্টেক্সের সঠিক বিষয়বস্তু যা যাহাই হউক না কেন পার্স করা হয় প্রয়োজন।
  3. নিম্নমানের তৃতীয় পক্ষের উপাদান যা উদাহরণস্বরূপ চালিয়ে যাওয়ার আগে isRendered()অভ্যন্তরীণ processXxx()পদ্ধতিটি চেক করে না ।
  4. কম ও সেনচাকে অন্তর্ভুক্ত করা শক্ত।
  5. আরআরএসটি দিয়ে ভাল খেলছে না।
  6. ইউএক্স ডিজাইনারদের পক্ষে এত সহজ নয়, কারণ ব্যবহারের জন্য প্রস্তুত উপাদানগুলির নিজস্ব সিএসএস শৈলী রয়েছে, সেগুলি ওভাররাইট করা দরকার।

আমাকে ভুল করবেন না। সংস্করণ 2-এর একটি উপাদান ফ্রেমওয়ার্ক হিসাবে জেএসএফ সত্যিই ভাল, তবে এটি এখনও উপাদান-ভিত্তিক, এবং সর্বদা থাকবে ...

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

আমার জন্য এটি বড় জেএসএফ অসুবিধা। আইএমএইচও জেএসএফ কিছু ধরণের অ্যাপ্লিকেশন (ইন্ট্রানেট, ফর্ম-নিবিড়) মামলা করতে পারে তবে বাস্তব জীবনের ওয়েব অ্যাপ্লিকেশনটির জন্য এটি যাওয়ার ভাল উপায় নয়।

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



1
এটি অবশ্যই বড় সাইট হ্যান্ডেল করতে পারে irctc.co.in জেএসএফ-এ রয়েছে যা ভারতের বৃহত্তম ইকমার্স সাইট। । । তবে হ্যাঁ জেএসএফের সাথে আপনার উত্পন্ন ইউআই তে খুব বেশি নিয়ন্ত্রণ নেই।
নির্ভয় মিশ্র

2
আপনি কি একটি সংজ্ঞা দিতে পারেন real-life web application? এছাড়াও জেএসএফ অনুরোধ / প্রতিক্রিয়া প্রকৃতিটি লুকিয়ে রাখে, এটি সত্য হতে পারে, তবে এটি প্রোগ্রামারদের কীভাবে আচ্ছাদনগুলির আওতায় চলেছে তা জবাবদিহিতা। আপনি যদি HTTP কীভাবে কাজ করে তা জানেন না, তবে জেএসএফ বা অন্য কোনও কাঠামোর আগে এটি শিখুন।
এক্সট্রিম বাইকার

25

মনে পড়ছে যে কয়েকটি ত্রুটি:

  1. জেএসএফ একটি উপাদান-ভিত্তিক কাঠামো। এতে অন্তর্নিহিত বিধিনিষেধ রয়েছে যা উপাদান-মডেলকে মান্য করে।
  2. আফাইক জেএসএফ কেবল পোস্টকে সমর্থন করে, সুতরাং আপনি কোথাও জিইটি চাইলে আপনাকে একটি সরল সার্লেট / জেএসপি করতে হবে।
  3. বেশিরভাগ উপাদানগুলি রিলেশনাল ডাটাবেস এবং ফ্রন্ট-এন্ড জাভাস্ক্রিপ্টের মতো ডোমেনগুলিতে বিমূর্ততা সরবরাহ করার চেষ্টা করে এবং অনেক সময় এই বিমূর্ততাগুলি "ফাঁস" এবং ডিবাগ করা খুব শক্ত।
  4. এই বিমূর্ততা জুনিয়র বিকাশকারী বা নির্দিষ্ট ডোমেন (যেমন ফ্রন্ট-এন্ড জাভাস্ক্রিপ্ট) এর সাথে স্বাচ্ছন্দ্য বোধ না করে এমন ব্যক্তিদের পক্ষে ভাল সূচনার পয়েন্ট হতে পারে তবে বেশ কয়েকটি স্তর জড়িত থাকার কারণে এবং বেশিরভাগ লোক যারা তাদের ব্যবহার করে তাদের পক্ষে পারফরম্যান্সের জন্য অনুকূল করা খুব শক্ত might হুডের নীচে কী চলছে তা সম্পর্কে সামান্য বোঝাপড়া আছে।
  5. সাধারণত জেএসএফ-এর সাথে ব্যবহৃত টেম্প্লেটিং মেকানিজমগুলির ওয়েব ডিজিজাররা কীভাবে কাজ করে তার কোনও সম্পর্ক নেই। জেএসএফের জন্য ডাব্লুওয়াইএসআইওয়াইওয়াইজি সম্পাদকগুলি আদিম এবং যে কোনও ক্ষেত্রে, আপনার ডিজাইনার আপনাকে এইচটিএমএল / সিএসএস দেবে যা আপনাকে রূপান্তরিত করার জন্য যুগে যুগে কাটাতে হবে।
  6. EL এক্সপ্রেশনগুলির মতো জিনিসগুলি স্থিতিশীলভাবে চেক করা হয় নি এবং সংকলক এবং আইডিই উভয়ই ত্রুটিগুলি সন্ধানে ভাল কাজ করছে না, তাই আপনার রান-টাইমে ধরা পড়তে হবে এমন ত্রুটিগুলি শেষ করবেন। এটি রুবি বা পিএইচপি এর মতো গতিময় টাইপিত ভাষার জন্য ভাল হতে পারে তবে জাভা বাস্তুতন্ত্রের নিখরচায় আমি যদি প্রতিরোধ করতে পারি তবে আমি আমার টেমপ্লেটগুলির জন্য টাইপ করার দাবি করছি।

সংক্ষিপ্তসার: জেএসএফ / সার্লেট / শিমের বয়লারপ্লেট কোডটি লিখতে এড়ানো থেকে আপনি যে সময় জেএসএফের সাথে সঞ্চয় করবেন, আপনি এটি স্কেল করতে এবং এটি করতে চান ঠিক তেমন করতে 10 x ব্যয় করেছেন।


15
তিনি স্পষ্টতই জেএসএফ 1.x কে উল্লেখ করছেন এবং এটি অনুরোধ ভিত্তিক এমভিসি কাঠামো মাথায় রেখে একটি উপাদান ভিত্তিক এমভিসি কাঠামোটি অবলম্বন করছেন।
বালুস সি

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

19
@ বালাসসি যদি আমাকে অসম্মানজনক মনে হয় তবে আমাকে ক্ষমা করুন, তবে প্রশ্নটি জেএসএফ 1 বনাম জেএসএফ 2 নয় এবং আপনার জবাব যা "জেএসএফের ইতিহাস" এর মতো পড়ে তা অপ্রাসঙ্গিক। এছাড়াও আপনার দাবি যে জেএসএফের "কোনও গুরুতর অসুবিধাগুলি" নেই এমন মৌলিক ইঞ্জিনিয়ারিং নীতিটি স্বীকার করতে ব্যর্থ হয় যে সমস্ত সরঞ্জামগুলির সীমাবদ্ধতা এবং তাদের ডোমেন রয়েছে যেখানে তারা অন্যান্য সমাধানগুলি সম্পাদন করে।
কে প্যালে

24
আমি জেএসএফ ২.০ পুরানো অসুবিধাগুলি কীভাবে মুছে ফেলেছে তা শিখতে ইতিহাসটিকে অত্যন্ত প্রাসঙ্গিক বলে মনে করি কারণ এটি হ'ল সেই অসুবিধাগুলি যা জেএসএফকে ইতিহাসে নেতিবাচক ইমামগো দিয়েছে। বাকী অংশগুলি সম্পর্কে, তবে আমাদের কেবল মতভেদ আছে।
বালাসসি

5
আপনি কেন "উপাদান ভিত্তিক" কে অসুবিধে হিসাবে তালিকাভুক্ত করেন তা আমি সত্যই বুঝতে পারি না। এটি "http এর অসুবিধাটি হ'ল এটি রাষ্ট্রহীন" বলার মতো .. এটি সম্পাদনা করা উচিত। অবশ্যই কখনও কখনও সত্য যে এইচটিএস রাষ্ট্রবিহীন, তবে কখনও কখনও এটি হ'ল আমরা কেন এটি ব্যবহার করি। জেএসএফের ক্ষেত্রেও তাই।
arg20

19

আমার কাছে জেএসএফ ২.০ এর সবচেয়ে বড় অসুবিধা হ'ল কেবল জেএসএফের শেখার বক্ররেখা নয়, আপনাকে প্রয়োজনীয় উপাদানগুলি গ্রন্থাগারগুলি কাজে লাগানোর জন্য ব্যবহার করতে হবে। আপনি যে দক্ষতার সাথে দক্ষ হয়ে ওঠেন সে সম্পর্কে উল্লেখ করুন:

  • বিভিন্ন অবতারে এইচটিএমএল। ভান করবেন না আপনার এটি জানা দরকার নেই।
  • এইচটিটিপি - আপনি কী করতে যাচ্ছেন তা বুঝতে না পারলে আপনাকে ফায়ারব্যাগটি খুলতে হবে এবং দেখতে হবে। তার জন্য আপনার এটি জানতে হবে।
  • সিএসএস - এটি পছন্দ করুন বা না করুন। এটি আসলে খুব খারাপ নয় এবং কমপক্ষে কিছু সুন্দর সরঞ্জাম রয়েছে।
  • এক্সএমএল - জেএসএফ সম্ভবত আপনি এই ডিগ্রীতে নেমস্পেস ব্যবহার করে প্রথম স্থান।
  • পরিবেশন নির্দিষ্টকরণ। যত তাড়াতাড়ি বা পরে আপনি এই প্যাকেজে কলিং পদ্ধতিতে প্রবেশ করতে পারেন। এ ছাড়াও আপনাকে জানতে হবে কীভাবে আপনার ফেসলেটগুলি এক্সএইচটিএমএল বা যা কিছুতে রূপান্তরিত হয়।
  • জেএসপি (বেশিরভাগ ক্ষেত্রে আপনি জেএসএফে এটির প্রয়োজন নেই কেন জানেন)
  • জেএসটিএল (আবার বেশিরভাগ ক্ষেত্রে উত্তরাধিকার কাঠামোর সাথে লড়াই করতে)
  • এক্সপ্রেশন ল্যাঙ্গুয়েজ (EL) এর বিভিন্ন রূপে।
  • ECMAScript, জাভাস্ক্রিপ্ট বা অন্য যে কোনও কিছুতে আপনি এটি কল করতে চান।
  • JSON - আপনি এটি ব্যবহার না করেও আপনার এটি জানা উচিত।
  • AJAX এর। আমি বলব জেএসএফ ২.০ আপনার কাছ থেকে এটি লুকিয়ে রাখার একটি সুনির্দিষ্ট কাজ করে তবে আপনার এখনও কী হবে তা জানতে হবে।
  • ডিওএম এবং একটি ব্রাউজার এটি কীভাবে ব্যবহার করে। ECMAScript দেখুন।
  • ডোম ইভেন্টস - নিজেই একটি বিষয়।
  • জাভা পার্সিস্টিশন আর্কিটেকচার (জেপিএ) হ'ল যদি আপনি আপনার অ্যাপ্লিকেশনটির কোনও ব্যাক এন্ড ডেটা বেস করতে চান।
  • জাভা নিজেই।
  • আপনি যখন রয়েছেন তখন জেএসইই।
  • প্রসঙ্গ নির্ভরতা ইনজেকশন স্পেসিফিকেশন (সিডিআই) এবং এটি কীভাবে সংঘর্ষে জেএসএফ ২.০ এর সাথে ব্যবহৃত হয়
  • জিকুয়েরি - আমি আপনাকে এটি ছাড়া এটি চালিয়ে যেতে দেখতে চাই।

এখন, একবার আপনি এটি সম্পন্ন করার পরে মালিকানা সংক্রান্ত নির্দিষ্টকরণগুলি, যথা উপাদান উপাদান লাইব্রেরি এবং সরবরাহকারী লাইব্রেরিগুলি আপনি বেছে নিতে পারবেন:

  • প্রাইমফিস (আমার পছন্দের উপাদান লাইব্রেরি)
  • RichFaces
  • MyFaces
  • ICEFaces
  • EclipseLink (আমার জেপিএ সরবরাহকারী)
  • হাইবারনেট
  • দৃঢ়ভাবে সংযুক্ত করা

এবং ধারক ভুলবেন না! এবং এই সমস্ত কনফিগারেশন ফাইল:

  • গ্লাস ফিশ (2, 3, ইত্যাদি)
  • JBoss
  • হুল বিড়াল

সুতরাং - এটি সহজেই তৈরি করছে? অবশ্যই, জেএসএফ ২.০ যতক্ষণ না আপনি করতে চান ততক্ষণ সহজ ইন্টারঅ্যাকশন সহ সবচেয়ে বেসিক ওয়েব পৃষ্ঠাগুলি with

সহজ কথায় বলতে গেলে, জেএসএফ ২.০ হ'ল আজকের সফ্টওয়্যার মহাবিশ্বে বিদ্যমান গ্লুইড একসাথে প্রযুক্তির মধ্যে সবচেয়ে জটিল এবং জটিল সমস্যা। আমি বরং যেটি ব্যবহার করব সে সম্পর্কে আমি ভাবতে পারি না।


42
এর বেশিরভাগই অন্য কোনও ওয়েব কাঠামোর ক্ষেত্রেও প্রযোজ্য। এটি কীভাবে জেএসএফের দোষ যে এটির সাথে উত্পাদনশীল হওয়ার জন্য আপনাকে jQuery জানতে হবে?
অ্যাড্রিয়ান গ্রিগোর

8
জেএসএফ হ'ল ভিউ লেয়ার। এখন আপনি বোঝাচ্ছেন যে অন্যান্য প্রযুক্তিগুলির সাথে আপনার এই সমস্ত কিছু জানার দরকার নেই, দয়া করে আমাদের কোনটি প্রদর্শন করতে পারেন?
arg20

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

আমি @ অ্যালানবজেক্টের প্রতিরক্ষাতে আসতে চাই ... আমার মনে হয় তিনি সম্ভবত মালিকানাধীন বলে বোঝাতে চেয়েছিলেন, যেমন সমস্ত ওপেন সোর্স প্রকল্পগুলি আসলে কারও দ্বারা "মালিকানাধীন" .. উদাহরণস্বরূপ মাইএসকিউএল নিন। তারা যখন ওরাকলকে বিক্রি করেছিল তখন তারা সত্যিই বড় স্কোর করেছে। এছাড়াও, জাভা !! সুতরাং, বহুবার ওপেন সোর্স প্রকল্পগুলি, যদিও সেগুলি ব্যবহার / সম্পাদিত / অবদানের জন্য উন্মুক্ত, তবুও আপনি বর্তমানে ব্যবহার করছেন এমন প্রতিটি ওপেন সোর্স সরঞ্জামের অন্তর্নিহিত স্পেসিফিকেশনের সাপেক্ষে। কারও দ্বারা "মালিকানাধীন" হওয়ার কারণে। এগুলি ব্যবহারের জন্য প্রয়োজনীয় চশমাগুলি আপনি এড়িয়ে যেতে পারবেন না। এটি একটি খারাপ জিনিস নয় :)
সিএ মার্টিন

13
  1. অনভিজ্ঞ ডেভেলপাররা সাধারণত এমন অ্যাপ্লিকেশন তৈরি করে যা বেদনাদায়কভাবে ধীর হয় এবং কোডটি সত্যই খারাপ এবং রক্ষণাবেক্ষণ করা শক্ত। এটি শুরু করার জন্য ছদ্মবেশী সহজ, তবে আপনি যদি ভাল প্রোগ্রাম লিখতে চান তবে আসলে শেখার ক্ষেত্রে কিছুটা বিনিয়োগের প্রয়োজন।
  2. কমপক্ষে শুরুতে আপনি প্রায়শই কোনও সমস্যায় "আটকে" থাকবেন এবং আসলে কাজ করার চেয়ে ইন্টারনেটে বালাস্ক পোস্টগুলি পড়তে বেশি সময় ব্যয় করবেন :) কিছুক্ষণ পরে এটি এর চেয়ে কম হবে তবে এটি এখনও বিরক্তিকর হতে পারে।
  3. আরও বিরক্তিকর যখন আপনি জানতে পারেন যে সমস্যাটি আপনার জ্ঞানের অভাব / ভুলের কারণে নয় তবে আসলে একটি বাগ। মোজাররা বেশ বগি (এবং?) ছিল এবং উপাদানগুলির আরেকটি স্তর আরও বেশি সমস্যা যুক্ত করেছিল। রিচফেসগুলি সর্বকালের রচিত ক্রেপ সফ্টওয়্যারটির সবচেয়ে বড় অংশ ছিল :) জানেন না এটি এখন ৪ সংস্করণে কীভাবে রয়েছে। আমাদের প্রাইমফেস রয়েছে যা আরও ভাল but তবে আপনারা বিশেষত আরও বহিরাগত উপাদানগুলির সাথে বাগগুলি বা বৈশিষ্ট্যের অভাবে চলে যাবেন। এবং এখন আপনাকে প্রাইমফেস আপডেটগুলির জন্য অর্থ প্রদান করতে হবে। সুতরাং আমি এটির বগিটি বলতে চাই তবে এটি ভাল হয়ে উঠছে বিশেষত ২.২ সংস্করণ অনুসারে কিছু সমস্যা সমাধান করেছে। ফ্রেমওয়ার্ক আরও পরিপক্ক হয়ে উঠছে তবে এখনও নিখুঁত থেকে দূরে রয়েছে (সম্ভবত মাইফেসগুলি আরও ভাল?)।
  4. আমি এটি বিশেষভাবে নমনীয় মনে করি না। প্রায়শই যদি আপনার খুব খুব কাস্টমাইজড কিছু প্রয়োজন হয় এবং এমন কোনও উপাদান নেই যা এটি করে - এটি কিছুটা বেদনাদায়ক হবে be আবার আমি গড় বিকাশকারী দৃষ্টিকোণ থেকে কথা বলছি - সময়সীমার সাথে একটি, দ্রুত পড়ার টিউটোরিয়াল, এবং আটকে যাওয়ার সময় স্ট্যাকওভারফ্লো অনুসন্ধান করা কারণ এটি কীভাবে কার্যকর তা শেখার সময় নেই :) প্রায়শই কিছু উপাদান আপনার প্রয়োজনের "প্রায়" থাকে বলে মনে হয় তবে ঠিক না এবং কখনও কখনও আপনি এটি নিজের পছন্দমতো করতে খুব বেশি সময় ব্যয় করতে পারেন :) মূল্যায়ন করতে সতর্কতা অবলম্বন করা উচিত যদি এটি নিজের তৈরি করতে বা বিদ্যমান উপাদানটিকে অত্যাচার করা ভাল হয়। আসলে যদি আপনি সত্যিই অনন্য কিছু তৈরি করে থাকেন তবে আমি জেএসএফের সুপারিশ করব না।

সংক্ষেপে আমার অসুবিধাগুলি হ'ল জটিলতা, খুব মসৃণ বিকাশের অগ্রগতি নয়, বগি, জটিল।

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


11

"জেএসএফ ভিউ-লেয়ার এইচটিএমএল এবং জাভাস্ক্রিপ্ট আউটপুট দেবে যা আপনি নিয়ন্ত্রণকারী কোডে না গিয়ে নিয়ন্ত্রণ করতে বা পরিবর্তন করতে পারবেন না।"

আসলে জেএসএফ আপনাকে নমনীয়তা দেয়, আপনি হয় মানক / তৃতীয় পক্ষের উপাদানগুলি ব্যবহার করতে পারেন বা নিজের তৈরি করতে পারেন যা রেন্ডার হয় তার উপরে আপনার সম্পূর্ণ নিয়ন্ত্রণ থাকে। এটি কেবলমাত্র একটি এক্সএইচটিএমএল আপনার জেএসএফ 2.0 দিয়ে আপনার কাস্টম উপাদান তৈরি করতে হবে।


11

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

শুধু আমার দুই সেন্ট।


এবং এটি ভুলে যাবেন না যে প্রতিটি ক্লায়েন্টের কাঠামোটির সুরক্ষা, বৈধতা ইত্যাদির জন্য একটি এয়ারভারসাইড প্রতিরূপ প্রয়োজন
কুটক্টজে

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

10

আমরা জেএসএফের সাথে একটি নমুনা প্রকল্প তৈরি করেছি (এটি তিন সপ্তাহের গবেষণা ছিল যাতে আমরা কিছু জিনিস হারাতে পারি!)

আমরা কোর জেএসএফ ব্যবহার করার চেষ্টা করি, যদি কোনও উপাদান প্রয়োজন হয় আমরা প্রাইমফ্রিজ ব্যবহার করি।

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

সাইটটিতে দুটি ইউজকেস রয়েছে:

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

আমরা ঔটা দেখেছিলাম:

  1. জেএসএফ দর্শন স্থির করার জন্য আপনাকে ওমনিফিক্স থেকে কিছু হ্যাক ব্যবহার করতে হবে। আপনি একে অপরের মধ্যে এজাক্সের মাধ্যমে পৃষ্ঠাগুলি অন্তর্ভুক্ত করলে জেএসএফ রাষ্ট্রটি দূষিত হবে। এটি জেএসএফ-তে একটি ত্রুটি বলে মনে হচ্ছে এবং পরবর্তী প্রকাশে এটি স্থির করা হতে পারে (২.৩-এ নয়)।
  2. জেএসএফ ফ্লো আজাক্সের সাথে সঠিকভাবে কাজ করছে না (বা আমরা এটি কার্যকর করতে পারিনি!) আমরা এর পরিবর্তে প্রাইমফেস উইজার্ড উপাদানটি ব্যবহার করার চেষ্টা করি তবে ক্লায়েন্টের বৈধতাটি সমর্থিত নয় এবং এর অর্থ এটি জেএসএফ প্রমিত স্ট্যান্ডার্ড নয় while
  3. JqGird এর মতো কিছু jQuery উপাদান ব্যবহার করার সময় এবং আপনাকে JSON ফলাফলগুলি লোড করতে হবে, তখন আপনাকে খাঁটি সার্লেট ব্যবহার করার পরামর্শ দেওয়া হচ্ছে, জেএসএফ আপনার জন্য কিছুই করবে না। সুতরাং আপনি যদি এই ধরণের উপাদান ব্যবহার করেন তবে আপনার নকশাটি জেএসএফের সাথে খাপ খায় না।
  4. এজ্যাক্স সম্পূর্ণ হয়ে গেলে আমরা কয়েকটি ক্লায়েন্ট স্ক্রিপ্ট করার চেষ্টা করি ajaxCompleteএবং আমরা দেখতে পেলাম যে পিএফ 4 তার নিজস্ব এজ্যাক্স ইভেন্টগুলি কার্যকর করেছে। আমাদের কিছু jQuery উপাদান ছিল এবং আমাদের তাদের কোড পরিবর্তন করতে হবে।

যদি আপনি উপরের নমুনাটি একটি অজ্যাক্স প্রকল্পে (বা কমপক্ষে কম এজ্যাক্স প্রকল্পে) পরিবর্তন করেন তবে আপনাকে উপরের প্রচুর সমস্যার মুখোমুখি হবেন না।

আমরা আমাদের গবেষণার সংক্ষিপ্তসার হিসাবে:

জেএসএফ একটি সম্পূর্ণ এজ্যাক্স বেস ওয়েবসাইটে ভাল কাজ করছে না।

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

জেএসএফ সুবিধাগুলি পর্যালোচনা করার জন্য দয়া করে জেএসএফ প্রযুক্তিগত নথিগুলি দেখুন এবং আমার মতে জেএসএফের সবচেয়ে বড় সুবিধা হ'ল @ বালাসক ;-) এর সম্পূর্ণ এবং বিশাল সমর্থন support


6

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

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

তবে মনে হয় জেএসএফ সম্প্রদায় এই ত্রুটিগুলি সম্পর্কে সচেতন। আপনি এই দুটি বাগ থেকে দেখতে পাচ্ছেন তারা এই বিষয়ে কাজ করছেন
http://java.net/jira/browse/JAVASERVERFACES-1309
http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-599

কমপক্ষে যদি আমরা স্পেসিফিকেশন সম্পর্কে কথা বলি তবে জেএসএফ ২.২ এর সাথে পরিস্থিতি আরও ভাল হওয়া উচিত।


6

আমার প্রথম কয়েক মাসের প্রাইমফেস / জেএসএফ অভিজ্ঞতার বিষয়ে মন্তব্য:

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

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

এটি একটি সময় ডুবন্ত - যদি না আপনি আবার "তাক থেকে বন্ধ" স্টাফ ব্যবহার না করেন। সেলেনিয়ামের সাথে কাজ করার সময় সত্যই কুরুচিপূর্ণ (প্রাইমফেস) এটি সব করা যায় - তবে আবার - কেবলমাত্র অনেক সময় আছে।

আপনি যদি কোনও ইউএক্স / ডিজাইন দলের সাথে কাজ করছেন এবং ইউআই-তে দ্রুত পুনরাবৃত্তি করতে হবে তবে অবশ্যই এটিকে এড়িয়ে চলুন - আপনি jquery শিখতে / সরাসরি এইচটিএমএল লেখার মাধ্যমে - বা প্রতিক্রিয়া / কৌনিকটি দেখে সময় সাশ্রয় করতে পারেন।


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

এখানে একটি সেলেনিয়াম উদাহরণ। এইচটিএলএম চেকবাক্স: <input type="checkbox" name="versionsTab" value="version1"> প্রাইমফেসগুলি চেকবক্স: <div class="ui-chkbox ui-widget"> <div class="ui-helper-hidden-accessible"> <input type="checkbox" name="datasetForm:tabView:versionsTable_checkbox"> </div> <div class="ui-chkbox-box ui-widget ui-corner-all ui-state-default"> <span class="ui-chkbox-icon ui-c"></span> </div> </div> সেলেনিয়াম প্রকৃত চেকবক্সটি লুকিয়েছে না find উদাহরণস্বরূপ, আমি এটি নির্বাচক / কোডিং / ইত্যাদির সাথে খুঁজে পেতে পারি কিন্তু প্রযুক্তিগত নয় এমন QA দলটি পারে নি
rprasad

1
আপনি সংক্ষিপ্ত নাম বলতে চান? সৌন্দর্য দর্শকের চোখে পড়ে। আপনি যদি কিছুটা এক্সপথ শিখেন তবে এটিকে অনেক ঝামেলা ছাড়াই ছড়িয়ে দেওয়া যেতে পারে। এবং এটি কোনও বিশেষত কোনও পিএফ জিনিস নয়। এবং নকশা দলের জিনিস সম্পর্কিত। তাদের টেমপ্লেটটি ডিজাইন করুন এবং বাকীগুলির জন্য jquery-ui নির্দেশিকা মেনে চলুন। আমাদের জন্য নিখুঁতভাবে কাজ করেছেন ...
কুকল্টজে

আমি প্রকল্পটিতে পরে যোগ দিয়েছি তবে এই উপস্থাপনাটির অনুরূপ সমস্যাগুলি যেখানে বুটফেসগুলি দিয়ে প্রকল্প শুরু হয়েছিল তবে সত্যই পূর্ণ বুটস্ট্র্যাপের প্রয়োজন (+ প্রাইমফেস): oracleus.activeevents.com/2014/connect/…
rprasad

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

1

জেএসএফের অনেক সুবিধা রয়েছে, প্রশ্নটি অসুবিধে হচ্ছে আমাকে এতে কয়েকটি পয়েন্ট যুক্ত করতে দিন।

একটি ওয়েব প্রকল্প বাস্তবায়নের একটি বাস্তব সময়ের সাথে একটি সময় ফ্রেমে আপনাকে নিম্নলিখিত বিষয়গুলির উপর নজর রাখতে হবে।

  • আপনার দলে কি পর্যাপ্ত প্রবীণ সদস্য আছেন যারা প্রতিটি দৃশ্যের জন্য উপযুক্ত সেরা নিয়ন্ত্রণের পরামর্শ দিতে পারেন?
  • প্রাথমিক শিখনের বক্ররেখার জন্য কী আপনার কাছে ব্যান্ডউইথ আছে?

  • আপনার কি আপনার দলে পর্যাপ্ত দক্ষতা আছে
    যা বিকাশকারীদের দ্বারা উত্পাদিত জেএসএফ স্টাফ পর্যালোচনা করতে পারে ?

যদি প্রশ্নের উত্তরগুলির জন্য 'না' হয় তবে আপনি একটি রক্ষণাবেক্ষণযোগ্য কোডবেজে শেষ করতে পারেন।


0

জেএসএফের একটি অসুবিধা রয়েছে: "জেএসএফ" বিকাশ শুরু করার আগে আপনার ওয়েব ডেভলপমেন্ট, কোর জাভা এবং ফ্রন্ট-এন্ড আর্কিটেকচারটি স্পষ্টভাবে বুঝতে হবে।

আজকাল "নতুন" জাভাস্ক্রিপ্ট ফ্রেমওয়ার্কগুলি কেবল "জেএসএফ" উপাদান-ভিত্তিক মডেলটি অনুলিপি / পেস্ট করার চেষ্টা করে।


0

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

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