البرمجة
أساسيات الـ System Design
12 ديسمبر 202513 دقائق قراءة
مفاهيم أساسية في تصميم الأنظمة للمقابلات والمشاريع الكبيرة.
لماذا System Design؟
تطبيق يخدم 100 مستخدم يختلف عن ملايين. فهم المبادئ ضروري للتوسع والمقابلات.
المفاهيم الأساسية
Scalability = التوسع مع زيادة الحمل
Availability = العمل بدون توقف
Consistency = البيانات متسقة
Partition Tolerance = يعمل رغم فشل جزئي
Horizontal vs Vertical Scaling
Vertical (Scale Up):
- زيادة قوة السيرفر الواحد
- محدود ومكلف
Horizontal (Scale Out):
- إضافة سيرفرات أكثر
- مرن ويتطلب تصميم مختلف
Load Balancing
Client → Load Balancer → Server 1
→ Server 2
→ Server 3
Algorithms:
- Round Robin
- Least Connections
- IP Hash
Caching
Client → CDN → Load Balancer → App → Cache → DB
Cache Strategies:
- Cache-Aside: التطبيق يدير الـ cache
- Write-Through: كتابة للـ cache والـ DB معاً
- Write-Behind: كتابة للـ cache، والـ DB لاحقاً
الخلاصة
System Design مهارة تتطور بالممارسة. ادرس أنظمة حقيقية كـ Twitter وNetflix.
الوسوم
#System Design#Architecture#Scalability#مقابلات#متقدم