طلب مساعدة في اختيار لغات وتقنيات لإنشاء موقع ضخم من خلال معرفة نقاط القوة في كل لغة وتقنية

السلام عليكم

إذا أردت انشاء موقع ويب متوقع أن يكون عليه عدد كبير من الزوار مثل فيسبوك وسيتم تطويره كل سنة مثلا

ما هي اللغات والأدوات والتقنيات التي سوف تختارها لكي تساعد في سرعة تحميل الصفحات وفي سهولة التطوير وفي زيادة الأمان وفي ...

أعلم أن كل اللغات والتقنيات سوف تؤدي الغرض و...

ولكن لكل لغة ولكل تقنية مميزات ونقاط قوة ونقاط ضعف

لذلك أرغب من أحبابي المبرمجين أن يفيدوني بذكر تفضيلاتهم وذكر السبب.

أعلم أن أغلب التقننيات التابعة لمايكروسوفت بمقابل، في حين أن هناك تقنيات منافسه وتؤدي نفس الغرض ولكن مجانية.

أنا لست مبرمج ولكن من خلال اطلاعي توصلت أن:

1 - بالنسبة لل frontend اخترت vuejs اخترتها لأنها سهلة وبها إمكانيات متقدمة

وعلمت أنه يتم كتابة أكواد html, css, js داخل ملفات vuejs لتكون الإستجابة أسرع

2- وبالنسبة لل backend

اخترت php8 أي أخر اصدار للتقليل من الثغرات الأمنية التي يقع فيها بعض المبرمجين

وأيضا laravel8

JSON, AJAX

3- بالنسبة لقاعدة بيانات

mongodb

لأنها أنسب للمواقع الضخمة لأنها أسرع

فما رأيكم؟


مبدئيا، لا يمكن التفضيل بين أي لغة وأخرى أو اطار عمل وآخر، وقد لا يتفق المبرمج A مع المبرمج B في ذلك. بل وحتى أن أعضاء الفريق الواحد قد لا يتفقون مع ما يقرره قائد الفريق، ولكن بشكل عام يوجد بعض التفضيلات التي تكون لأسباب ذاتية في الغالب، من مثل:

  • أفضل Vue على React ليس لأن Vue أسهل وفقط، بل ﻷني أجده أسهل أو لأني أجد سياقه أكثر وضوحا أو ما الى ذلك.

قد لا نتفق في الرؤية التي تراها في خلال مشروعك ولكن:

  • لم أكن لأقترح استعمال VueJS مباشرة في واجهة الموقع الأمامية، وذلك لأن تطبيقات الصفحة الواحدة Single Page App (SPA) تشكل عائقا أمام أي محاولة لتحسين محركات البحث، فالمكونات والصفحات تبنى بعد تحميل موارد الصفحة من طرف المتصفح، يعني هذا أن كامل محتوى الصفحة أو باقي الصفحات غير قابل للفهرسة من قبل محركات البحث. وبالتالي وعوضا عن تقنية SPA كنت لأختار واحدة من تقنيات الـ server side rendering (SSR) أي يتم تصيير وبناء جميع المكونات والصفحات على مستوى الخادم ومن ثم عرضها على المتصفح. أي أن كامل الصفحات قابلة للفهرسة عن طريق محركات البحث، وبما أنك تفضل VueJs فسيكون إستعمال تطبيق NuxtJS أكثر من رائع.
  • بنفس الوقت، أفضل عمل لوحة تحكم الموقع بشكل منفصل تماما عن واجهة الموقع الأمامية (سواء واجهات الزوار أو واجهات المشتركين)، ولا بأس بل يفضل أن يتم العمل على تطبيق صفحة واحدة وليكن الـ VueJS مثلا.
  • بالنسبة لواجهة الموقع الخلفية، فسيكون لارافيل مناسبا جدا، على أن يتم تصدير واجهة برمجية سهلة الربط والتوثيق والقراءة، سهلة التعديل وتستوفي شروط الشيفرة النظيفة.
  • بإستعمالك للارافيل فأظن أن مرونة هذا الأخير ستجعله بسيطا ليتعامل مع أي قاعدة بيانات، خصوصا بتوفر حزم من مثل تجعل التبديل سهلا وبسيطا. ولذلك فسأكتفي بالعمل على MySql أو postgresql كفترة تجريبية للموقع ثم لا بأس بالتبديل نحو MongoDB.
  • قوالب الـ HTML ستكون مترجمة و أصلها مكتوب بـ Pug.
  • ملفات التنسيقات ستكون مترجمة وأصلها مكتوبة بـ sass.
  • كإطار عمل css، يمكن إستعمال Tailwind لما له من مرونة وقابلية أكثر للتخصيص.
  • يمكن إستعمال بعض المكونات أو الإضافات الخارجية لتحقيق أغراض معينة.
  • هذا ولا ينبغي إهمال الإختبارات Tests بالطبع، ولذلك فسيكون إستعمال مكتبة phpunit لإختبار الواجهة البرمجية وواجهة الموقع الخلفية مناسبا. أما بالنسبة لواجهة الموقع الأمامية (يتضمن هذا الواجهة الأمامية للوحة التحكم بالإضافة إلى كل من واجهتي الزوار والمشتركين) فسيكون إطار عمل Jest مناسبا جدا لإختبارها.