Redux: الاقتراح: إعادة تسمية "المخازن" إلى "المخفضات"

تم إنشاؤها على ١٨ يونيو ٢٠١٥  ·  54تعليقات  ·  مصدر: reduxjs/redux

إذا كنت أتذكر بشكل صحيح ، gaearon ، فقد قلت إننا سنجري هذا التغيير بمجرد وصول Redux إلى 500 نجمة. :)

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

discussion docs

ال 54 كومينتر

-1 يبدو منحنى التعلم في هذا الريبو حادًا بالفعل. دعونا لا نجعل الأمر أكثر حدة من خلال تقديم مصطلحات جديدة لمستخدمي التدفق الجدد.

داخليًا ، يمكن أن يطلق عليها مخفضات ، احتفظ بها علنًا كمخازن حتى يسهل تذوقها.

أعتقد بصدق أن الأمر أكثر إرباكًا كما هو الآن. تمامًا ، ولكن كان لدي العديد من الأشخاص ، أفسدت IRL جميعًا عند التفكير في كيف يمكن أن يكون "المتجر" عديم الجنسية.

الخصائص الرئيسية "للمخازن" في الجريان التقليدي هي أنها 1) حالة الاحتفاظ ، و 2) تصدر أحداث التغيير. كلاهما غير صحيح في Redux.

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

أتساءل عما إذا كان هناك مصطلح لا يبدو FP-ish ولكنه ليس "متجر" أيضًا.
المجالات؟

OTOH يطلق عليه بالفعل Redux لذلك على الأقل أصوات "المخفض" ذات الصلة.

ماذا عن "تحديثات الخطوة" ، أو "السائر" ، التي تحرك حالتك خطوة واحدة إلى الأمام. لقد رأيت هذا مستخدمًا في أدب Elm ، حيث توجد وظيفة تسمى step أو update أو next

تحتوي المجالات على الأمتعة node.js.

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

المخفضات جيدة إذا كنت حريصًا على تغيير اسمها.

خاصة لأن "المخفض" هو وصف دقيق لما هي عليه بالفعل :)

محدثون؟ يبدو وصفيًا + أقل غطرسة من المخفضات.

أنا أحب reducer أيضًا

أعتقد أنني لا أفهم لماذا "المخفض" مغرور. أليس من الأفضل استخدام المصطلح الفعلي بدلاً من اختراع مصطلح جديد أقل وصفيًا؟

أعتقد أن كلاهما قد يكون صحيحًا ، ويعتمد ذلك من وجهة النظر التي تراها: _ مُخفِّض_ للأفعال (إلى الحالة) ، أو _ محدث_ للحالة.

"المحدث" يعني أن لها الطفرات. يوضح "المخفض" أنك تعيد حالة جديدة ، وليس تعديل الحالة القديمة.

أعتقد أن هذه نقطة مؤيدة قوية ، قد تساعد في مسألة عدم العمل بشكل صحيح مع الطفرات

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

ومع ذلك ، بناءً على النمو السريع لما يلي هنا ، يجب أن نفعل شيئًا صحيحًا :)

أنا منفتح على تغيير "المتاجر" إلى "المخفضات" إذا حدث ذلك مع مستندات أفضل.

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

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

const store = createStore(reducers);

<Provider store={store} />

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

يعجبني هذا على الرغم من أن store.dispatch يبدو خطأ في ذلك الوقت.

نعم ، هذا هو الشيء الوحيد الذي لا أحبه حقًا ، لكن الطرق الأخرى منطقية: store.getState() ، store.setState() ، store.subscribe()

الآن بعد أن فكرت في الأمر ، نحن لا "نرسل" أي شيء حقًا.
لاف ، التسمية هي حفرة أرنب.

حسنًا ، ما لدينا حتى الآن هو:

  • عمل (المبدعين)
  • (مخزن) المخفض
  • وظائف وسيطة
  • وظائف رد الاتصال (المستمع)
  • شيء يؤدي إلى تشغيل سلسلة استدعاء الوظائف (تسمى المرسل)
  • شيء يحمل الحالة المتغيرة (مع واضعي وحاصلون)

ربما يمكننا التراجع وإعادة التفكير في التسمية؟

ربما store.dispatch ليس سيئًا للغاية. يمكننا فقط توضيح أنه بدلاً من العديد من المتاجر ، لدينا متجر واحد ، وأنت تقوم بإنشائه من Reducers. لا توجد متاجر = لا حاجة إلى مرسل منفصل ، لذلك dispatch متاح في المتجر مباشرة.

gaearon أوافق.

emmenko ملخص جيد. يجب أن يميز أي تصنيف للمصطلحات بين _مُصنعي النشاط_ و_الأفعال_. يجب أن تميز أيضًا بين _dispatcher_ أو _dispatch Strategy_ ، والتي تشمل برمجيات وسيطة + مخفضات ، بالإضافة إلى طريقة _dispatch_ التي تؤدي إلى _dispatch _لقة ____.

هيا بنا نقوم بذلك:

  • إعادة تسمية المتاجر إلى المخفضات
  • أعد تسمية "مثيل Redux" إلى Store وفقًا لـ https://github.com/gaearon/redux/issues/137#issuecomment -113252359
  • اشرح أنه إذا قمت بالتحديق في متاجر Flux التقليدية ، فسترى المخفضات محاصرة فيها

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

gaearon سوف أتطوع لقيادة هذا :) لدي مخطط بدأ بالفعل.

شكر: +1:

سوف أتطوع لقيادة هذا

شكرا! : +1:: +1:: +1:

شخصيًا ، كنتيجة نهائية ، أود حقًا أن يكون لدي موقع ويب تم إنشاؤه تلقائيًا مع:

  • ابدء
  • دروس
  • أمثلة حية

.. وكميزة لطيفة:

  • إنشاء الوثائق a-la docco (على سبيل المثال: jasmine ) بحيث يتم شرح كود المصدر بوضوح

لكن البدء بخفض السعر و jsdoc هو بالطبع خطوة أولى ؛)

حسنًا ، أعتقد أن الخطوة الأولى هي كتابة المستندات بصيغة Markdown ، ثم يمكننا نقلها إلى موقع مستندات رائع حقًا. : +1: لـ JSDoc أيضًا. سأقوم بأخذ طعنة أخيرة على https://github.com/gaearon/redux/pull/87 الليلة ولكني لست متأكدًا من أن التعليقات التوضيحية لـ Flow تستحق العناء في هذه المرحلة ما لم نتخلص من قاعدة الرموز الخاصة بالحمل الزائد للوظيفة. (أو ما لم يعلمني أحدهم كيفية كتابتها بشكل صحيح دون شكوى Flow.)

أعتقد أن التدفق ليس أولوية أجهزة الصراف الآلي.

+1 للمخازن تسمى مخفضات.

لم أكن مغرمًا بتسمية هذه الأشياء الأكثر إعلانًا وعديمة الجنسية بالمتاجر.

أنا أحب أفكار الاسم الجديد. أقترح أيضًا إعادة تسمية Connector إلى شيء مثل Subscription . Connector عام جدًا ، وبينما أدرك أنه يربط حالة redux والمرسل بأطفاله ، أعتقد أن الاشتراك هو وصف أفضل لما يحدث. إنه أمر ممتع إلى حد ما أن تحصل على مرسل مع اشتراكك ، لكنني أعتقد أن هذا جيد.

-1 بالنسبة إلى المتاجر التي يطلق عليها مخفضات ، كاسم ليس بديهيًا جدًا للمستخدمين الجدد (على الأقل أولئك الذين ليس لديهم خلفية برمجة وظيفية). ربما يكون المحدث أو المحول أفضل ، أو Store Updater إذا أردنا أن نكون أكثر وضوحًا بشأنه.

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

كيف تحب المحولات؟

+1 للمخفضات

كما لاحظ faassen على Twitter ، فإن الحجة الجيدة لـ "المخفضات" هي إعادة الاتصال باسم المشروع. لدينا فرصة لنقول "هذا مثل Flux ، لكن هناك متجر واحد. تمامًا كما يمكنك تكوين تطبيقك في مكونات React ، في Redux ، يمكنك إنشاء هذا المتجر من المخفضات. يطلق عليهم Reducers لأن وظيفة مطابقة التوقيع الخاصة بهم قد تم تمريرها إلى [].reduce() : (state, action) => state . بلا بلا بلا "

ينتشر الزاوي كالنار في الهشيم ويستخدم كلمات مثل

  • التوجيه
  • عزل
  • ترجمة

تجاهل البرمجة والتحويل والتقليل أمور مختلفة. سأختار الاسم الأكثر دقة.

إذا لم يخزنوا البيانات ، فلا تتصل بهم بالمتاجر.

هل تقوم بالتحويل من نموذج إلى آخر أم أنك تختزل من عدة قيم إلى أخرى؟

محول => خريطة
المخفض => تقليل

يبدو وكأنه تقليل لي.

أنا من أجل reducers أيضًا! : +1:

استلهم من Elm. https://github.com/evancz/elm-architecture-tutorial#the -النمط الأساسي

أفضل كلمة ستكون update . المتجر هراء ، لقد كان دائمًا "نموذجًا". لا حاجة لإعادة اختراع العجلة أو إرباك الناس.

لحوم بقري مع مناداتهم بالمحدثين هو أن الناس قد يعتقدون أنه من المفترض أن يكونوا متحولين. إذا كان من الممكن أن تساعد التسمية في توضيح الطبيعة غير المتغيرة ، فسيكون ذلك بمثابة مكافأة كبيرة.

هل تقوم بالتحويل من نموذج إلى آخر أم أنك تختزل من عدة قيم إلى أخرى؟

أنا أتراكم. "كيف يحول إجراء ما حالة إلى حالة أخرى". من الناحية المفاهيمية ، يقومون بتقليل العديد من الإجراءات من الحالة الأولية (غير المحددة) ، والحفظ هو مجرد تحسين.

محول الدولة

حاول تجنب إعادة الاختراع / إعادة الاكتشاف قدر الإمكان. كان الناس يطلقون عليه اسم reduce و scan و fold و update .

يبدو أن reducer دقيق من منظور جافا سكريبت ...
لا ترى قيمة تسميتها من مفهوم لغة أخرى ، حتى لو كانت أكثر دقة.

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

vramana ليس map ، إنه reduce ، لأنه يأخذ state المتراكم سابقًا و action و يُرجع state جديد

إذا كانت لديك مجموعة من جميع إجراءات تطبيقك ، فستستخدم هذه الوظيفة لتقليلها إلى حالة التطبيق النهائية:

function reducer(state, action) {
  // switch (action.type) ...
  // return state;
}
const finalState = allAppActions.reduce(reducer, initialState);

الآن ، ما لديك حقًا هو stream من actions في الوقت المناسب ، وهو من الناحية النظرية نفس المصفوفة ، ولكن مع مرور الوقت (يمكنك تقليلها إلى stream من state s).

أحب أن أفكر في الأمر على أنه إسقاط (لسجل الأحداث إلى بنية بيانات).
اعتاد الناس في DB على تسمية هذا "وجهات النظر المادية".

أنا أحب التقليل أو الطي ، إنه مفهوم جيدًا من قبل المجتمعات المختلفة

أنا أفضل المحولات على المخفضات: من الواضح ما تعنيه من استخدام اللغة الإنجليزية العادي للكلمة.

مخفضات.
أولاً ، إنها مكتبة جافا سكريبت وتحتوي جافا سكريبت على [].reduce(reducer, initialState) .
ثانيًا ، Redu (cer) x موجود بالفعل في اسم المكتبة.
ثالثًا ، https://blog.javascripting.com/2015/06/19/flux-no-more-stores-meet-reducer/ ، سيستخدم الأشخاص والمكتبات الأخرى مصطلح "المخفضات".

المخفض دقيق وله سابقة في Vanilla JS. لست متأكدا كيف يمكن تحسين ذلك.

المخفضات يجب أن يكون ذلك الحين.

(تابع التقدم في # 140)

أحيانًا أجد مناقشات قديمة تسميهم "متاجر" وأتعجب من مدى إرباكها السخيف في الإدراك المتأخر.

"حاوية الدولة"؟

نعم كان هذا تغييرًا جيدًا :)

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات