
ليه العنوان كتبته ب العربية (علشان يتماشي مع منصة "نميم")
إن شاء الله هبدأ أقدملكم سلسلة شرح لكتاب
Advanced Web Application Architecture
وهننزل بيها على فترات كده واحدة واحدة، ودي أول حلقة هنبدأ فيها مع أول شابتر في الكتاب.
الشابتر الأول بيتكلم عن أربع نقط أساسية، وأول نقطة فيهم هي المقدمة، واللي تعتبر حجر الأساس لباقي النقط اللي هنيجي عليها واحدة واحدة بعد كده.
فـ يلا نخش في الموضوع...
إيه الهدف الرئيسي من الـ Architecture Style اللي الكتاب ده بيطرحه؟
الهدف الأساسي هو إنك تفصل بوضوح ما بين جزئين مهمين جدًا في أي تطبيق:
Core Code
وده الكود الأساسي اللي بيعبر عن الوظايف اللي التطبيق معمول علشانها فعلًا.
Infrastructure Code
وده الكود المساعد اللي بيساعد الـ core code يشتغل، لكنه مش جوهري لوظيفة التطبيق نفسها.
يعني إيه Core Code؟
الـ core code هو الكود اللي بيعمل الحاجات الجوهرية اللي التطبيق بيتبني حواليها. زي مثلًا:
Algorithms
زي الـ CRUD operations (Create – Read – Update – Delete) الخاصة بالمنتجات.
Modules
زي موديل تسجيل الدخول وتسجيل الخروج (Auth module).
Main Jobs
زي عملية الشراء نفسها في موقع بيع.
أما بقى الـ Infrastructure Code فده بيشمل حاجات زي:
الـ Database
المكان اللي البيانات كلها بتتخزن فيه.
File System
أي حاجة ليها علاقة بتخزين الملفات والميديا.
Payment Gateway
الجزء اللي بيتعامل مع الفلوس والمعاملات الإلكترونية.
طيب نقدر نحدد الـ core code بإزاي؟
فيه قاعدتين مهمين جدًا لو اتوفروا في أي كود، نقدر نقول عليه Core Code:
ملوش أي اعتماد على أنظمة خارجية و دا يسمي ب No dependencies on external systems
مش محتاج سياق أو إعدادات خاصة علشان يتنفذ و يسمي ب No special context needed
وأي كود مش بينطبق عليه القاعدتين دول، غالبًا بيبقى Infrastructure Code.
و ان شاء الله المرة الجاية نشرح No dependencies on external systems