Posts

Showing posts from May, 2023

NetArchTest : Architecture as Code

Image
 لو إنت لسه بتبدأ، أكيد سمعت جملة "الكود ده ريحته وحشة" (Code Smells). الـ NetArchTest هي الأداة اللي بتركب "فلاتر" على الكود بتاعك عشان الريحة دي متظهرش أصلاً. هي Library بتسمحلك تكتب Architecture as Code . 1. ليه أصلاً نحتاج NetArchTest؟ (السيناريو المرعب) تخيل عندك موديول الـ Orders . المفروض إنه ميعرفش حاجة عن موديول الـ Payments إلا من خلال Events . جِه مبرمج جديد "عفوي" وقام كاتب سطر واحد بس: في لحظة، الموديولين بقوا "ملزوقين في بعض" (Tightly Coupled). لو جيت في المستقبل تشيل موديول الدفع عشان تغيره، موديول الطلبات هيقع معاك. الـ NetArchTest مهمته يمنع السطر ده إنه يتكتب أصلاً. 2. إزاي نبدأ؟ (التركيب والتجهيز) أول حاجة، إنت بتعمل مشروع XUnit أو NUnit عادي خالص جوه الـ Solution وتسميه Architecture.Tests . وبنزل الـ Package دي: Install-Package NetArchTest.eNhancedEdition ملحوظة: النسخة الـ eNhancedEdition فيها مميزات أكتر وتصليح لمشاكل كانت في النسخة القديمة. 3. القواعد الأساسية (The Big Four) الـ NetArchTest بيشتغل بمنطق 4 خطوات: Types...