افضل تصميم موقع


لذلك أنت فضولي لتعلم هذا الشيء الجديد المسمى البرمجة التفاعلية ، وخاصة المتغير الذي يضم Rx و Bacon.js و RAC وغيرها.

تعلم أنه من الصعب ، حتى أصعب بسبب عدم وجود مادة جيدة. عندما بدأت ، حاولت البحث عن برامج تعليمية. لم أجد سوى حفنة من الأدلة العملية ، لكنهم خدشوا السطح ولم يتصدوا أبدًا لتحدي بناء العمارة بأكملها من حولها. لا تساعد وثائق المكتبة غالبًا عندما تحاول فهم بعض الوظائف. أقصد ، بصراحة ، أنظر إلى هذا:
Rx.Observable.prototype.flatMapLatest (محدد ، [thisArg])
يعرض كل عنصر من تسلسل يمكن ملاحظته في تسلسل جديد من التتابعات القابلة للملاحظة من خلال دمج مؤشر العنصر ثم يحول تسلسل يمكن ملاحظته من تسلسل يمكن ملاحظته إلى تسلسل يمكن ملاحظته ينتج قيمًا فقط من التسلسل الأكثر ملاحظًا.
بقرة مقدسة.
خبير سيو

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

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

"ما هي البرمجة التفاعلية؟"

هناك الكثير من التفسيرات والتعريفات السيئة الموجودة على الإنترنت. ويكيبيديا عامة جدًا ونظرية كالمعتاد. من الواضح أن إجابة Stackoverflow الكافية ليست مناسبة للوافدين الجدد. يبدو البيان التفاعلي وكأنه نوع من الأشياء التي تُظهرها لمدير المشروع أو لرجال الأعمال في شركتك. مصطلحات Microsoft Rx "Rx = Observables + LINQ + Schedulers" ثقيلة للغاية و Microsoftish لدرجة أن معظمنا في حيرة. مصطلحات مثل "رد الفعل" و "نشر التغيير" لا تنقل شيئًا مختلفًا على وجه التحديد عما تفعله MV * النموذجية ولغتك المفضلة بالفعل. بالطبع وجهات نظري تتفاعل مع النماذج. بالطبع يتم نشر التغيير. إذا لم يكن الأمر كذلك ، فلن يتم تقديم شيء.

لذلك دعونا نقطع الهراء.

البرمجة التفاعلية هي البرمجة مع تدفقات البيانات غير المتزامنة.

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

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

إذا كانت التدفقات محورية جدًا في Reactive ، فلنلقِ نظرة فاحصة عليها ، بدءًا من تدفق الأحداث المألوفة "النقرات على زر".
الدفق هو سلسلة من الأحداث الجارية مرتبة في الوقت المناسب. يمكن أن ينبعث ثلاثة أشياء مختلفة: قيمة (من نوع ما) ، خطأ ، أو إشارة "مكتملة". ضع في اعتبارك أن "المكتمل" يتم ، على سبيل المثال ، عند إغلاق الإطار الحالي أو العرض الحالي الذي يحتوي على هذا الزر.

لا نلتقط هذه الأحداث المنبعثة إلا بشكل غير متزامن ، من خلال تحديد وظيفة ستنفذ عند إرسال قيمة ، وظيفة أخرى عند إرسال خطأ ، ووظيفة أخرى عند إرسال "إكمال". في بعض الأحيان يمكن حذف هذين الأخيرين ويمكنك التركيز فقط على تحديد وظيفة للقيم. يسمى "الاستماع" إلى الدفق الاشتراك. الوظائف التي نحددها هي مراقبون. الدفق هو الموضوع (أو "يمكن ملاحظته") الذي يتم ملاحظته. هذا هو بالضبط نمط تصميم المراقب.

هناك طريقة بديلة لرسم هذا المخطط هي ASCII ، والتي سنستخدمها في بعض أجزاء هذا البرنامج التعليمي:

نظرًا لأن هذا الأمر يبدو مألوفًا بالفعل ، ولا أريد أن تشعر بالملل ، فلنفعل شيئًا جديدًا: سنقوم بإنشاء تدفقات حدث نقرات جديدة تم تحويلها من مجموعة حدث النقرات الأصلية.

أولاً ، دعنا نجري تدفقًا مضادًا يشير إلى عدد مرات النقر على زر. في مكتبات Reactive الشائعة ، يحتوي كل قطار على العديد من الوظائف المرتبطة به ، مثل map ، filter ، sc...

تعليقات

إرسال تعليق

المشاركات الشائعة من هذه المدونة

مواقع بتصميمات جديدة