سؤال

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

اسمحوا لي أن أعطي مثالا سريعا:

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

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

المحلول

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

بعض النقاط الإضافية:

  • ابحث عن الموارد وقم بإنشاء نموذج ووحدة تحكم لكل منهم (القاعدة العامة)
  • لا تخف من إنشاء نماذج للموارد التي لا تستمر
  • فكر في وحدات التحكم باعتبارها "سباكة" أو "توصيل" للمستخدم بمجال الأعمال - يتمثل دورها في التعامل مع طلبات المستخدمين وإعادة توجيه الإجابة إليهم - احتفظ بها رفيعة قدر الإمكان

نصائح أخرى

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

و(1) يجب العناصر من هذا النوع تكون مستمرة؟

و(2) هل هناك سيكون حالات كثيرة من هذا البند؟

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

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

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

ويتم تعيين كافة تحكم عن لا القالب. وحدة تحكم بلوق يتفاعل مع نموذج بلوق إلى قائمة مشاركات متعددة من قاعدة البيانات. وحدة تحكم آخر يتفاعل مع نموذج بلوق لعرض وظيفة واحدة من قاعدة البيانات.

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

وربما وسيلة جيدة لتعلم البرمجة MVC جيدة لقضاء بعض الوقت في روبي على القضبان. لقد بدأت باستخدام القضبان في حين يعود، وكنتيجة غير مباشرة أعتقد أنني لديهم فهم جيد للغاية من MVC الآن. أرى القضبان كخلاصة MVC. على الأقل، يمكن أن يكون وسيلة ممتعة تعلم MVC ... ماذا ya'll رأيك؟

وهنا مثال على ما تم القيام في بلدي Kohana التطبيق.

وأنا في حاجة إلى "آخر الأخبار" القسم، لذلك أقوم بإعداد وحدة تحكم، والنموذج وعرض بعنوان "الأخبار".

زيارتها تحكم أخبار بلدي أساليب index()، feed() وmedia_releases().

ونموذج بلدي يتألف من الاستفسارات ديسيبل التي تحصل على البيانات أخبار بلدي من قاعدة بيانات MySQL.

وجهة نظري هو مجرد الكثير من HTML مع بعض <?php echo $title; ?> وما شابه ذلك.

هل هناك سبب لماذا لا يمكن تعريف النظم العامة التي يعمل levaraging عالميا الفوقية قاعدة البيانات؟ يبدو لي الكتابة عموما أي رمز على الإطلاق للوصول إلى وعرض البيانات بسيط هو التكرار لا لزوم لها.

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