DanLevy.net

المزالق في وثائق Promise

تجنب مشكلات الوثائق الشائعة

Hero image for المزالق في وثائق Promise

اكتشاف الأنماط المضادة للوعود في نتائج بحث جوجل والمكتبات الشائعة.

craig-whitehead-433328-unsplash.webp

دعني أبدأ باعتراف: أنا مذنب بكتابة نفس «الأنماط المضادة» التي أنتقدها أدناه، كما أن العديد من مطوري JavaScript مذنبون أيضًا. ليس ما طرحته موجَّهًا شخصيًا أو حتى إلى المؤلفين الأصليين. أنا فقط أقوم بمراجعة كود للأنماط الشائعة — آمل أن أنقل فهمًا لأولوياتي وعمليات التفكير النقدي.

آمل أن تتمكن من اكتشاف العلامات التحذيرية للوعود السيئة بعد فهم هذا المشروع.

  1. CallbackHell.com
  2. StrongLoop
  3. RisingStack
  4. مكتبة Q

CallbackHell.com

المصدر: http://callbackhell.com/ CallbackHell.com


StrongLoop

المصدر: https://strongloop.com/strongblog/node-js-callback-hell-promises-generators/ strong loop


RisingStack

المصدر: https://blog.risingstack.com/node-js-async-best-practices-avoiding-callback-hell-node-js-at-scale/ هذه مقالة متينة جدًا. لدي فقط ملاحظة واحدة:

Rising Stack


مكتبة Q

المصدر: https://github.com/kriskowal/q

مكتبة Q هي واحدة من أكثر المكتبات استخدامًا وأقدمها المرتبطة بـ “الوعود”. وبالتالي فهي تعاني من أمثلة قديمة وحاجتها للحفاظ على التوافق مع الإصدارات السابقة. أقول “مرتبطة بـ ‘الوعود’” لأنني أشعر أن Q تدور في الحقيقة حول نمط deferred.

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

الخلاصة: نمط deferred هو نمط مضاد مؤلم - فهو لا يحسن شيئًا تقريبًا مقارنة بنهج الاستدعاء الخلفي النموذجي.

مثال أول لـ Q

نمط deferred المضاد لـ xmlHTTP في Q

يُرجى إلقاء نظرة على (ووضع نجمة) مشروع Github المرافق لهذه المقالة، الهروب من جبل الاستدعاء الخلفي

هدف المشروع: البحث وتطوير أنماط لغوية وظيفية أفضل في JavaScript.