Ahmed Aljaberi
Ahmed Aljaberi

@ahmed_aljabri

7 تغريدة 35 قراءة Aug 07, 2020
مصطلحات مثل Designing و Architecture التفريق بينهم ضبابي للكثير .نفس الشيء Business Logic او Domain Logic ممكن تنفهم على انها نفس الشيء و كثير مراجع تقول انهم نفس الشيء. لكن هناك فرق بسيط يتعلق بما الذي يوضع في الApplication Layer و ما لذي يوضع في الDomain Layer
(سلسلة )
عادة الLogic الذي يتعلق بالWorkflow او Orchestration و الBusiness Rules و اللي ممكن يتعدل بصورة اكثر من غيره هذا يكون في الApplication Layer. مجموعة من العمليات تتحدد بتسلسل معين مع مجموعة الif statements تحدد أي عملية يفترض ان تتم و متى.
العملية الواحدة من تلك العمليات السابقة و التي تتعلق بEntity معين مثل احتساب راتب موظف في كلاس Employee او تفقد وجود مخزون في الInventory Class هذه تكون في الDomain Layer. و الApplication Layer ينسق بينها فقط.
هذا التفريق قد لا يكون له معنى إن كنت تستخدم الEmployee نفسه لتمثيل البيانات في الداتابيز عبر ORM او بطريقة الTransaction Script او الActive record. لكنها تفرق كثيراً مع الDDD و عندما يكون الكلاس لديك Rich و ليس Anemic.
أن يكون الكلاس لديك Rich أي به Methods حقيقية و ليس فقط get و set هو مفتاحك لتطبيق الDesign principles و الDesign patterns و حتى الOOP Pillars. بمعنى انك قد تستخدم لغة OOP لكن نظامك ليس بالضرورة OOP.
ماذكرته هو عن الOOP و هي ليست هدف بحد ذاتها و انما هي احد الProgramming Paradigms و تلك كانت بعض ممارساتها إن كنت تريد OOP. قد تُبنى انظمة كبيرة بدون تلك الممارسات بواسطة Paradigm اخر او خليط بين الProcedural و الFunctional و حتى الStructured paradigm.
و من المهم ان نستخدم الParadigm المناسب لحل المشكلة المناسبة. لا أن يكون لديك مطرقة فقط و تسيء استخدامها بأن تعامل كل شيء أمامك على انه مسمار.
( انتهى)

جاري تحميل الاقتراحات...