قناة احمد علي على تيليجرام ( شروحات تقنية ، تطبيقات ، أفلام ومسلسلات ، خلفيات ، و المزيد )
Last updated 1 month ago
يرمز تيليجرام إلى الحريّة والخصوصيّة ويحوي العديد من المزايا سهلة الاستخدام.
Last updated 3 days ago
- بوت الإعلانات: 🔚 @FEFBOT -
- هناك طرق يجب ان تسلكها بمفردك لا اصدقاء، لا عائلة، ولا حتى شريك، فقط انت.
My Tragedy Lies With Those Things That Happen in One Second And Remain
- @NNEEN // 🔚: للأعلانات المدفوعة -
Last updated 3 weeks, 2 days ago
عشان تتأكد انك متحكم في معلومة بشكل كويس، لازم فعلا تكون قادر تجاوب على 3 اسئلة أساسية:
❓(إيه) | What: السؤال ده بسيط، بيعرفك ايه هي المعلومة او المفهوم. لو قدرت تشرحه ببساطة وسلاسة، يبقى دي خطوة اولى إنك فاهمه كويس.
❓(إزاي) | How: ده بيوضح ازاي تقدر تطبق او تستخدم المعلومة في السيناريوهات العملية. هنا بتيجي خبرتك العملية اللي بتخليك تتعامل مع المفهوم بشكل فعلي.
❓(ليه) | Why: هنا بقى بيبان عمق فهمك. تبدأ بالاجابة بشكل سطحي، زي مثلا "ليه بنستخدم حاجة معينة؟!" لكن العمق بيظهر لما تقدر تشرح الاسباب وراء الاستخدام ده بمستويات متدرجة، كل ما تنزل في الشرح كل ما توضح أكتر انك متمكن ومتمرس.
العمق في اجابة why هو اللي فعلا بيفرق بين شخص فاهم المعلومة بشكل سطحي وشخص فاهمها بعمق، وده اللي بيبين خبرتك الحقيقية.
💡 مثلا كلمني عن الانترفيس (Interface) في لغة #C؟
❓(إيه) | What:
الإنترفيس في C# هو عقد بيحدد الدوال والخصائص اللي الكلاس لازم ينفذها.
❓(إزاي) | How:
▫️ public class CreditCard : IPaymentMethod { / implementation / }
▫️ public interface IPaymentMethod : ITransaction
❓(ليه) | Why
✅ بيسمحلك تطبق أكتر من انترفيس في نفس الكلاس، وبيحل مشكلة التوريث من كلاس واحد.
✅بيفصل الكود عن بعضه عن طريق تحديد السلوكيات من غير ما يحدد التنفيذ. (Abstraction/Decoupling)
✅بيسهل اختبار الوحدة (unit testing) عن طريق السماح باستخدام الكائنات الوهمية (mocks).
✅بيعزز (loose coupling) عشان تصمم نظام مرن (Flexible).
✅بيدعم حقن التبعيات (Dependency Injection) لتحسين قابلية التوسع (Extensibility)
✅بيحسن صيانة الكود عن طريق تشجيع التصميم القائم على الوحدات (Modules).
✅بيطبق مبدأ تقسيم الانترفيس (ISP) من مبادئ SOLID.
✅بيسهل تبديل التنفيذات المختلفة في وقت التشغيل Runtime polymorphism.
✅بيساعدك على تجميع السلوكيات المختلفة بشكل مغلق عن التفاصيل الداخلية Encapsulation.
✅ تقدر تعيد استخدام الكود بتاعك Reusability بسهولة في مشاريع مختلفة او في أقسام مختلفة من المشروع بدون تكرار.
✅ بيحدد عقد بين الكلاس اللي بيطبقه واي كود خارجي يتعامل معاهContract-Based Design وده يعرف ايه السلوكيات اللي لازم تكون موجودة، وده بيزود الثقة في النظام.
✅ بتخلي كل كلاس يركز في حاجة معينة Separation of Concerns وده بيبسط عملية تطوير الكود وصيانته.
✅ بيسهل التكامل ما بين الأنظمة المختلفة Interoperability
في القناة عندي تقريبا تم شرح النقاط اللي فوق باستفاضة!
السلام عليكم ورحمة الله وبركاته.
رجاءًا من يتواصل خاص ولديه استفسار أو سؤال، تكون رسالته مكتوبة والسؤال مباشر.
ولا ترسلو رسائل صوتيه لتسهيل الرد عليكم.
ودمتم بخير. 🤍
أدمن : محمد الصيفي
شفت خطأ شائع وحبيت اوضحه
الريبوزيتوري مش المكان المناسب اللي اتعامل فيه مع DTO
يعني ما ينفع عمل الحركة
public IEnumerable GetStudents( ..... )
{
}
الريبوزيتوري بيتعامل مع الدومين مباشرة فالاصح
public IEnumerable GetStudents( ..... )
{
}
وعلى مستوى التطبيق Application Layer او ال Presentation
بيكون مسؤولية ال Service التحويل من Domain Model الي DTO
ويفضل استخدام Mapping Library
قناة احمد علي على تيليجرام ( شروحات تقنية ، تطبيقات ، أفلام ومسلسلات ، خلفيات ، و المزيد )
Last updated 1 month ago
يرمز تيليجرام إلى الحريّة والخصوصيّة ويحوي العديد من المزايا سهلة الاستخدام.
Last updated 3 days ago
- بوت الإعلانات: 🔚 @FEFBOT -
- هناك طرق يجب ان تسلكها بمفردك لا اصدقاء، لا عائلة، ولا حتى شريك، فقط انت.
My Tragedy Lies With Those Things That Happen in One Second And Remain
- @NNEEN // 🔚: للأعلانات المدفوعة -
Last updated 3 weeks, 2 days ago