ما هي الاختلافات الرئيسية بين أطر الويب الشائعة؟

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

سؤال

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

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

تعد لغة البرمجة فرقًا واضحًا، لكن الحرب النارية بين Java وRuby لن تكون ممتعة كثيرًا، ويبدو أن معظم هذه الأطر تمثل على الأقل استثمارًا في التكنولوجيا والأدوات والتعقيد مثل اللغة المفضلة لديهم؛لذلك أنا مهتم أكثر بأشياء مثل:

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

المحلول

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

سرعة التطوير والراحة

ل توربوجيرز, أبراج, ، و جانغو, ، سرعة التطوير متساوية تقريبًا.نظرًا لكونها أطر عمل حديثة، فمن السهل البدء في موقع جديد والبدء في تجميع الصفحات معًا.تشتهر Python بسرعة التطوير والتصحيح، وأود أن أعتبر أي إطار عمل Python أن وقت تطويره أقصر من أي إعداد آخر عملت معه (بما في ذلك PHP وPerl وEmbedded Perl وC#/ASP.Net).

عوائق الدخول - تدريب المطورين والبنية التحتية

إذا كنت تعرف بايثون وترغب في مشاهدة ملف فيديو تعليمي مدته 20 دقيقة, ، يمكنك إنشاء موقع wiki كامل إلى حد ما من البداية.أو يمكنك المشي من خلال أ البرنامج التعليمي لموقع الإشارات الاجتماعية في 30 دقيقة (بما في ذلك التثبيت).هذه أمثلة لـ TurboGears ولكن الإطارين الآخرين لهما برامج تعليمية متطابقة تقريبًا أيضًا.

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

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

اربط

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

المرونة

الأمر كله يتعلق بـ MVC مع هذه الأطر الثلاثة.كما قلت، هذه مناقشة مختلفة تمامًا!

الأداء وقابلية التوسع والاستقرار

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

نصائح أخرى

جانغو ضد ستراتس.

سرعة التطوير والراحة.

Django - جاهز للعمل في الوقت المطلوب لبناء النموذج (في Python)، وتحديد تعيينات المسؤول (2-3 أسطر من التعليمات البرمجية لكل فئة نموذج) وإنشاء قوالب HTML للعمل مع طرق العرض الرئيسية والتفصيلية الافتراضية.

الدعامات - يجب تحديد قاعدة بيانات في SQL، ثم تحديد تعيينات ORM في iBatis.ثم قم بتحديد واختبار وبناء مكونات التطبيق المختلفة، باستخدام فئات الإجراءات وصفحات قالب JSP.أوه، ولست بحاجة إلى تحديد EJB لنقل البيانات من التطبيق إلى JSP.يجب تجميع كل شيء ويجب علي العمل من خلال العديد من التفاصيل فقط للحصول على شيء يناسب قواعد الترجمة.

الحواجز أمام دخول - سواء من حيث تدريب المطورين أو البنية التحتية اللازمة

ثابت عبر جميع الأطر واللغات.هذا إلى حد كبير عنصر لا يهمني.لا توجد لغة أو إطار عمل يسهل تدريبه بطبيعته.جميع أطر عمل الويب لها متطلبات بنية تحتية مماثلة.

اربط - ما مقدار الكود الذي يمكنك الاحتفاظ به إذا اضطررت إلى تبديل الإطارات؟

هذا ليس له معنى كبير.إذا قمت بالتبديل من Tomcat إلى أي من مشتقات Tomcat، فيمكنك الحفاظ على الكثير من تعليمات Java البرمجية.بخلاف ذلك، لن تحتفظ بشكل عام بالكثير من التعليمات البرمجية عند تبديل إطار العمل.

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

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

الأداء وقابلية التوسع والاستقرار - من الواضح أن هذا يعتمد على المطورين!

الأداء هو اللغة (وليس الإطار).إنه تصميم.إلى حد ما، تكوين التنفيذ أيضا.

قابلية التوسع هي الإطار (وليس اللغة).إنه التصميم والتكوين.

الاستقرار في جميع المجالات:نظام التشغيل واللغة والإطار والتصميم والبرمجة وضمان الجودة وتكوين التنفيذ.

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

شخصيًا، بدأت باستخدام .html، وانتقلت إلى PHP، وجربت لغة Ruby (كرهتها)، واكتشفت Python/DJango..وكانوا سعداء منذ ذلك الحين.هذا مسار فريد جدًا يجب اتباعه (على الأرجح) لذا قد تختلف المسافة المقطوعة :)

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