যে কেউ জেপিএ (জাভা পার্সেস্টন এপিআই, মূলত জাভা / জে 2 ইই / ইজেবি এর জন্য মানকৃত ওআরএম এপিআই) এর সাথে কাজ করার জন্য বেশ কিছুটা সময় ব্যয় করেছেন, তার সাথে কথা বলছি, যার মধ্যে হাইবারনেট, এক্সপ্লিসলিংক, টপলিংক, ওপেনজেপিএ এবং অন্যান্য রয়েছে, আমি আমার কিছু ভাগ করব পর্যবেক্ষণ।
- ওআরএম দ্রুত নয়। এগুলি পর্যাপ্ত হতে পারে এবং পর্যাপ্ত বেশিরভাগ সময় ঠিক থাকে তবে একটি উচ্চ-ভলিউম নিম্ন-বিলম্বিত পরিবেশে তারা কোনও নন;
- জাভা এবং সি # এর মতো সাধারণ উদ্দেশ্যে প্রোগ্রামিং ভাষাগুলিতে তাদের কাজ করার জন্য আপনার প্রচুর যাদু প্রয়োজন (যেমন জাভা, উপকরণ ইত্যাদিতে লোড-টাইম বয়ন);
- কোনও এসআরএল (যা উদ্দেশ্য বলে মনে হয়) এর চেয়ে আরও বেশি পাওয়ার পরিবর্তে কোনও ওআরএম ব্যবহার করার সময়, আপনি নিজের ওআরএমকে পারফরম্যান্ট এসকিউএল উত্সাহিত করতে এক্সএমএল এবং / অথবা টীকাগুলি / বৈশিষ্ট্যগুলিতে কতটা সময় ব্যয় করেছেন তা অবাক হয়ে যাবেন;
- জটিল প্রশ্নের জন্য, সত্যিই কোনও বিকল্প নেই। জেপিএ-র মতো কিছু প্রশ্ন রয়েছে যা কেবল কাঁচা এসকিউএল-তে সম্ভব হয় না এবং যখন আপনাকে জেপিএতে কাঁচা এসকিউএল ব্যবহার করতে হয় এটি সুন্দর নয় (সি # /। নেট কমপক্ষে গতিশীল ধরণের রয়েছে - ভের - যা অনেক বেশি একটি অবজেক্ট অ্যারের চেয়ে ভাল);
- ওআরএম ব্যবহার করার সময় ভয়ঙ্কর অনেকগুলি "গোটচস" রয়েছে। এর মধ্যে অনিচ্ছাকৃত বা অপ্রত্যাশিত আচরণ অন্তর্ভুক্ত রয়েছে, আপনার ডাটাবেসে এসকিউএল আপডেট করার সক্ষমতা তৈরি করতে হবে (জেপিএতে রিফ্রেশ () ব্যবহার করে বা অনুরূপ পদ্ধতিতে কারণ জেপিএ সবই ক্যাশে করে তাই এটি সরাসরি ডাটাবেস ধরবে না আপডেট - সরাসরি এসকিউএল আপডেটগুলি চালানো একটি সাধারণ উত্পাদন সমর্থন ক্রিয়াকলাপ);
- অবজেক্ট-রিলেশনাল মেজাজটি সর্বদা সমস্যা তৈরি করতে চলেছে। এ জাতীয় যে কোনও সমস্যা রয়েছে তার সাথে জটিলতা এবং বিমূর্ততার সম্পূর্ণতার মধ্যে একটি বাণিজ্য রয়েছে। মাঝে মাঝে আমি অনুভব করেছি যে জেপিএ খুব দূরে চলে গিয়েছিল এবং রিটার্ন হ্রাস করার আসল আইনে আঘাত করেছে যেখানে বিমূর্ততা দ্বারা জটিলতা হিটকে ন্যায়সঙ্গত করা হয়নি।
আরও একটি সমস্যা রয়েছে যা কিছুটা আরও ব্যাখ্যা দেয়।
ওয়েব অ্যাপ্লিকেশনটির জন্য traditionalতিহ্যবাহী মডেলটির মধ্যে একটি অধ্যবসায় স্তর এবং উপস্থাপনা স্তর (সম্ভবত কোনও পরিষেবা বা অন্য স্তরগুলির মধ্যে থাকা থাকে তবে এটি এই আলোচনার জন্য গুরুত্বপূর্ণ দুটি)। ORM গুলি আপনার দৃistence়তা স্তর থেকে উপস্থাপনা স্তর পর্যন্ত (যেমন আপনার সত্তাগুলি) কঠোর দৃষ্টিভঙ্গি জোর করে।
আরও কাঁচা এসকিউএল পদ্ধতির সমালোচনাগুলির মধ্যে একটি হ'ল আপনি এই ভিও (মান অবজেক্টস) বা ডিটিও (ডেটা ট্রান্সফার অবজেক্ট) দিয়ে শেষ করেন যা কেবল একটি ক্যোয়ারী দ্বারা ব্যবহৃত হয়। এটি ওআরএমের সুবিধা হিসাবে বিবেচিত কারণ আপনি এ থেকে মুক্তি পান।
কথাটি হ'ল এই সমস্যাগুলি ওআরএম থেকে দূরে যায় না, তারা কেবল উপস্থাপনা স্তর পর্যন্ত চলে যায়। প্রশ্নের জন্য ভিও / ডিটিও তৈরির পরিবর্তে, আপনি কাস্টম উপস্থাপনা অবজেক্ট তৈরি করেন, সাধারণত প্রতিটি দর্শনের জন্য একটি। এটা কিভাবে ভাল? IMHO এটা না।
আমি ওআরএম বা এসকিউএল এ সম্পর্কে লিখেছি : আমরা এখনও আছে? ।
আমার পছন্দের অধ্যবসায় প্রযুক্তি (জাভাতে) এই দিনগুলি ইবতিস। এটি এসকিউএল-এর চারপাশে একটি সুন্দর পাতলা মোড়কযুক্ত যা জেপিএ যা করতে পারে তার 90 %+ করে (এটি এমনকি সম্পর্কযুক্ত অলস-লোডিং করতে পারে যদিও এটির ডকুমেন্টেড নয়) তবে অনেক কম ওভারহেড (জটিলতা এবং প্রকৃত কোডের ক্ষেত্রে)।
এটি আমি লিখেছিলাম একটি জিডব্লিউটি অ্যাপ্লিকেশনটিতে গত বছর প্রকাশিত হয়েছিল। পরিষেবা বাস্তবায়নে উপস্থাপনা অবজেক্টগুলিতে EclipseLink থেকে প্রচুর অনুবাদ। যদি আমরা ইব্যাটিস ব্যবহার করতাম তবে ইবতিটিসের সাহায্যে উপযুক্ত অবজেক্ট তৈরি করা এবং তারপরে স্ট্যাকের উপরে এবং নিচে সমস্ত দিক দিয়ে যাওয়া অনেক সহজ হত। কিছু পিউরিস্টরা তর্ক করতে পারে এটি খারাপ ™ হতে পারে তাই (তত্ত্বের ভিত্তিতে) তবে আমি আপনাকে কী বলছি: এটি সরল কোড, একটি সহজ স্ট্যাক এবং আরও উত্পাদনশীলতার দিকে পরিচালিত করবে।