System Design & Distributed Systems
بناء الأنظمة الحديثة مش بس بيحتاج كود كويس، لكن كمان تصميم معماري ذكي يتحمّل النمو والتعقيد. في القسم ده، هنتعرف على إزاي تصمّم نظام يقدر يخدم آلاف أو ملايين المستخدمين بكفاءة واستقرار. وبنغوص في تصميم الأنظمة والأنظمة الموزعة.
How VPN Works?
المبرمجين ليهم علاقة غريبة بالـ VPN بنستخدمه بشكل يومي أو شبه يومي بس في نفس الوقت مش عارفين كل تفاصيله لأننا مش بتوع شبكات, النهارده هنتكلم عن أهم الحاجات اللي لازم أي مبرمج يعرفها عن الـ VPN: هو إيه، بيحل مشاكل إيه، بيشتغل إزاي، مميزاته وعيوبه، وإزاي تختار VPN مناسب من غير ما تقع في فخ التسويق .
Top 24 System Design Terminologies
تعالوا نشوف مع بعض شوية من أهم المصطلحات المستخدمة في تصميم الأنظمة والـ (System Design) في مجال هندسة البرمجيات باللغة العربية ، مع شرح مبسط لكل مصطلح.
Protocol Buffer (ProtoBuf)
اختيار الـ Format المناسب للـ Data Serialization أصبح موضوع حيوي حاليًا خصوصًا في التعامل مع الأنظمة اللي بتتميز بكونها Large-Scale واللي الأداء فيها حيوي ومهم جدًا. ومن أشهر الـ Formats اللي فضلت موجودة على مر السنين
Uber's Docstore Architecture
قاعدة البيانات دي بتتميز بعدة مميزات من ضمنها انها بتوفر الـ Strict Serializability Consistency Model على مستوى الـ Partition وده كان من ضمن المتطلبات اللي Uber عاوزة تحققها وبالتالي نقدر نستنج هنا ان Uber بتضحي بالـ Availability في سبيل الـ Consistency
Strategies for Read Heavy Systems
لما نيجي نتكلم عن الأنظمة اللي بتركز على عمليات القراءة أكتر من الكتابة، يعني الـ Systems اللي بيكون فيها نسبة قراءة للبيانات أكبر بكتير من نسبة الكتابة، ففيه شوية استراتيجيات ممكن نستخدمها عشان نحسن من الأداء.
How to Avoid Double Payment
أحد أكبر المشاكل اللي ممكن نواجهها في تصميم الأنظمة الخاصة بالدفع , والمعاملات المالية هي أنك تدفع العميل أكتر من مرة, وعشان كده واحنا بنصمم Payment System محتاجين ناخد في الاعتبار ان عملية الدفع لازم نضمن انها هتتم مرة واحدة فقط لا غير.
WebSockets In a Nutshell
هي عبارة عن Communication Protocol مزدوجة الاتجاه بنقول عليها Full-Duplex Communication Channels وده كله من خلال TCP Connection واحد بس. وبالتالي بتسمح بعملية الـ Real-time والـ Event-Driven Connections بين الـ Client والـ Server.
Serverless Architecture
ظهر الـ Serverless Architecture كطريقة أو نمط للتصميم يسمح للـ Developers بتحقيق الأمنية دي , وإن هم يبقوا قادرين على بناء الـ Software بدون الاهتمام بالبنية التحتية واداراتها
Database Connection Pool
تخيل تروح فرع لبنك او أي فرع لشركة تليفون عشان تستفسر عن حاجة معينة وتلاقي مفيش غير شباك واحد , هيكون ايه رد فعلك لو مع كل حد هيجي يسال عن حاجة معينة, الفرع هيروح يدور على حد يوظفه يقعد في الشباك يساعدك وبعدين يمشي الموظف ده ؟