داخلی عمل
ماڈل-view-Controller (MVC) ماڈل کئی دہائیوں سے ویب ایپلیکیشن کی ترقی کا ایک ذیلی خاکہ ہے. تاہم، جیسا کہ پیچیدہ اور صارف طلبہ میں اطلاق بڑھ جاتا ہے، بہت سی ٹیموں نے دریافت کیا کہ معلومات اور کاروباری منطق کے لیے ذمہ دار
ایمویسیڈی کو سمجھنا
ایم وی سی کی نقش بندی ایک درخواست کو تین انڈرل اجزاء میں الگ کرتی ہے:
- Madial: [1] سرمایہ کاری ڈیٹا، کاروباری قوانین اور مستقل منطق۔ یہ اطلاقی ڈومین کے لیے واحد ذریعہ ہے۔
- منظر عام پر آنے والی تصویر: صارف کو مُتناسق (یا اس کی پیشکش کردہ نمائندگی) سے ڈیٹا پڑھنے سے مُراد ہوتا ہے۔
- Controller: [1] [1] مریخی صارفی داخلی عمل، مریخی مواصلات اور نظریہ کے درمیان میں تعامل اور ریاست کو اسی مناسبت سے اپ ڈیٹ کیا جاتا ہے۔
جبکہ نظریہ اور تفاعل اہم ہیں، ماڈل وہیں کہ دماغی پیچیدگیوں کا بیشتر حصہ رہائش پزیر ہے. ایک اچھا تجزیہ ماڈل نئے تقاضوں کے مطابق عمل درآمد کرنے، اضافی ٹریفک کے ساتھ ساتھ ساتھ کئی متضاد متضاد (مثلا، ویب،پی آئی، موبائل) کے ساتھ تعاون کرنے کے قابل ہوتا ہے۔
کورل ماڈلز کے لیے کور اصول
مخصوص نمونے میں داخل ہونے سے پہلے یہ چند بنیادوں پر اندراج کرنے کے لیے ضروری ہے:
- سنجار: ہر ماڈل یا کلاس کو تبدیل کرنے کی ایک اچھی وجہ ہونی چاہیے۔ مثال کے طور پر کاروباری راستوں سے الگ ڈیٹا رسائی حاصل کرنا چاہیے۔
- فکروں کی سیپاریشن : اطلاق کے مختلف پہلوؤں (انگریزی، درستی، اطلاعات، وغیرہ) کو الگ، آزادانہ طور پر تشکیل دینے والی سطحوں میں عمل درآمد کیا جانا چاہیے۔
- اپنے آپ کو مت سمجھنا (D بہرحال) : کئی ماڈلوں یا منڈل میں منطقی منطق سے خوابوں کو برقرار رکھنے کا سبب بنتا ہے۔
- . Depency infoution: ہائی سطح کے مدارس کو متنوع (interfaces)، تصدیقی عمل پر منحصر ہونا چاہیے۔اس سے مراد ڈیٹا بیس، کیچنگ فراہم کنندگان یا بیرونی خدمات کو بغیر دوبارہ تحریر کیے بغیر ہی جاری کرنے کی اجازت ہوتی ہے۔
محفوظ-date= (معاونت)
ایرک ایوانس کی ڈومینک-ملین ڈیزائن میں سے ایک سب سے مؤثر قریب رہ گیا ہے ماڈل کی عدم استحکام کے لیے. ڈی ڈی ڈی کے ترقی یافتہ اداروں کو حوصلہ افزائی دیتا ہے کہ وہ مرکزی کاروباری ڈومینز کے گرد ماڈلز کو تشکیل دیں
زبان کو بولنے والی زبان
عام الفاظ کو ترقی یافتہ، ڈومین ماہرین اور کوفنے والے الفاظ بنا لیں۔ کوڈ، دستاویزات اور گفتگو میں یکساں اصطلاح استعمال کریں۔ مثال کے طور پر ایک ایل ایل ٹی:0] کلاس کو ایک ہونا چاہیے جو حقیقی عالمی ترتیبی رویے کی عکاسی کرتا ہے، جینریک نہیں ہے۔
غیر متصل
بڑے اطلاقیے متعدد ذیلی ادوار پر مشتمل ہیں. ڈی ڈی ڈی ڈی کی سفارش کرتا ہے. متعلقہ حصوں کے درمیان واضح حدود (dex) - مثال کے طور پر، ترتیب انتظام، جھوٹ، اور نقل و حمل کے لیے علاحدہ ماڈلز کے لیے،
غیر متصل
اور
ایک گہری دھنوں کے لیے ] مرتین فولر کی داخلی ڈی ڈی ڈی ڈی ڈی کا حوالہ دیتے ہیں ۔
ماہرِحیاتیات
ایک پٹیل آرکیٹیکچر مزید تشویش کو مزید جدا کرتا ہے جس میں ماڈل کو الگ منطقی طنز میں شامل کیا جاتا ہے:
- سانچہ: [1] کاروباری اداروں، اقدار اور ڈومین سروسز. اس تہ میں کوئی بھی پلگ انس پر موجود نہیں ہے۔
- ہدایات: [Orchstraties] معاملات، برقیات (conscription) استعمال کرتے ہیں اور ان کے استعمال کا انتظام کرتے ہیں۔اس کا انحصار ڈومینکل اسکیپ پر ہوتا ہے۔
- [Infrastructure settlection: ایمپلمنٹس مستقل، غیر ملکی ایپی فون اور دیگر تکنیکی پریشانیوں پر انحصار کرتا ہے۔
- ایسے قابل استعمال اور مناظر جو ایسے اطلاقیہی سطح کے ساتھ تعامل کرتے ہیں جو سطحِ پیمائش کے ذریعے تعامل کرتے ہیں۔
یہ علیحدگی اس بات کو یقینی بناتی ہے کہ ڈیٹابیس ٹیکنالوجی، کیچینگ حکمت عملی یا یو آئی فریم ورک بنیادی کاروباری منطق کے ذریعے نہیں بنایا جا سکتا. اس کے علاوہ یونٹ ٹیسٹ بھی آسان بنا دیتا ہے—ڈیالالم منطقہ کو بغیر کسی ڈیٹا بیس کے جانچا جا سکتا ہے۔
ذمہداریوں اور خدمات
ماڈل صاف اور قابلِ استعمال رکھنے کے لیے دو نمونے خاص طور پر قابل قدر ہیں:
دوبارہ شروع
ایک محفوظ ancapulates data رسائی منطقی طور پر، ڈومین چیزوں کے لیے ایک داخلی جمع کردہ مُتَکِقَّل (interent) مُتَرِّقَّقَّسْتِّسَبِّهِ ، آپ کو فون کرنے کی اجازت دیتے ہیں ، یہ مُصَنَّطَّبَّرَّسُول سے مُتِّسُول تک جانے کی اجازت دیتا ہے (جیسے، یعنی مَسَفْمَفْسْلَجَرَسْسْل) یا پھر اس میں امتحان کے لیے جمع شدہ معلومات کو بھی شامل کیا جاسکتا ہے۔
خدمتوتربیت
مثال کے طور پر ، ایک [ ایفٹیٹی : ۶ ] کسی حکم کو پورا کرنے کے لئے کاروباری منطقی نظام قائم کرنا ، پرایکننمنٹ اور نقلمکانی کرنا ممکن ہے ۔
مزید پڑھنے کے لیے [FLT] [Foller's Recooric sagery] تفسیر۔
ڈیٹا منتقلی مقاصد (DTOs) اور نظر انداز ماڈلز (DTOs) ہیں۔
اپنے مکمل ڈومین ماڈل کو منظرِ عام پر لانے سے متعلقہ یا بیرونی پی آئی کے کلائنٹ میں سے ایک بتدریج اخذ کیا جاتا ہے اور اکثر غیر ضروری اندرونی تفصیلات کو ظاہر کرتا ہے۔اس کے برعکس ڈیٹا کو بالکل ویسے ہی تشکیل دینے کے لیے DTOS استعمال کریں جیسے ضرورت ہو۔
- Decoupling: ڈومین ایجنسیوں کے لیے تبدیلی خودبخود اے پی آئی کلائنٹ نہیں کرتا۔
- S محفوظ: سینیٹ میدان (مثلاً اندرونی شناخت، Audit Times) میں تبدیل ہو سکتا ہے۔
- [DTOs] کسی مخصوص نقطے کی طرف سے درکار صرف میدانوں کو شامل کیا جا سکتا ہے، ادائیگی کے حجم کو کم کیا جا سکتا ہے۔
مثال کے طور پر ، نمونے پیشکردہ تہہ کیلئے ایک ایسا ہی مقصد انجام دیتے ہیں جس میں صرف اعدادوشمار کو پیش کرنے کی ضرورت ہے ( تصویری طور پر تصویری تاریخ یا مجموعی طور پر تصویری طور پر منطقی طور پر منطقی طور پر ظاہر کرنے کی ضرورت ہے ) ۔
سکیورٹی صلاحیت کے لیے ڈیٹا بیس رسائی
اگر ڈیٹابیس رسائی ناگزیر ہے تو سب سے صاف ماڈل آرکائیو شدہ. کلیدی معلومات میں شامل ہیں:
غیر متصل
، اور میں استعمال کردہ ستونوں پر انڈیکس بنائے گئے ہیں، اور . زیادہ سے زیادہ انڈیکس آہستہ آہستہ لکھ سکتے ہیں، اس طرح پیمائش اور نگرانی کے لیے.
کُتبدار
ریڈس یا میمکا کی طرح استعمال کرتے ہوئے مہنگا سالمات کے نتائج کا جائزہ لیا جائے۔آپ کی ڈومین کے لیے (وقت، واقعہ پر مبنی یا دستی) مناسبت سے کام لیں ۔
پَگَن اور لازی گُور
کبھی بھی بڑی ڈیٹا سیٹ کو یاد میں نہ ڈالیں ۔
لاذی گُناہ کے اثرات
درست لوڈنگ پلان کو درست کرنا عمل کے لیے بہت اہم ہے:
- Lazycor: جب تک رسائی حاصل کرنے میں متعلقہ اعداد صرف لوڈ کیا جاتا ہے یہ واحد مرکزی عمل کے لیے مفید ہے لیکن انفلیشنوں میں کارکردگی کو ذلیل کر سکتا ہے (یعنی ڈرہم N+1 مسئلہ)۔
- [EGorcorct: ایک ہی حالت میں تمام ضروری تعلقات کو اپ لوڈ کرتا ہے. جب آپ کو معلوم ہو جائے کہ نظریہ یا خدمت متعلقہ اعداد و شمار کی ضرورت پڑے گی تو بہت سے OrMs کی حمایت کی جاتی ہے کہ وہ مطلوبہ مطلوبہ اقدام یا پروجیکٹ کو یقینی طور پر چلانے یا منصوبہ بندی کرنے کے لیے تیار ہو جاتی ہے۔
اگر آپ کو معلوم ہے کہ آپ کے ویب پیج پر کچھ وقت کے لئے پیسے خرچ کرنا چاہتے ہیں تو پھر آپ اپنے ڈیٹا بیس پر اکاؤنٹ بنا سکتے ہیں ۔
ہوریسنل سکیلنگ کیلئے پلاننگ
جب آپ کا اطلاق ایک سرور سے آگے بڑھتا ہے تو ماڈل پٹی تقسیم کی حمایت کرنا پڑتی ہے:
- اسٹیٹ بے ماڈلز: ماڈل مواقع میں صارف سیشن یا درخواست ڈیٹا محفوظ کرنے سے گریز کریں.
- Efficent Sarialization: ماڈلز جو نیٹ ورک کے ذریعے سفر کریں گے (مثلاً JAMEMI) کے ذریعے تیز رفتار سیریز /deserization کے لیے ڈیزائن کیا جانا چاہیے۔
- Database Sharding: انتہائی بڑے ڈیٹابیس کے لئے، متعدد ڈیٹا بیس پر تقسیم. آپ کی دفن شدہ سطح کو Shading منطقی طور پر، بنیادی طور پر بنیادی طور پر بنیادی طور پر بنیادی طور پر ایک struming حکمت عملی کے ساتھ
- غیر واضح ضمنی ضمنی انتخابات : تقسیم نظام میں، تقسیم کرنے سے گریز کریں جنہیں پورے خدمات کے ذریعے بند کر دیا گیا ہے.
بہترین مشقیں
مطابقت
محفوظ اور سروس پلگ انس کو حل کرنے کے لیے ایک پلگ انس کا استعمال کریں۔ اس decouples ماڈل کی تعمیر کو کو کوم ورک عمل سے شروع کیا گیا اور اسے ٹیسٹ یا جانچنے کے لیے اجزاء کو تھوڑا سا نکال کر پیش کیا گیا۔
غیر متصل
جب بھی ممکن ہو، ڈیزائن کی قدر کو بطور incloper. کلاس کی تعداد میں کمی واقع ہوتی ہے جس سے متعلقہ بگ بگز کو کم کیا جاتا ہے اور اس کے علاوہ، servas ماڈلز کو جانچنا اور کیچ کو دیکھنا آسان ہوتا ہے۔
آزمائشوں میں آزمائش
خدمات اور ڈومین منطق کے لیے unit ٹیسٹوں کو ڈیٹا بیس یا فریم ورک بوٹس ڈرائنگ کی ضرورت نہیں ہونی چاہیے۔ ٹھٹھہ میں دوبارہ سے چلنے یا ان-ان-م استعمال کرنا۔ انٹریشن ٹیسٹ کسی حقیقی ڈیٹا بیس کے خلاف مستقل سلوک کی تصدیق کر سکتے ہیں، مگر انہیں نشانہ بناتے رہیں۔
اینٹی-فیصلہ
جب وراثی نظام یا بیرونی اے پی آئی کے ساتھ عدم توازن قائم کریں تو ایک مخالف برقی تہہ بنائیں جو آپ کے ماڈل اور بیرونی نظام کے ماڈل کے درمیان ترجمانی کرتا ہے۔اس سے بیرونی تبدیلیاں آپ کے ڈومین میں تبدیل ہونے سے روکتی ہیں۔
دستاویزات اور کوڈ کے جائزے
ماڈل مصنوعات اکثر اوقات اپاک بن جاتی ہیں۔ای ڈی آر (ADR) آرکائیو شدہ آرکائیو شدہ. اور کوڈ تجزیے کے ذریعے ان پر دستخط کرنے والا ایک اچھا نمونہ ادائیگی کرتا ہے جب نئے ٹیم کے ارکان یا کسی میلے کو دوبارہ ترتیب دینے کے بعد
کُنَّا
ایم وی سی سی کے ماڈلز کے لیے اسٹرنگ ماڈلز کا استعمال کرنا ایک وقت کے اندر ڈیزائن کی مشق نہیں ہے بلکہ مسلسل تنبیہ کرنا ہے. فکر کی علیحدگی کے اصولوں پر عمل کرنا، ڈی ڈی ڈی اور پر aptative architecture کا اطلاق کرنا اور دانشمندی سے اسکے ذریعے آپ اپنے اطلاقیہ کے ساتھ ترقی کر سکتے هيں او پی آر ایل ایل ایل ایل ایل کے ساتھ چلانے اور سنبھالنے کے لیے آپ کے تمام تر منصوبوں کو پورا کر نے کے ليے آپ کے اوپري نظام کو پورا کر نے کے اوپريٹ پرو فا ئل بنائیں،
مزید تحقیق کے لیے کا مطالعہ کرنے کے لیے [Evans's common-const-conferven ڈیزائن کتاب اور Redis Caching اندازوں۔ یہ وسائل یہاں زیر بحث آنے والے نمونوں کی گہری بصیرت فراہم کرتے ہیں۔