11.1K subscribers
3.12K photos
19 videos
138 files
3.66K links
Level up daily with insider dev hacks, smart career tips, and real talk! 🚀

⚡️ Stay connected with me: linktr.ee/AliSamir

📍 To advertise on the channel: https://telega.io/c/the_developer_guide
Download Telegram
دردشة سريعة عن الـ Message Queueing ⚡️
.
.
عمرك سألت نفسك إزاي الأنظمة الكبيرة بتتعامل مع كميات مهولة من الطلبات في نفس اللحظة من غير ما تنهار؟ 🤔

الموضوع أبسط مما تتخيل… والسر في مفهوم صغير لكنه قوي جدًا اسمه Message Queueing.

الفكرة إن بدل ما السيستم يشيل الحِمل كله مرة واحدة، بنرتّب الشغل في طابور منظم، وكل حاجة بتتم واحدة واحدة.

تعال نفهم ليه الـ Message Queueing من أهم الأساليب اللي بنعتمد عليها في بناء أنظمة مرنة وقابلة للتوسع...

———

📌 إيه هي فكرة الـ Message Queue؟


تخيل أنك صاحب مطعم وطلبات الزبائن كتير جدًا. لو كل الطلبات دخلت المطبخ مرة واحدة، الطباخين مش هيعرفوا يشتغلوا، وهتلاقي الدنيا باظت.

فأنت كمدير، بتعمل نظام طابور (queue) قدام المطبخ. الطلبات تدخل واحد واحد على حسب أولوية كل طلب، والمطبخ يشتغل بالترتيب.

هو ده بالضبط اللي بيحصل في الـ Message Queueing. بدل ما السيستم بتاعك ينفّذ كل المهام في نفس اللحظة، بيحطها في طابور، ويسيب جزء معين من السيستم يعالجها واحدة واحدة.

———

📌 استخدامات الـ Message Queueing:


الإشعارات (Notifications):
لما تبعت إشعار لعدد كبير جدًا من المستخدمين، مش كلهم لازم يوصلهم الإشعار في نفس اللحظة. بدل ما السيستم ينهار، بنبعت الإشعارات للطابور، وكل إشعار يتبعت في دوره.


طلبات الدفع (Payment Processing):
لما يجي طلب دفع، بتحطه في الطابور علشان يتحقق منه ويتنفّذ بشكل آمن بدون ما يحصل تضارب.


تحليل البيانات (Data Processing):
سيستم زي Google Analytics مثلًا، بيحتاج يتعامل مع مليارات الطلبات. الطابور هنا بيخلّي كل طلب ياخد دوره في التحليل.

———

📌 إيه مميزات الـ Message Queue؟


- المرونة (Scalability):
لو الطابور طويل، نقدر نزود عدد "الطباخين" بسهولة (workers) علشان يخلصوا الشغل أسرع.

- الثبات (Reliability):
حتى لو حصل مشكلة في جزء معين من السيستم، الطابور بيضمن إن البيانات متسجلة ومفيش حاجة هتضيع.

- الفصل بين الأجزاء (Decoupling):
كل جزء من السيستم بيشتغل لوحده. اللي بيبعت الرسائل مش محتاج يعرف التفاصيل بتاعة اللي بيعالجها، والعكس.

———

📌 أمثلة على الـ Message Queue Tools:


- الـ RabbitMQ: أداة قوية وسهلة الاستخدام.
- الـ Apache Kafka: مثالية للتعامل مع البيانات الكتيرة اللي بتيجي في وقت واحد.
- الـ Amazon SQS: خدمة بسيطة وسحابية من AWS.
7
Important Things To Learn Before Backend 💯


Before diving into backend development, it’s essential to build a solid understanding of the foundational concepts that power modern web applications.

Backend development isn’t just about writing server-side code—it’s about designing systems that are scalable, secure, and maintainable.

———

https://dev.to/alisamir/important-things-to-learn-before-backend-46ib
3
WebSockets in JavaScript ⚡️

WebSockets are widely supported in modern browsers, but it's essential to check compatibility for your target audience.

You can use feature detection to determine if WebSockets are supported in the user's browser.
6
مفهوم الـ Event-Driven Programming ⚡️
.
.
الـ Event-Driven Programming (البرمجة القائمة على الأحداث) هي واحدة من أهم المفاهيم اللي بتستخدم بشكل واسع في البرمجة، خصوصًا في تطوير تطبيقات الويب والموبايل.

الفكرة ببساطة بتعتمد على إن الكود بتاعك مش بيشتغل بطريقة تسلسلية عادية، لكن بيستنى حدوث حدث (Event) معين عشان ينفذ حاجة معينة بناءً عليه.

———

الحدث ده ممكن يكون أي حاجة بتحصل أثناء تشغيل البرنامج زي إن المستخدم يضغط على زرار، أو يتحرك بالماوس، أو يكتب حاجة في حقل إدخال.

لما الحدث ده يحصل، البرنامج بيقوم يشغل قطعة معينة من الكود اسمها Event Handler. الـ Event Handler ده وظيفته إنه يعالج الحدث اللي حصل ويشوف المفروض البرنامج يعمل إيه بعد كده.

———

الميزة الكبيرة في الـ Event-Driven Programming إنها بتخلي البرامج أكتر استجابة ومرونة، يعني بدل ما البرنامج يفضل مستني يخلص كل خطوة عشان يبدأ في اللي بعدها، بيقدر يتعامل مع أحداث مختلفة في نفس الوقت.

ده بيساعد بشكل كبير في تحسين تجربة المستخدم، خاصة في تطبيقات الويب اللي بتحتاج تفاعلات سريعة من غير ما يحصل تجميد أو بطء في الأداء.

———

📌 استخدامات Event-Driven Programming

⚡️ تطوير واجهات المستخدم (UI): لما المستخدم يتفاعل مع الواجهة سواء بالضغط، السحب، أو الكتابة.

⚡️ تطبيقات الويب: زي الـ Single Page Applications (SPA) اللي بتعتمد بشكل كبير على الأحداث اللي بتحصل في الصفحة زي التنقل بين الصفحات بدون تحميل الصفحة كلها من الأول.

⚡️ تطبيقات الموبايل: تفاعلات المستخدم زي لمس الشاشة أو سحب الأيقونات بتكون مدارة بالكامل بالأحداث.

———

📌 إزاي بتشتغل Event-Driven Programming؟

الفكرة الأساسية إنك بتحدد الأحداث اللي مهتم بيها، وتربطها بـ Event Handlers. مثال بسيط بالـ JavaScript:

document.getElementById('myButton').addEventListener('click', function() {
alert('Button was clicked!');
});


في المثال ده، بنقول للزرار اللي الـ ID بتاعه "myButton" إننا عايزين نعمل حدث "click"، ولما يحصل، نشغل الكود اللي بيظهر رسالة للمستخدم.

———

📌 المزايا والعيوب

المزايا:

- تحسين تجربة المستخدم (User Experience) بإنك تخلي التطبيق بتاعك أكتر استجابة وسلاسة.
- إمكانية التعامل مع أكتر من حدث في وقت واحد من غير ما يحصل تأخير أو تحميل زائد.


العيوب:

- البرمجة القائمة على الأحداث ممكن تكون صعبة في التتبع والفهم في المشاريع الكبيرة، خصوصًا لو الأحداث بقت معقدة ومتداخلة مع بعضها.

———

📌 أمثلة عملية

» الـ JavaScript في المتصفحات: أشهر مثال للـ Event-Driven Programming، وبيتم استخدامه للتعامل مع كل حاجة بتحصل في صفحة الويب.

» الـ Node.js: بتستخدم الـ Event-Driven Programming بشكل كبير للتعامل مع الطلبات (Requests) اللي بتيجي للسيرفر، وده اللي بيخليها قوية جدًا في بناء التطبيقات اللي بتحتاج تعمل عمليات كتير في نفس الوقت (زي الشات أو تطبيقات الـ Real-time).
7
Docker Components Explained 💯
6
CSS Tip:

Use svh to stop the mobile address bar from hiding your UI.
It guarantees a perfect fit within the visible screen.
3
CSS Tip:

Create smooth page transitions with just one line of CSS:
4
7 GitHub repos for JavaScript Developers ⚡️
6