الدرس 1 من 6

المفردات المتقدمة لهندسة البرمجيات

المفردات المتقدمة لهندسة البرمجيات

12 دقيقة للقراءة

في مستوى المهندس الأول والرئيسي، يُتوقع منك مناقشة أنماط البنية المعقدة واستراتيجيات الجودة ومقايضات تصميم الأنظمة بدقة. هذه المفردات تخدم كلاً من المطورين ومهندسي ضمان الجودة.

أنماط البنية

المصطلح التعريف مثال على الاستخدام
Event-driven architecture (البنية المبنية على الأحداث) تصميم تتواصل فيه الخدمات عبر إنتاج واستهلاك الأحداث بدلاً من استدعاءات API المباشرة "We're moving to an event-driven architecture to decouple services."
CQRS (فصل الأوامر والاستعلامات) فصل عمليات القراءة والكتابة إلى نماذج مختلفة "CQRS lets us optimize reads independently."
Saga pattern (نمط الملحمة) إدارة المعاملات الموزعة عبر خدمات متعددة باستخدام تسلسل من المعاملات المحلية "We implemented the saga pattern for the checkout flow."
Strangler fig (التين الخانق) استبدال نظام قديم تدريجياً عبر توجيه حركة المرور للتطبيقات الجديدة "We're using strangler fig to migrate off the monolith."
Hexagonal architecture (البنية السداسية) عزل منطق الأعمال عن الاهتمامات الخارجية عبر واجهات محددة "Hexagonal architecture makes our domain logic testable."
Bounded contexts (السياقات المحددة) حدود صريحة حيث يُطبّق نموذج مجال معين "The 'User' means something different in each bounded context."

مصطلحات هندسة الجودة

المصطلح التعريف مثال على الاستخدام
Chaos engineering (هندسة الفوضى) تجربة على النظام لبناء الثقة في قدرته على تحمل الظروف المضطربة "Our chaos engineering program randomly terminates pods."
Mutation testing (اختبار الطفرات) إدخال تغييرات متعمدة في الكود لقياس فعالية مجموعة الاختبارات "Mutation testing revealed assertion gaps."
Contract testing (اختبار العقود) التحقق من أن خدمتين تتواصلان بشكل صحيح عبر عقد مشترك "We use contract testing between frontend and API."
Property-based testing (الاختبار المبني على الخصائص) توليد مدخلات عشوائية للتحقق من صحة خصائص الكود "Property-based testing found an edge case."
Shift-left testing (اختبار الإزاحة لليسار) نقل أنشطة الاختبار لمرحلة أبكر في دورة التطوير "Our shift-left strategy means testing before opening a PR."
Test trophy (كأس الاختبار) نموذج يُركّز على اختبارات التكامل كأكبر طبقة (بديل عن هرم الاختبار) "We follow the test trophy model."

مصطلحات تصميم الأنظمة

المصطلح التعريف مثال على الاستخدام
Back-pressure (الضغط العكسي) آلية يُشير فيها النظام المتلقي بالإبطاء عند عدم القدرة على المواكبة "We need back-pressure on the message queue."
Circuit breaker (قاطع الدائرة) إيقاف الاستدعاءات لخدمة فاشلة بعد تجاوز حد الفشل "The circuit breaker tripped on the recommendation service."
Bulkhead pattern (نمط الحاجز) عزل أجزاء النظام لمنع تسلسل الفشل "We isolate the payment thread pool from general requests."
Eventual consistency (الاتساق النهائي) ضمان تقارب جميع النسخ لنفس الحالة مع مرور الوقت "There's a brief window where users might see stale data."
CAP theorem (نظرية CAP) نظام موزع يوفر حداً أقصى من اثنتين من ثلاث: الاتساق، التوفر، تحمل التقسيم "We chose AP — availability over strong consistency."
Idempotency (التكرارية) خاصية أن العملية تُنتج نفس النتيجة بغض النظر عن عدد مرات التنفيذ "All payment endpoints are idempotent."

مصطلحات عملية التطوير

المصطلح التعريف
Trunk-based development (التطوير المبني على الفرع الرئيسي) جميع المطورين يلتزمون بفرع رئيسي واحد بشكل متكرر
Feature flags (أعلام الميزات) مفاتيح تبديل للتحكم في ظهور الميزات بدون نشر كود جديد
Progressive delivery (التسليم التدريجي) إصدار الميزات تدريجياً باستخدام canary وfeature flags وA/B tests
RFC process (عملية RFC) عملية رسمية لاقتراح ومراجعة التغييرات التقنية الكبيرة عبر مستند مكتوب

مصطلحات تصميم API

المصطلح التعريف
GraphQL federation (اتحاد GraphQL) تكوين API واحد من خدمات GraphQL مستقلة متعددة
gRPC إطار عمل RPC عالي الأداء يستخدم Protocol Buffers
OpenAPI معيار مواصفات لوصف واجهات REST بتنسيق قابل للقراءة آلياً
Rate limiting (تحديد المعدل) التحكم في عدد الطلبات المسموح بها في فترة زمنية
Cursor-based pagination (التصفح المبني على المؤشر) إرجاع مجموعات نتائج كبيرة في أجزاء قابلة للإدارة باستخدام مؤشرات

دليل النطق

المصطلح النطق الصحيح
CQRS سي-كيو-آر-إس (تُهجّى)
Idempotent آي-ديم-بُ-تنت (التشديد على المقطع الثاني)
Saga ساغا (كالكلمة الإنجليزية للقصة الطويلة)
gRPC جي-آر-بي-سي (تُهجّى)
GraphQL غراف-كيو-إل
Bulkhead بالك-هِد
Hexagonal هِك-ساغ-ُنال

إتقان هذه المفردات هو الأساس للتواصل كمهندس في المستوى الأعلى. تدرّب على استخدامها في نقاشات البنية وتعليقات مراجعة الكود.

التالي: قراءة وتحليل مستندات بنية البرمجيات

:::

اختبار

اختبار المفردات المتقدمة لهندسة البرمجيات

خذ الاختبار