"তুমি এখানে."

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

"প্রায় 10 বছর আগে, E nterprise  J ava  B eans ( EJB ) ব্যাপকভাবে ব্যবহৃত হয়েছিল।"

"JavaBeans মানে কি?"

"JavaBeans মূলত কফি বিন (Java is a type of coffee) মানে এটা IT humor."

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

"তিনটি সবচেয়ে বিখ্যাত ধরনের EJB মটরশুটি হল:"

"একটি সত্তা বিন হল এমন একটি বিন যার উদ্দেশ্য হল নির্দিষ্ট ডেটা সংরক্ষণ করা। এই ধরনের বিনের একটি অন্তর্নির্মিত পদ্ধতি রয়েছে যা নিজেকে এবং এর ক্ষেত্রগুলিকে একটি ডাটাবেসে সংরক্ষণ করার জন্য। এই ধরনের বস্তুকে ধ্বংস করা যেতে পারে এবং তারপরে ডাটাবেস থেকে পুনরায় তৈরি করা যেতে পারে। কিন্তু ডেটা সঞ্চয় করা ছাড়াও এর কোনো যুক্তি নেই।"

"একটি সেশন বিন একটি কার্যকরী বিন। প্রতিটি সেশন বিনের নিজস্ব ফাংশন আছে। একজন এক কাজ করে, এবং অন্যজন অন্য কিছু করে। এই ধরনের বিন অন্যান্য বস্তু এবং মটরশুটিগুলির সাথে কাজ করে, তাদের নিজস্ব ডেটা দিয়ে নয়।"

" সেশন মটরশুটি দুটি বিভাগে বিভক্ত।"

"একটি স্টেটলেস সেশন বিন এমন একটি শিম যার অভ্যন্তরীণ ভেরিয়েবলগুলি গুরুত্বপূর্ণ ডেটা সংরক্ষণ করে না যা এটি কাজ করার জন্য প্রয়োজন। এই ধরনের বিন ধ্বংস করা যেতে পারে এবং তারপরে পুনরায় তৈরি করা যেতে পারে এবং এটি ঠিক আগের মতোই তার কার্য সম্পাদন করবে।"

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

"কিন্তু মটরশুটি ব্যবহার করাটাও তেমন ভালো ছিল না, তাই শীঘ্রই দুলটি বিপরীত দিকে ঝুলেছিল। এবং বিকাশকারীরা সাধারণ জিনিসগুলি আরও ঘন ঘন ব্যবহার করতে শুরু করেছিল। এমনকি তারা একটি বিশেষ নাম নিয়ে এসেছিল।"

"একটি POJO হল একটি P lain  O ld  J ava  O bject । এই অবজেক্টের কোন সুপার-ফাংশন ছিল না এবং সুপার-অবজেক্টের উত্তরাধিকারী ছিল না। তারা শুধুমাত্র নিয়মিত জাভা অবজেক্ট ছিল।"

"যখন আপনি অনুশীলনে EJB কে জানবেন, আপনি পার্থক্যটি বুঝতে পারবেন। মোটামুটিভাবে বলতে গেলে, একটি POJO হল একটি ছুরি, এবং একটি EJB হল একটি সুইস আর্মি ছুরি যা আপনি ফোন কল করতেও ব্যবহার করতে পারেন।"

"আকর্ষণীয় তুলনা।"

"হ্যাঁ, এবং এখানে আরও একটি জিনিস।"

"সময়ের সাথে সাথে, বস্তু এবং শ্রেণী বিশেষায়িত হতে শুরু করে। ফলস্বরূপ, বিকাশকারীরা নির্দিষ্ট ভূমিকা চিহ্নিত করে এবং সংশ্লিষ্ট বস্তুর নতুন নাম দেয়।"

"একটি ডেটা ট্রান্সফার অবজেক্ট ( DTO ) হল একটি বস্তু যা ডেটা পরিবহনের জন্য তৈরি করা হয়৷ এই বস্তুগুলির সাধারণত দুটি প্রয়োজনীয়তা থাকে৷ তাদের অবশ্যই: a) ডেটা সঞ্চয় করতে সক্ষম হতে হবে, b) ক্রমিক হতে হবে৷ অন্য কথায়, এগুলি শুধুমাত্র ডেটা স্থানান্তর করার জন্য ব্যবহৃত হয়৷ "

"আপনি একটি অবজেক্ট তৈরি করেন, এতে ব্যবসায়িক যুক্তি থেকে প্রয়োজনীয় ডেটা লিখুন, এটিকে JSON বা XML-এ সিরিয়ালাইজ করুন এবং এটি যেখানে যেতে হবে সেখানে পাঠান। , এবং এটি থেকে ডেটা বের করুন।"

"একটি সত্তা হল এমন একটি বস্তু যা একটি ডাটাবেসে সংরক্ষিত থাকে৷ কিন্তু এতে কোনো ব্যবসায়িক যুক্তি থাকে না৷ আপনি বলতে পারেন যে এটি ব্যবসায়িক মডেলের ডেটা৷"

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

উদাহরণ:

একটি DAO এবং একটি সত্তার মধ্যে সম্পর্ক
UserEntity user = UserDAO.getUserById("1535");
if (user.getAge() > 18)
{
 user.setMobilization(true);
 UserDAO.save(user);
}
মন্তব্য
UserEntity is a class that stores user data
UserDAO is a class that retrieves data (UserEntity objects) from the database and stores it there again after modifying it.

"এখন এ পর্যন্তই."

"যদিও এটি একটি ছোট পরিচায়ক পাঠ, আপনি এখনও এই মুহূর্তে আরও বেশি বুঝতে সক্ষম হবেন না। আমরা এই প্রতিটি বিষয় নিয়ে কথা বলতে দিন কাটাতে পারি, এবং আমরা EJB কভার করতে বছর কাটাতে পারি।"

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

"হুম। ধন্যবাদ, বিলাবো। হ্যাঁ, আমার মনে হয় আমি যথেষ্ট টেকনিক্যাল টার্ম জানি না। আবার, অনেক ধন্যবাদ।"