System Design
كورس كامل في خمس مراحل، من ازاي الكمبيوترات بتتكلم مع بعض، لحد ما تصمّم Netflix و Uber من الصفر. وبعده سبع أدلة تفصيلية في قواعد البيانات. شرح بالتفصيل، أمثلة عملية، و diagrams.
دوّر في كل المحتوى بـCtrl+K
- مراحل
- 5مراحل
- أدلة تفصيلية
- 7أدلة تفصيلية
- قسم
- 121قسم
- بالمصري
- 100%بالمصري
المراحل الخمسة
اتبعها بالترتيب، وكل مرحلة مبنية على اللي قبلها.
الأساسيات
Foundations
المفاهيم اللي كل system design مبني عليها. لو فهمتها صح، باقي المراحل هتبقى سهلة.
- Networking Basics
- Request Lifecycle
- Client-Server
- APIs
- Latency vs Throughput
- Scaling
Storage & Databases
Storage & Databases
ازاي تختار قاعدة البيانات الصح، تخليها سريعة، و تكبّرها لما الـ data تزيد.
- SQL vs NoSQL
- Indexing
- Replication
- Sharding
- Consistent Hashing
- CAP & ACID
Scalability & Performance
Scalability & Performance
القلب اللي بيفرّق بين developer و senior engineer. ازاي تخلي السيستم أسرع و يستحمل millions.
- Caching
- Load Balancers
- Message Queues
- Rate Limiting
- Monitoring
Distributed Systems
Distributed Systems
القمة في System Design. لما السيستم بتاعك بيشتغل على عشرات أو مئات السيرفرات، إزاي تخليهم يتفقوا.
- Microservices
- Service Discovery
- Consensus
- Event-Driven
- Distributed Tracing
- SPOF & Redundancy
Case Studies
Case Studies
دلوقتي بنطبّق كل اللي اتعلمناه. 6 أنظمة حقيقية، نصممها من الصفر.
- URL Shortener
- Twitter Feed
- YouTube
- Uber
- Netflix
الأدلة التفصيلية
تعمّق في قواعد البيانات. مش مرتبة زي المراحل، اقرا اللي محتاجه وقت ما تحتاجه.
تصميم قواعد البيانات من الصفر
إزاي تفكر في الجداول، العلاقات، والـ schema قبل ما تكتب سطر كود واحد.
خصائص ACID في قواعد البيانات
الـ ٤ ضمانات اللي بتخلي قواعد البيانات تستحمل crashes, races, و failures من غير ما البيانات تتلخبط.
الـ Transactions عملياً
من الـ BEGIN للـ COMMIT: كل اللي محتاج تعرفه عشان تستخدم transactions صح في كودك،
أنواع الـ Locks في قواعد البيانات
إزاي قاعدة البيانات بتدير آلاف الـ transactions في نفس الوقت من غير ما البيانات تتلخبط؟
تكرار البيانات (Replication)
إزاي تخلي عندك نسخ متعددة من قاعدة البيانات بتشتغل سوا؟ Failover، read scaling، disaster recovery:
تقسيم البيانات (Partitioning)
إزاي تدير جداول ضخمة بمليارات الـ rows بدون ما الـ queries تبطل تشتغل؟
توزيع البيانات (Sharding)
لما قاعدة بيانات واحدة مش هتستحمل. إزاي توزّع بياناتك على سيرفرات متعددة عشان تخدم مليارات الـ users؟