اقتراح بعض أطر عمل MVC الجيدة في لغة Perl [مغلق]

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

  •  09-06-2019
  •  | 
  •  

سؤال

هل يمكنك اقتراح إطار عمل MVC جيد لـ Perl - وهو إطار أعرفه عامل حفاز

الحاجة هي أن تكون قادرًا على عرض الخدمات على البنية التحتية لـ Perl والتي يمكن استدعاؤها بواسطة تطبيقات Java/.Net بسلاسة.

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

المحلول

سأخبرك الآن أن Catalyst تتمتع بأفضل سمعة على الإطلاق بين مطوري Perl من حيث إطار عمل MVC للتطوير السريع للتطبيقات.

فيما يتعلق بـ MVC "الخالص"، لست متأكدًا من وجود العديد من البدائل "الناضجة" أو على الأقل الجاهزة للإنتاج.

إذا كان Catalyst لا يبدو مناسبًا لك، فيمكنك البناء على إطار العمل خفيف الوزن CGI::تطبيق لتناسب احتياجاتك أو قم بإلقاء نظرة على بعض أطر عمل MVC الأقل شهرة مثل مجموعة الصفحات و مايبول.

نصائح أخرى

منذ ظهور هذا الموضوع القديم، سأذكر إضافتين جديدتين ومثيرتين إلى عالم Perl MVC:

  • راقصة (CPAN) والذي يتأثر بشكل كبير بروبي سيناترا، المعروف بخفة الوزن للغاية
  • موجوليشيوس (CPAN) الذي كتبه المطور الأصلي لـ Catalyst لاستخدام ما تعلمه هناك، ولا يحتوي على تبعيات غير أساسية، مع مكونات مدمجة حديثة جدًا (HTML5/CSS3/Websockets، وموزعي JSON/XML، ومحرك UserAgent/template الخاص به)

(ملاحظة:لقد استخدمت Mojolicious أكثر من Dancer، وعلى هذا النحو إذا فاتني بعض ميزات Dancer التي أدرجتها في Mojolicious فأنا أعتذر مقدمًا)

بديل آخر إلى جانب تلك التي سبق ذكرها هو الاستمرارية؛ومع ذلك، فهو (كما يوحي الاسم) يعتمد على الاستمرارية بدلاً من MVC بالمعنى النموذجي.ومع ذلك، فمن الجدير بالذكر أنه أحد أفضل أطر عمل الويب Perl.

ومع ذلك، فأنا أحب Catalyst أفضل بكثير من أي من البدائل الأخرى.ولا يزال الأمر يتحسن طوال الوقت!الجانب السلبي لذلك هو أن أساليب الترميز المفضلة الحالية تستمر في التطور في مقطع سريع إلى حد ما - ولكن بالنسبة للإصدارين الأخيرين، كان هناك تركيز قوي على توافق واجهة برمجة التطبيقات (API)، وبالتالي فإن العبء الآن في الغالب عقلي وليس إداريًا.من المتوقع أن يوفر المنفذ الداخلي القادم إلى Moose على وجه الخصوص بعض المزايا الممتازة.

لكن الحجة الأكبر لصالح Catalyst، IMO، هي نوع الإرسال المتسلسل.لم أر شيئًا مثل ذلك في جميع مواقع web-framework-dom، وهي أداة ممتازة جدًا للحفاظ على التعليمات البرمجية الخاصة بك جافة قدر الإمكان.يتزاوج هذا جيدًا مع شيء رائع آخر توفره Catalyst، وهو uri_for - طريقة تأخذ وحدة تحكم ومجموعة من الوسائط ثم تقوم بإنشاء URI الذي سيتم إرساله إلى ذلك المكان، والذي يعود إليه.تعني هذه التسهيلات معًا أنه يمكنك هيكلة مساحة URI الخاصة بك بأي طريقة تراها مناسبة، ولكن في الوقت نفسه يمكنك هيكلة وحدات التحكم الخاصة بك لتجنب تكرار المنطق، و احتفظ بالقوالب مستقلة عن بنية URI.

انها مجرد رائعة.

التعليقات الثانية التي أدلى بها الآخرون:يعد Catalyst (الذي تشعب بشكل أو بآخر من Maypole) هو الأكثر اكتمالًا وقوة على الإطلاق.هناك كتاب من تأليف جوناثان روكواي سيساعدك بالتأكيد على التعامل معه.

بالإضافة إلى نوع الإرسال "المتسلسل"، توفر طرق الإرسال:Regex (و:LocalRegex) مرونة هائلة.يدعم أحدث تطبيق قمنا بإنشائه هنا الكثير من عناوين URL ذات المظهر المتباين من خلال عدد قليل من الاشتراكات باستخدام: LocalRegex.

تعجبني أيضًا بشكل خاص حقيقة أنك لا تقتصر على لغة نموذجية أو قاعدة بيانات معينة.تحتوي القائمة البريدية (والكتاب) على تفضيل لـ Template::Toolkit (كما أفعل أنا)، وDBIx::Class (نواصل استخدام Class::DBI)، ولكن يمكنك استخدام أي شيء تريده تقريبًا.يعتبر المحفز ملحدًا بشكل رائع بهذه الطريقة.

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

يفعل ما يقوله على القصدير.محفز ++

تم اللعب مع القرفصاء الأيام القليلة الماضية ويجب أن أقول أنها تبدو واعدة جدًا وكان استخدامها ممتعًا.

إنه إطار عمل ويب صغير (أو إطار عمل ويب صغير؛-) ويتأثر بشدة بـ تخييم الذي هو مكتوب في روبي.

ملحوظة:القرفصاء (والتخييم) لا يحتوي على مكونات نموذجية مدمجة في الإطار.وهنا تعليقات المؤلفين على النماذج... "عارضات ازياء؟العالم كله هو النموذج الخاص بك.؛-) لقد كنت دائمًا متناقضًا بشأن تحديد السياسة هنا.استخدام كل ما يصلح لك"

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

المحفز هو الطريق للذهاب.هناك أيضًا Jifty، ولكن (آخر مرة نظرت فيها)، كانت تحتوي على وثائق سيئة.

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

بالنسبة لمشكلتك، أود أن ألقي نظرة على Jifty::Plugin::REST الذي يسمح بالوصول إلى النماذج والإجراءات باستخدام تنسيقات مختلفة.

اسمحوا لي فقط أن أقول إن Jifty ليس لديه وثائق سيئة.ومع ذلك، فإن معظم الوثائق المضمنة هي وثائق API، ولكن هناك قائمة بريدية منخفضة الضوضاء تحتوي على نصائح وروابط مفيدة للتطبيقات.

ويكي في http://jifty.org/ هو مورد آخر يحتوي على أجزاء مفيدة.

إذا كان هدفك هو إنشاء متجر فيديو (معياري المفضل لـ 4GLs وإطارات عمل CRUD) في فترة ما بعد الظهر، فهو حقًا يستحق المشاهدة!

خيار آخر هو جسرية عند استخدامه مع وحدة BigTop، فإنه يمكن أن يقلل الوقت المستغرق لإنشاء مواقع CRUD بسيطة.

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

لقد قمت ببناء بعض التطبيقات مع عشب البحر, ، فمن السهل التعلم ومفيدة للغاية.

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