بالضبط ما يتكون من منطق الأعمال' في التطبيق ؟

StackOverflow https://stackoverflow.com/questions/39288

  •  09-06-2019
  •  | 
  •  

سؤال

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

يمكن لأحد أن يقول لي ما هو بالضبط تتكون من الأعمال المنطق ؟ كيف يمكن تمييزها عن غيرها من الكود ؟ هل هناك اختبار بسيط لتحديد ما هو منطق العمل وما هو ليس كذلك ؟

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

المحلول

ببساطة تحديد ما تقومون به في سهل الانجليزية.عندما تقول أشياء businesswise ، مثل "جعل تلك المعاناة" ، "سرقة المال", "تدمير هذا الجزء من الأرض" أنت تتحدث عن طبقة رجال الأعمال.أن نوضح الأمور التي تحصل متحمس تذهب هنا.

عندما تقول "إظهار هذا هنا" "لا تظهر", "جعله أكثر جمالا" أنت تتحدث عن طبقة العرض.هذه هي الأشياء التي على المصممين متحمس.

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

نصائح أخرى

ربما من الأسهل أن تبدأ بالقول ما لا منطق الأعمال.قاعدة البيانات أو الوصول إلى القرص ليس منطق الأعمال.واجهة المستخدم ليست منطق الأعمال.شبكة الاتصالات لا منطق الأعمال.

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

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

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

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

أعتقد أنك مربكة منطق الأعمال مع متطلبات التطبيق.انها ليست نفس الشيء.عندما يقوم شخص ما يفسر منطق له/لها العمل هو شيء مثل:

"عندما يقوم المستخدم بشراء عنصر لديه لتقديم المعلومات.المعلومات التي يتم التحقق من صحة مع x y z القواعد.بعد ذلك سوف تتلقى فاتورة وكسب النقاط ، أن يعطي x% في خصومات y العروض" (آسف على سوء سبيل المثال)

عند تنفيذ هذه الأعمال القواعد سيكون لديك للتفكير في الثانوية متطلبات مثل كيف يتم تقديم المعلومات ، كيف سيتم تخزينها في استمرار طريقة التواصل مع خوادم التطبيقات, كيفية المستخدم سوف تتلقى فاتورة وهلم جرا.كل هذه المتطلبات ليست جزءا من منطق الأعمال و ينبغي أن تنفصل عن ذلك.هذه الطريقة عندما تتغير قواعد العمل سوف التكيف مع التعليمات البرمجية الخاصة بك مع أقل جهد.هذا الواقع.

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

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

أنا لا أحب BLL+الدال أسماء طبقات ، هم أكثر مربكة من توضيح.
نسميها DataServices و DataPersistence.وهذا سيجعل من الأسهل.

خدمات التلاعب استمرار الطبقة CRUDs (إنشاء أو تعديل أو حذف)

بالنسبة لي" ، منطق الأعمال "يجعل كل الكيانات التي تمثل البيانات تنطبق على المشكلة المجال ، وكذلك المنطق أن يقرر "ماذا تفعل مع البيانات"..

لذا يجب أن تتكون من "نقل البيانات" (عدم الدخول) و "معالجة البيانات"..في الواقع الوصول إلى البيانات (الاشياء ضرب DB) يجب أن يكون في طبقة مختلفة ، كما أن عرض التعليمات البرمجية.

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

الأعمال منطق التجريد الخالص ، أنه موجود مستقل من تجسيد/التصور من البيانات أمام المستخدم الخاص بك ، مستقلة عن استمرار البيانات الأساسية.

على سبيل المثال في برامج إعداد الضرائب ، مسؤولية واحدة من منطق الأعمال الطبقات حساب الضريبة المستحقة.فإنها لن تكون مسؤولة عن عرض التقارير أو حفظ واسترجاع الضريبي.


@لارس "الخدمات" تعني معين العمارة.

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