هندسة البرمجيات وتصميم الأنظمة
كيف تصمم الكود والأنظمة الكبيرة، وكيف تختار قاعدة البيانات والطوابير والبحث، وكيف تبني أنظمة مشهورة.
معمارية البرمجيات وتصميمها Software Architecture & Design
متوسطالكود الذي تكتبه اليوم سيعدله غيرك بعد سنة، والقرارات الكبيرة مثل قاعدة البيانات وتقسيم الخدمات تنسى أسبابها إذا لم تكتب، لذلك تعلم كيف تنظم الكود وتوثق القرارات قبل أن تنتقل إلى الأنظمة الموزعة.
- التصميم والمعمارية: أربعة مستويات لنشاط واحد
- مبادئ التصميم Design Principles بأمثلة قبل وبعد
- ما هي جودة الكود Code Quality وكيف تقيسها؟
- أنماط التصميم Design Patterns التي تقابلها فعلاً
- Clean Architecture: كيف تعزل منطق العمل عن قاعدة البيانات
- التصميم الموجه بالمجال Domain-Driven Design ببساطة
- توثيق المعمارية: مخططات C4 وسجلات القرارات المعمارية ADR
- أنماط المعمارية Architecture Styles ومتى تختار كلاً منها
8 من 8 منشورة
تصميم الأنظمة والأنظمة الموزعة
متقدمعندما يكبر تطبيقك من سيرفر واحد إلى عدة خدمات وسيرفرات تظهر مشكلات لا تراها في البداية: البيانات المتعارضة، والرسائل المكررة، والخدمة التي تتوقف جزئياً، لذلك تعلم المفاهيم التي تبنى عليها الأنظمة الكبيرة قبل أن تختار الأدوات.
- مدخل إلى تصميم الأنظمة: من سيرفر واحد إلى ملايين المستخدمين
- كيف تصمم API يبقى متوافقاً مع عملائه بعد سنة
- الفرق بين Tiers وLayers: متى يكون نظامك ثلاثي الطبقات فعلاً؟
- الأنظمة الموزعة للمبتدئين: ماذا يحدث عندما تنقطع الشبكة
- كيف بنى Stack Overflow موقعه بسيرفرات قليلة؟
- تعدد المستأجرين Multi-Tenancy في SaaS للمبتدئين
- تطبيق SaaS متعدد المستأجرين عملياً مع Row-Level Security
- تكامل منصة SaaS مع أنظمة العميل دون خلط المستأجرين
- التخزين المؤقت Caching بالتفصيل: الاستراتيجيات والإبطال
- تحديد معدل الطلبات Rate Limiting وخوارزمياته
- Idempotency: كيف تجعل العملية آمنة عند تكرارها
- المعاملات الموزعة: Saga ونمط Outbox بدل 2PC
- Event Sourcing وCQRS: متى تستحق التعقيد؟
- Monolith أم Microservices؟ قرار صادق للفرق الصغيرة والكبيرة
- اكتشاف الخدمات وإعداداتها مع Consul وetcd
- كيف تمنع خدمة بطيئة من إسقاط نظامك كله؟
- التتبع الموزع Distributed Tracing مع OpenTelemetry
- ما هي بوابة API Gateway ومتى تحتاجها؟
- Kong أم APISIX أم Tyk أم KrakenD؟ أدوات بوابات API
- Reverse Proxy أم Load Balancer أم API Gateway؟
- منصة صلاحيات مركزية لخدماتك Microservices
- OpenFGA عملياً: نموذج العلاقات من التصميم إلى الإنتاج
- OPA عملياً: سياسات ABAC لخدماتك وبواباتك
23 من 23 منشورة
كيف تبني أنظمة مشهورة؟ دراسات حالة
متقدمأفضل طريقة لتفهم تصميم الأنظمة أن تبني في ذهنك نظاماً تعرفه وتستخدمه كل يوم، فترى أين تكمن المشكلة الصعبة فيه وكيف تحلها الشركات التي تشغله.
- كيف يختار تطبيق التوصيل المندوب؟ محرك التوزيع Dispatch
- تتبع مواقع المندوبين لحظياً: من الهاتف إلى الخريطة
- المحفظة الرقمية من الداخل: دفتر القيد المزدوج Ledger
- كيف تبني نظام حجز تذاكر يتحمل لحظة فتح البيع
- كيف تبني محرك تداول ينفذ أوامر Limit وStop لحظة وصول السعر
- كيف تبني تطبيق محادثة مثل WhatsApp لملايين المستخدمين
- كيف تبني نظام إشعارات يصل إلى ملايين المستخدمين
- أنظمة الحشود الكبرى: كيف تصمد في مواسم الحج والعمرة
- لماذا تفصل مدخل منصتك عن مخرجها؟ Ingress وEgress
- تكامل منصة SaaS مع أنظمة العميل دون خلط المستأجرين
- تجربة عملية: تكامل منصة SaaS مع أنظمة العميل
- كيف تبني تطبيق خرائط وملاحة مثل هدهد وGoogle Maps؟
- كيف تبني منصة فيديو عند الطلب مثل Netflix
- كيف تبني تطبيق بث مباشر مثل Jaco وTwitch
- كيف تبني تطبيق فيديو قصير مثل TikTok
- بوابة تفتح تلقائياً بقراءة لوحة السيارة: مشروع عملي
- كيف بنى Stack Overflow موقعه بسيرفرات قليلة؟
- كيف تبني نظام توصية من الصفر بلغة Python
- كيف تبني منصة قيادة وتحكم لأسطول طائرات مسيرة
19 من 19 منشورة
قواعد البيانات
متوسطكل تطبيق تستضيفه يحفظ بياناته في قاعدة بيانات، وأغلب الكوارث التي نراها سببها قاعدة بيانات بلا نسخ احتياطي أو بلا حدود للذاكرة، لذلك افهم الأنواع أولاً ثم أدر كل نوع بالطريقة الصحيحة.
- أنواع قواعد البيانات ومتى تختار كل نوع
- تصميم قواعد البيانات: التطبيع Normalization ومتى تتخلى عنه
- الفهارس Indexes: لماذا تسرع الاستعلام وكيف تقرأ EXPLAIN
- كيف تخزن قاعدة البيانات بياناتك من الداخل
- الأقفال Locks والجمود Deadlock في قواعد البيانات
- PostgreSQL للجداول الضخمة: عشرات الملايين من الصفوف
- تقسيم الجداول Partitioning وتوزيعها على السيرفرات Sharding
- Citus: توزيع PostgreSQL على عدة سيرفرات
- PostgreSQL على Kubernetes مع CloudNativePG
- PostgreSQL للفرق: تثبيت آمن وصلاحيات واضحة
- استعادة PostgreSQL إلى أي لحظة مع pgBackRest
- Connection Pooling: لماذا الاتصال بقاعدة البيانات مكلف
- ضبط أداء PostgreSQL بالقياس وليس بالتخمين
- متى تستخدم العروض المحفوظة Materialized Views في تطبيقك؟
- MySQL أم MariaDB؟ ومتى تختار أياً منهما
- MongoDB: قاعدة بيانات المستندات ومتى تناسبك
- Redis وبديله المفتوح Valkey: التخزين المؤقت والجلسات
- TimescaleDB وInfluxDB لبيانات السلاسل الزمنية Time-Series
- ClickHouse للتحليلات على بيانات ضخمة
- واجهات إدارة قواعد البيانات: pgAdmin وAdminer وCloudBeaver
- PostgreSQL أم MySQL أم MongoDB؟
- PostgreSQL لكل شيء: متى يكفيك ومتى تحتاج غيره؟
22 من 22 منشورة
التخزين وتوصيل المحتوى Storage وCDN
متوسطكل خدمة تكتب بياناتها في مكان ما: قرص، أو مجلد مشترك، أو تخزين كائنات S3، وكل نوع يناسب استخداماً مختلفاً، ثم يأتي دور شبكة توصيل المحتوى CDN لتصل ملفاتك إلى الزوار بسرعة أينما كانوا.
- أنواع التخزين وواجهة S3: أين تضع بيانات تطبيقك؟
- S3 من داخل تطبيقك: الصلاحيات والروابط الموقعة والتكلفة
- تخزين الكائنات S3 على سيرفرك: التثبيت والبنية
- أي تخزين S3 مستضاف ذاتياً يناسبك؟ وما الذي تغير في MinIO
- Ceph للمبتدئين: تخزين موزع يتحمل تعطل السيرفرات
- Ceph أم GlusterFS؟ أي تخزين موزع تختار اليوم
- النسخ الاحتياطي إلى S3 مع Object Lock ضد الفدية
- كيف تعمل شبكة توصيل المحتوى CDN وما الذي تحفظه
- التخزين المؤقت أمام موقعك: Varnish أم Nginx؟
9 من 9 منشورة
الطوابير وبث الأحداث Queues وStreaming
متقدمعندما يرسل تطبيقك رسالة أو يعالج ملفاً أو ينقل حدثاً بين خدمتين، فالطابور Queue يجعل العمل لا يضيع إذا تعطلت خدمة، ويجعل كل جزء يعمل بسرعته، لذلك افهم المفاهيم ثم اختر الأداة المناسبة لحجم عملك.
- الطابور Queue للمبتدئين: لماذا تحتاجه وكيف يعمل
- الطابور Queue أم بث الأحداث Event Streaming؟
- RabbitMQ: طوابير موثوقة لتطبيقاتك على سيرفرك
- Apache Kafka: بث الأحداث بأحجام ضخمة
- Redpanda: بديل متوافق مع Kafka وأخف تشغيلاً
- NATS: رسائل سريعة وخفيفة للخدمات المصغرة
- طوابير المهام فوق Redis وValkey: متى تضيع المهمة؟
- RabbitMQ أم Kafka أم NATS؟ كيف تختار وسيط الرسائل
- نقل تغييرات قاعدة البيانات CDC مع Debezium
9 من 9 منشورة
محركات البحث والفهرسة
متقدمالبحث داخل تطبيقك أو مستنداتك أو سجلاتك يحتاج فهرساً Index يجعل الإجابة في أجزاء من الثانية بدل المرور على كل سطر، لذلك افهم كيف تعمل الفهرسة ثم اختر المحرك بحسب حجم بياناتك.
- كيف يعمل البحث؟ الفهرس المعكوس Inverted Index وترتيب النتائج
- البحث في النصوص العربية مع OpenSearch وMeilisearch
- مجموعة ELK: Elasticsearch وLogstash وKibana
- OpenSearch: البديل المفتوح لـ Elasticsearch وقصة الترخيص
- Meilisearch: مربع بحث فوري داخل تطبيقك
- Typesense: بحث سريع يتحمل الأخطاء الإملائية
- أي محرك بحث يناسب تطبيقك ونصوصك العربية؟
- Manticore Search وApache Solr للأحمال الكبيرة
- البحث الدلالي Semantic Search بالـ Embeddings
- SearXNG: محرك بحث خاص لمؤسستك يبحث في الويب
10 من 10 منشورة