
طول الكتاب ده، بنفرّق بين نوعين من الكود:
Core Code (الكود الأساسي)
Infrastructure Code (كود البنية التحتية)
كل اللي جاي في الكتاب مبني على التفرقة دي
لو التفرقة دي وقعت منك "كل القرارات المعمارية بعد كده هتبقى غلط"
يعني إيه Core Code (بالمعنى اللي الكتاب قصده فعلًا)؟
من غير إعدادات خاصة
من غير ما يعتمد على سيستم خارجي
من غير ما يحتاج حاجة تكون “شغالة” برّه التطبيق
ب معني انه
مش: “كود نضيف” و “مفيهوش DB” و “فيه interface”
لا
دي قراءة سطحية.
اماااااااااال
اقصد لو شلت الكود من مكانه وحطيته في أي بيئة
Test – CLI – Web – Background Job
ويشتغل زي ما هو
يبقى ده Core Code
خد نف المثود حطها ف اي مكان هتشتغل ولا فيه داتابيز و لا اي حاجة مجرد مثود بتعمل جمع و طرح و بتشوف هل العدد موجب و لا سالب

Infrastructure Code بقى؟
العكس تمامًا:
محتاج سيستم خارجي (زي قاعدة بيانات، HTTP، كلوك السيستم…)
محتاج إعدادات خاصة
أو متصمم يشتغل في سياق معيّن بس (ويب، CLI، كده يعني)
----------------------------------------------------------------------------
ايه رأيك ف الكود دا هل هوه core ولا infrastructure
الاجابة انه infrastructure طب ليه مقولتش انه core code

التفكير الغلط اللي ناس كتير بتقع فيه
“ده كود بسيط، مفيش DB، مفيش API، يبقى Core”
السطر دا (new DateTimeImmutable('now'))
بيسأل:
“الوقت دلوقتي كام؟” والسؤال ده مش جاي من الكود مش جاي من business
جاي من النظام اللي شغال عليه البرنامج
يعني: System Clock او Environment يكون Infrastructure
ليه ده خطر؟
علشان:
في Test → الوقت هيختلف
في Server تاني → الوقت هيختلف
في Timezone تاني → النتيجة تختلف
يبقى:
الكود مش محدد و مش حتمي اذا دا Core
هل الكود ده يُعتبر Infrastructure Code؟

لأ برضو
طب ليه دا انا لو شيلته من داخل symfony و حطيته ف اي مكان مش هيشتغل
الكود ده مش محتاج: (Database HTTP System Clock Web Server)
يقدر يشتغل لوحده في أي مكان ف بالتالي نستنتج
Framework ≠ Infrastructure و ان الاعتماد على سيستم خارجي هو اللي يحدد
المرة دي انتا الي تحدد عزيزي القارء
دا infrastructure code ليه
متصمم مخصوص لـ HTTP
اظن وضحت صح