Working with domain identifiers

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

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

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

কেন আমরা ডোমেনগুলিতে আইডি নিযুক্ত করব?

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

আমি কী বলছি তা বুঝতে, আমরা এটি উদাহরণে আরও স্পষ্ট দেখতে পাব। আমাদের প্রথম নিবন্ধে ষড়ভুজ আর্কিটেকচার সম্পর্কে কথা বলার কোনও পণ্য ইউনিটের একটি উদাহরণ দেওয়া উচিত:

কঠোর পরীক্ষা: ইউনিট টেস্টিং সর্বদা আমাদের সত্তার আইডির নিরঙ্কুশ মান হতে পারে, কারণ এটি আমাদের ডাটাবেসে না থাকলে আমাদের ইউনিটে আইডি থাকবে না, যা সংজ্ঞা অনুসারে কখনই প্রয়োজন হয় না।

বাহ্যিক এজেন্টগুলির নির্ভরতা:

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

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

অতএব, আমরা আমাদের কোডটি উন্নত করার চেষ্টা করব, আমাদের ডোমেন সত্তা সম্পর্কে পূর্ববর্তী নিবন্ধে সংজ্ঞায়িত ধারণাগুলি প্রয়োগ করে।

বাহ্যিক এজেন্টগুলি সরান

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

এইভাবে, আমরা ওআরএম আমাদের যে বাহ্যিক নির্ভরতা দেয় তা থেকে বিমূর্তি পরিচালনা করি। এবং আইডি ক্ষেত্রটি টাইপ স্ট্রিংয়ের একটি অনন্য সনাক্তকারী হিসাবে সংজ্ঞায়িত করা হয় তবে এর প্রজন্মটি ডোমেন থেকে দেওয়া হয়।

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

পরীক্ষার দক্ষতা উন্নত করুন

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

তদ্ব্যতীত, আমরা কেবলমাত্র নতুন অবজেক্ট তৈরি করতে পারি, তবে ডাটাবেস থেকে প্রদত্ত কোনও বস্তু হাইড্রেট করি না, এই ব্যর্থতাটি নির্দেশ করে যে আইডিগুলির প্রজন্ম উপযুক্ত স্থানে নেই।

ডোমেন শনাক্তকারী যুক্ত করুন Add

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

Leave a Comment