هل "تم حل" امتدادات RX مشكلة البرمجة المعقدة التي تعتمد على الأحداث؟

StackOverflow https://stackoverflow.com/questions/2075502

سؤال

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

هل كانت مفيدة؟

المحلول

أعتقد أن الامتدادات التفاعلية تبسيط بشكل كبير بعض أجزاء البرمجة المعقدة التي تعتمد على الأحداث ، لكن المشكلة ككل ليست "حل".

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

بالنسبة لبعض العينات المتميزة ، وفكرة ما يتم النظر فيه للإصدارات المستقبلية من C# للتعامل مع بعض النماذج غير المتزامنة الأكثر تعقيدًا ، أوصي بمشاهدة حديث لوكا بولونيز PDC. قدم بعض الأفكار التي يعمل عليها فريق اللغة للمساعدة في جانب التأليف من التطور غير المتزامن ، مثل "Iterator" مثل بناء الجملة لإنتاج IAsync<T> مباشرة ، مع ميزات اللغة لدعم توليد الأحداث.

نصائح أخرى

في http://channel9.msdn.com/posts/dc2010t0100-keynote-rx-curing-your-ashynchronous-programming-Lack, ، يشرح Bart de Smet بشكل ممتاز كيف يرفع معالجة تدفقات الأحداث كمفهوم من الدرجة الأولى مستوى التجريد من خلال جعلك تفكر في كيفية تنفيذك على سبيل المثال. خنق أو متميز في كل مرة بشكل غير متوقع مع الكثير من رمز الغلاية المعرضة للخطأ. يقوم هؤلاء المشغلون بتغليف هذه السلوكيات بطريقة قابلة لإعادة الاستخدام وقابلة للتأليف. لذا فإن رأيي هو أن هناك بالتأكيد مجالًا لمزيد من التطور (انظر على سبيل المثال المخاوف المتعلقة بالملاحظات الباردة) ، ولكن يجب أن تكون هذه الأدوات في صندوق أدوات كل مطور. قد تكون بنيات تدفق التحكم المعتادة تقطعها للتنفيذ المفرد ، ولكن في العالم المتزامن للغاية والموزع ، أعتقد أنه يمكن ملاحظته (أو حتى أفضل ، أحداث/خاصية) هو تجريد مناسب.

لقد رأيت للتو بث عبر الإنترنت على امتدادات RX ، ولم يتم لعبها معها ، ووجدت التفسير معقدًا للغاية ... اعتقدت أن المبدعين كانوا من رواد الفضاء المهندس المعماري.

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

ومع ذلك ، فأنا أشعر بالفضول تجاهات الأشخاص الآخرين الذين يعانون من هذا الإطار ، اعتمادًا على إجابات هذا الموضوع ، سأجربه آخر.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top