القضبان: أفضل الممارسات لمواقع نموذج الطبقة التبعية؟

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

سؤال

ولدي التطبيق القضبان تتحرك جنبا إلى جنب بشكل جيد إلى حد ما، ولكن الحقيقة أن أفعله هذا بنفسي يعني أن بعض الاحمق الفقراء الذي في النهاية أن نرى هذا ويقول: "ماذا بحق الجحيم كنت أفكر؟ لماذا وضعت هذا هنا؟!؟! "

وأين هو أن الفقراء، آسف الروح الذهاب الى نتوقع أن نرى سلسلة من الفئات التي لا يتم استخدامها من قبل أي شيء ولكن فئة نموذج واحد؟ من الواضح، ويمكنني أن تشوك في the_model.rb جنبا إلى جنب مع الطبقة TheModel، ولكن هذا قد توسع خارج فئتين المخطط ...

وفكرت ليب، لكنها لا تحتاج إلى فوضى رأي الجميع في العالم ....

وشكرا لكم.

وسلفي الشكر لك.

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

المحلول

وتركها في the_model.rb حتى كنت في حاجة إليها في أكثر من مكان واحد. إذا كنت ريفاكتور دون داع، وأنت لا تفعل أبسط شيء يمكن ان تعمل. أنت لست في حاجة إليها ستعمل .

وعند هذه النقطة، النمط العام هو إنشاء دليل ل"مخاوف". انظر هذا المنصب مدونة كتبها خميس باك أو <وأ href = "http://marklunds.com/articles/one/394" يختلط = "نوفولو noreferrer"> هذا واحد من قبل بيتر Marklund للحصول على مزيد من المعلومات.

نصائح أخرى

في عام: اتبع القضبان اصطلاحات التسمية عند ترجمة أسماء فئة في مواقع الملفات. (وهذا هو: الحفاظ على FooHelper::Bar فئة في foo_helper/bar.rb)

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

واستخدام وحدات بمساحات والدرجة لصالحك. إذا كان لديك فئة المساعد الذي يتم استخدامه فقط من قبل (والتي تعتمد على) النموذج الخاص بك، ووضعها في مساحة الاسم من الطبقة نموذج:

class TheModel::HelperClass
end

وسيتم app/models/the_model/helper_class.rb الموقع في نظام الملفات

والشيء الذي لا يعتمد على النموذج الخاص بك يمكن ربما لا تزال namespaced

module Bar
  class Foo
  end
end

والمعيشة في bar/foo.rb، بالطبع

وربما لا يجب أن نخاف لوضع الامور التي ليست نماذج في lib - وهذا ما هو هذا الدليل <م> ل

وانا اقول المخاوف ، بينما مفيدة، ليست حقا الطريق الصحيح للذهاب لأن ذلك هو وسيلة لتقسيم <م> واحدة الصف إلى ملفات متعددة، وكنت لا يبدو أن يفعل ذلك.

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