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