سؤال

ما هي أوجه الشبه والاختلاف بين المجال لغات محددة (DSL) والمجال تصميم مدفوعة (DDD)؟

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

المحلول

والمجال يحركها التصميم (DDD) هو طريقة التفكير والتواصل حول المشاكل وحلولها.

والمجال لغة محددة (DSL) هو وسيلة لكتابة التعليمات البرمجية.

وانهم مماثل لأنهم على حد سواء تبدأ بالكلمة "المجال". هذا كل شيء، وأعتقد. : -)

نصائح أخرى

وتصميم يحركها المجال يؤكد على دور نطاق المشكلة كما تصنع المفردات الأساسية والمفاهيم، وطراز كائن لنظام يجري تصميمها.

ولغة المجال-محددة هي تدوين لتحديد أو تنفيذ أجزاء معينة من النظام، موجهة لاحتياجات الممارس في هذا المجال (أي التقليل من الجوانب "programmerese" معظم البرمجة أو لغات مواصفات).

وأنا أزعم أنها ترتبط بطريقة أو بأخرى وليس فقط من قبل كلمة "الملك". وبمجرد الانتهاء من التصميم الجيد (يحركها المجال)، وسوف تساعد بالتأكيد في خلق DSL الصلبة.

و"DDD لا تتطلب تحديدا استخدام DSL، على الرغم من أنها يمكن أن تستخدم للمساعدة في تحديد DSL." - ويكيبيديا

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

وهذه قد تساعد على فهم وجهة نظري:

http://fragmental.tw/2009/03/12/expessive تم تصميم الموقع، الشرائح /

http://fragmental.tw/2008 / 04/20 / نطاق محدد لغات والفيديو الألعاب /

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

وهنا شريط فيديو للي مناقشة هذا على موقع DomainDriven:

http://domaindrivendesign.org/library/bell_gitlevich_2009

وأطيب التمنيات، بيتر

ويكيبيديا لديها تعريف واضح جدا ل DSL :

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

ولغة نطاق محدد المدة   (DSL) قد أصبحت ذات شعبية كبيرة في الآونة الأخيرة   سنوات في مجال تطوير البرمجيات ل   تشير إلى وجود لغة برمجة أو   لغة مواصفات مخصصة ل   خاص نطاق المشكلة، ل   خاص تمثيل المشكلة   تقنية و / أو خاصة   تقنية الحل.

ويمكن تطبيق هذا على أنها مجموعة من الفئات التالية بعض نمط ثابت، يتوهم البعض C ++ السحر القالب، أو مترجم / محلل أن يفسر إدخال النص حرة في أن تفعل ما تريد.

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

لمكتوب بشكل جيد جدا من المعلومات حول تراخيص اشتراك الجهاز تشير إلى مجموعة مارتن فاولر من الصفحات على تراخيص اشتراك الجهاز (التقدم في العمل )، قد تبدأ مع سبيل المثال أو في <ل أ href = "http://martinfowler.com/dslwip/UsingDsls.html#DefiningDomainSpecificLanguages" يختلط = "نوفولو noreferrer"> تعريف . قراءة جيدة أخرى هي قندا] .

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

والاختلافات، واحد هو نهج لبناء النظم باستخدام لغة المجال محددة لغة (DSL) بدلا من لغة للأغراض العامة والآخر النهج المعماري (DDD) لتصميم وبناء نظم.

والتشابه هو أن كلا منهما التركيز على مجال معين.

scroll top