THE_DEVELOPER_GUIDE Telegram 5665
🎯 فاهم يعني إيه Observer Pattern؟
.
.
"إزاي أخلي الأجزاء المختلفة في النظام (system) تتواصل مع بعض وتعرف إن فيه تغيير حصل… من غير ما أربط كل حاجة ببعضها وأخلي الكود معقد ومليان dependencies؟"

الموضوع يبان بسيط في الأول، بس أول ما تدخل في مشروع كبير، تلاقي الدنيا بقت spaghetti code… كل function مربوطة بالتانية، وأي تعديل صغير ممكن يبوظلك أجزاء تانية في الـ app.

في هندسة البرمجيات، فيه بعض الحلول والطرق متفق عليها بتخلّي السيستم modular، سهل الصيانة، وسهل التوسع. الحلول دي بنسميها Design Patterns.

واحد من أهم وأشهر الـ patterns اللي بيتكرر وجوده في مجالات مختلفة هو:
Observer Pattern

الـ pattern ده فكرته عامة جدًا، وممكن تلاقيه مستخدم في الـ events أو real-time updates أو distributed systems، أو حتى في أي application محتاج يتعامل مع تغييرات في state ويشاركها مع أجزاء تانية...

———

🟢 الفكرة ببساطة:

الـ Observer Pattern بيشتغل كده:

- عندك Subject: ده الـ object اللي بيمتلك الـ state.
- عندك Observers: مجموعة objects عايزين يتبلغوا بأي تغيير في الـ state.

أول ما الـ Subject يتغير، يبعت notification لكل Observers، وكل واحد فيهم يعمل update لنفسه بطريقته.
المهم إن الـ Subject مش محتاج يعرف التفاصيل عن كل Observer… مجرد يقول "أنا اتغيرت" وخلاص.

———

🟢 مثال من أرض الواقع:

تخيل إنك عامل subscribe لقناة على YouTube:

- القناة = Subject
- المشتركين = Observers

أول ما القناة تنزل فيديو جديد، يوتيوب بيبعت Notification للكل. القناة مش بتسأل "فلان عايز notification إزاي"… هي بس بتبعت والكل يتصرف.

———

🟢 ليه الـ Observer Pattern مهم؟

1- بيقلل الـ tight coupling: الـ Subject مش بيعرف التفاصيل عن Observers.
2- بيكون فيه flexibility: تقدر تضيف أو تشيل Observers بسهولة.
3- بيسهل maintenance: أي تعديل بيبقى localized، مش هيبوظ باقي الـ code.

———

في React: لما الـ state تتغير، الـ component تعمل re-render… ده نفس فكرة الـ Observer.

في Angular (RxJS): الـ Observables streams هي abstraction قوية لفكرة الـ Observer.

في JavaScript Events: كل ما تعمل element.addEventListener، أنت فعليًا بتسجل Observer.

———

وفقكم الله لكل خير 🌿
10



tgoop.com/the_developer_guide/5665
Create:
Last Update:

🎯 فاهم يعني إيه Observer Pattern؟
.
.
"إزاي أخلي الأجزاء المختلفة في النظام (system) تتواصل مع بعض وتعرف إن فيه تغيير حصل… من غير ما أربط كل حاجة ببعضها وأخلي الكود معقد ومليان dependencies؟"

الموضوع يبان بسيط في الأول، بس أول ما تدخل في مشروع كبير، تلاقي الدنيا بقت spaghetti code… كل function مربوطة بالتانية، وأي تعديل صغير ممكن يبوظلك أجزاء تانية في الـ app.

في هندسة البرمجيات، فيه بعض الحلول والطرق متفق عليها بتخلّي السيستم modular، سهل الصيانة، وسهل التوسع. الحلول دي بنسميها Design Patterns.

واحد من أهم وأشهر الـ patterns اللي بيتكرر وجوده في مجالات مختلفة هو:
Observer Pattern

الـ pattern ده فكرته عامة جدًا، وممكن تلاقيه مستخدم في الـ events أو real-time updates أو distributed systems، أو حتى في أي application محتاج يتعامل مع تغييرات في state ويشاركها مع أجزاء تانية...

———

🟢 الفكرة ببساطة:

الـ Observer Pattern بيشتغل كده:

- عندك Subject: ده الـ object اللي بيمتلك الـ state.
- عندك Observers: مجموعة objects عايزين يتبلغوا بأي تغيير في الـ state.

أول ما الـ Subject يتغير، يبعت notification لكل Observers، وكل واحد فيهم يعمل update لنفسه بطريقته.
المهم إن الـ Subject مش محتاج يعرف التفاصيل عن كل Observer… مجرد يقول "أنا اتغيرت" وخلاص.

———

🟢 مثال من أرض الواقع:

تخيل إنك عامل subscribe لقناة على YouTube:

- القناة = Subject
- المشتركين = Observers

أول ما القناة تنزل فيديو جديد، يوتيوب بيبعت Notification للكل. القناة مش بتسأل "فلان عايز notification إزاي"… هي بس بتبعت والكل يتصرف.

———

🟢 ليه الـ Observer Pattern مهم؟

1- بيقلل الـ tight coupling: الـ Subject مش بيعرف التفاصيل عن Observers.
2- بيكون فيه flexibility: تقدر تضيف أو تشيل Observers بسهولة.
3- بيسهل maintenance: أي تعديل بيبقى localized، مش هيبوظ باقي الـ code.

———

في React: لما الـ state تتغير، الـ component تعمل re-render… ده نفس فكرة الـ Observer.

في Angular (RxJS): الـ Observables streams هي abstraction قوية لفكرة الـ Observer.

في JavaScript Events: كل ما تعمل element.addEventListener، أنت فعليًا بتسجل Observer.

———

وفقكم الله لكل خير 🌿

BY DevGuide 🇵🇸


Share with your friend now:
tgoop.com/the_developer_guide/5665

View MORE
Open in Telegram


Telegram News

Date: |

Telegram channels enable users to broadcast messages to multiple users simultaneously. Like on social media, users need to subscribe to your channel to get access to your content published by one or more administrators. The Channel name and bio must be no more than 255 characters long While some crypto traders move toward screaming as a coping mechanism, many mental health experts have argued that “scream therapy” is pseudoscience. Scientific research or no, it obviously feels good. While the character limit is 255, try to fit into 200 characters. This way, users will be able to take in your text fast and efficiently. Reveal the essence of your channel and provide contact information. For example, you can add a bot name, link to your pricing plans, etc. Telegram iOS app: In the “Chats” tab, click the new message icon in the right upper corner. Select “New Channel.”
from us


Telegram DevGuide 🇵🇸
FROM American