قبل ما تقرأ الجزء دا ارجع اقرأ الجزء الاول علشان تكون مستوعب معايا تقدر
من هنا

مفيش اعتماد مباشر على أي نظام خارجي
القاعدة الأولى في الكتاب بتأكد على إن الكود الأساسي (Core Code) بتاعك ماينفعش يكون مربوط أو معتمد على أنظمة تانية من برّا،
زي:
Database – APIs – file system
ممكن علشان متهش مني تقرأ النقطة الجاية مع تركيز
ليه العزل ده مهم؟
1. قابلية الاختبار (Testability)تقدر تكتب تيست حقيقي للكود
من غير ما
"تحتاج تجهز داتا بيز"
"تسطب حاجات خارجية."
الكود يبقى معزول وسهل تركز في سلوكه نفسه من غير ما تدخل في متاهات البنية التحتية.
ال Core code هنا بيقولك
"انا مالي اسم الداتابيز غلط او اسم الجدول غلط او ال API غلط"
انا اهم حاجة عندي
"هل لو اسم الداتابيز صح و اسم الجدول صح و هل هقدر احفظ الداتا صح و لا لأ"
2. تبسيط الأمور (Reduced Complexity)ال Core code يبقى نظيف وواضح، و منفصل عن التفاصيل التانيةاللي ممكن تعقده زي إعداد اتصال بقاعدة بيانات أو التعامل مع API.
3. سلوك متوقع (Predictable Behavior)طول ما الكود الأساسي شغال لوحده من غير اعتماد على حاجة خارجية، يبقى أنت متطمن إنه هيدي نفس النتيجة كل مرة.
أمثلة على كود بيكسر القاعدة دي:
1. كود بيكلم API خارجي و انتا بتقرأ الكود دا اسأل نفسك
لو اللينك غلط المثود هترجع اي!؟

2. كود بيشتغل على قاعدة بيانات زي م اتفقنا السؤال
لو كتبت اسم الداتابيز غلط هل المثود هترجع حاجة و لا هتعطل
هل معتمدة ع اسم الداتا بيز ولا لأ

3. كود بيقرأ من file مش هقولك اسأل نفسك هنا بقا

هأكد عليك تاني ايها القارء متنساش ان كل الأمثلة دي مش Core Code لأنها معتمدة على أنظمة خارجية، وبالتالي صعب تختبرها أو تعزلها بسهولة.
و يلا علشان المرة الجاية قبل م هنتكلم علي القاعدة التانية
الي هيه Rule no.2: No special contextneeded
هنتكلم عن واحد من اهم المفاهيم ف OOP و هوه الAbstraction و نستكشف سوا تقدر من هنا