سؤال

Googling "ما نوع التطبيقات المناسبة لـ DDD؟" أعطاني الجواب التالي:

من المحتمل أن 95% من جميع التطبيقات البرمجية تندرج ضمن فئات "ليست جيدة لاستخدام DDD".(يرى المقالة)

لذلك ما هو كل هذا العناء؟!؟

التطبيق الذي أعمل عليه هو خاصة تتمحور حول البيانات ولكنها لا تزال تحتوي على بعض منطق الأعمال والقواعد التي سيتم تطبيقها.هل سيكون البدء في تطبيق تقنيات DDD مضيعة للوقت؟هل من الأفضل لي استخدام طبقة وصول إلى البيانات أكثر تقليدية ونموذج POCOs وطبقة منطق الأعمال؟أو بعبارة أخرى - ما هو البديل السليم لـ DDD؟

هل كانت مفيدة؟

المحلول

والعديد من المطورين الذين يعتقدون DDD مفيد لسقوط مشروعهم في الفخ الذي كانوا يعتقدون ما مهمتهم هي كل شيء هو كتابة التعليمات البرمجية. ليست هذه هي القضية. وظيفة مطور هو حول تحقيق وظيفة حتى يمكن حل مشكلة من خلال البرنامج. وهذا يؤدي إلى الاستنتاج بأن كتابة التعليمات البرمجية ليست بداية ما يقوم به مطور، ولكن في نهاية: رمز هو نتيجة للعملية برمتها قبل يتم كتابة التعليمات البرمجية في الواقع.

وDDD ليس حول كتابة التعليمات البرمجية، انها ليست عملية 10 خطوة تسليم المفتاح للحصول على برنامج كبير، ولكن عن أن العملية برمتها قبل يتم كتابة التعليمات البرمجية، انها حول الحصول على البصيرة في ما هي المشكلة كل شيء، ما / الذي يشارك فيه تيارات المعلومات وماذا تفعل هذه العناصر تبدو وكأنها، كيف صلتها بعضنا البعض الخ الخ وفي الواقع، فإن أهم جزء من DDD هو <م> خلق لغة مما يجعل المحادثات بين خبراء المجال والمطورين من الممكن دون تفسيرات خاطئة . هذا هو "اللغة موجود في كل مكان" إيفانز يتحدث عن. انها في الواقع يجعل العملية برمتها قبل كتابة التعليمات البرمجية وهي عملية يترك قليلا لتخمينها، الامور واضحة ومباشرة إلى الأمام. (وهذا هو الهدف).

والمشكلة مع "كيف تعمل DDD في الممارسة" و "يمكن لأي شخص أن تعطيني مثالا على كيفية كتابة التعليمات البرمجية I مع DDD؟ ومثل قادم حقا من حقيقة أن الناس يطلبون هذا النوع من الأسئلة تركز على كتابة التعليمات البرمجية، ولكن ليس لديهم فكرة لماذا انهم الكتابة التي رمز وليس رمز آخر. I.o.w: إذا كنت أدرك أن DDD هو حول اكتشاف ما كنت قد لكتابة كما ظائف وWHY، تقع الأمور في مكانها. كيف كنت تكتب هذا الرمز، وهذا متروك لكم. ولكن كما قال: هذه ليست أكبر مشكلة بعد الآن، كما كنت في ذلك الوقت تعرف مسبقا ما كنت قد لكتابة والسبب في ذلك.

نصائح أخرى

وكما تعلمون، في بعض الأحيان 5٪ تجعل المزيد من المال من كل أخرى 95٪ - وهذا هو السبب في وجود DDD

.

وكان لنظام كبير معقد معين.

آسف، ولكن إذا كان DDD مجرد طريقة للتفكير كما يقول فرانس بوما، فلن يوصي بأشياء مثل الجهل المستمر.وهذا يعني استبعاد الآخرين باعتبارهم مطورين من الطبقة الدنيا إلى حد ما.

يعد PI، الذي يكون DDD متحيزًا له على الأقل، خيارًا معماريًا.إنها ليست طريقة للتفكير بعد الآن ;إنه شيء يتم تقديمه لك بالفعل، مع وجود تحذيرات غامضة في معظم الأحيان بحيث لا يكون لها أي فائدة:"غير مناسب لكل شيء".

لكن اتخاذ قرار بالسير في طريق PI أم لا يمثل تحديًا في حد ذاته، ولا يمكنك تسمية شخص ما ("مبرمج") إذا كان يشعر بعدم الارتياح حيال ذلك.

خذ حزمة ERP مع واجهة تشبه MS Access في كل مكان:شبكات تحتوي على إجماليات قيد التشغيل وأعمدة التحديث التلقائي والتمرير بدون صفحات على 100000 سجل.من الواضح أن نهج DDD مناسب للتفكير في كيفية التعامل مع هذا التطبيق.لكن منذ سنوات، لم أشاهد أي شخص - لا في الكتب ولا عبر الإنترنت، يتصفح التفسيرات المدعومة بالأدلة، ناهيك عن أمثلة رموز الحياة الواقعية، حول كيفية تعامل الباحث الرئيسي مع هذا الأمر. واسع الانتشار الوضع لمن يريد التسليم تطبيقات الصف التجاري وتجارب المستخدم.

لا تريد أن تصبح متدينًا في هذا الشأن.يميل أنصار DDD وDAL إلى أن يكونوا متدينين بشكل مفرط وقد يدفعون أولئك الذين تعرضوا للعض مرة واحدة ولكنهم منفتحين.يريد الكثيرون فقط مواجهة تجارب الحياة الواقعية (أي تجربة الحياة).فكر)، ولا يتم تقديم الخدمة لك فقط من خلال القطط والسيارات وعناصر الطلب/الطلبات الأساسية (أي.رمز الفقراء) لدعم الوعظ.

وهنا سؤال مماثل جدا: <لأ href = "https://stackoverflow.com/questions/796656/do-you-allow-the-web-tier-to-access-the-dal-directly/796961 # 796961 "> هل تسمح لتطبيقات الويب للوصول إلى DAL مباشرة؟

وأنا استخدم DDD لجميع مشاريعي. على التطبيقات الصغيرة بعض المفاهيم لا تنطبق، ولكن أجد العديد من جوانب قابلة للتطبيق على جميع المشاريع بغض النظر عن حجمها.

وDDD هو حول البرامج التي سيتم الاحتفاظ لفترة من الوقت. بالنسبة لي هذا يعني أنه يحتاج للتعبير عن الأفكار التي من شأنها تغيير مع المجال. متأكد التطبيق بسيط قد يكون مثاليا لوقت التسليم القصيرة ووقت التنفيذ قصير. ولكن إذا كنت بحاجة الى ان تنمو البرنامج ثم مبادئ DDD سوف يساعد كثيرا. DDD قد يكون من الصعب في خط الهجوم ولكن بمجرد الحصول على فكرة اللغة في كل مكان والمخاوف الفصل ثم الأشياء تبدأ لتصبح سهلة.

إذا كنت تقرأ هذه المادة أكثر من ذلك بقليل، كنت ترى هذا:

<اقتباس فقرة>   

ل5٪ من التطبيقات التي DDD   هو مناسبا، بل هو مناسبة جيدة جدا.   لتلك الحالات، سوف DDD مساعدة   كنت كسر جوزة صعبة للغاية. هنا، DDD   قد يكون حل سحري لذلك   بالذئب أن مديرك فقط   وأشار إلى مكتبك.

وهذا هو السبب في الضجة حول هذا الموضوع.

  • نظرًا لأن تطبيقك يركز بشكل أساسي على البيانات، فربما تكون بنيتك تقليدية بشكل أساسي.

  • بالنسبة للجوانب التي يكون لديك فيها المزيد من المنطق والمجال المحتمل أو كائنات القيمة، ربما يمكنك الاستفادة من بعض أفكار DDD لتنظيم التعليمات البرمجية.

  • بشكل عام، "البديل السليم" هو إبقاء الأمور بسيطة قدر الإمكان، واستخدام مفاهيم DDD حيثما يكون ذلك مفيدًا، وعدم تعقيد الأمور دون داعٍ، كما ينصح المقال.

أنا أبدأ الآن مشروعًا مشابهًا، وهو عبارة عن مزيج من معالجة البيانات والمزيد من المجالات التي تعتمد على المنطق/الخوارزميات.أرغب بالمثل في أخذ أجزاء DDD التي ستفيد المشروع، ولكن لا أحاول فرضها على المناطق التي قد تؤدي إلى نتائج عكسية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top