التخطي إلى المحتوى الرئيسي

أيهما أفضل؟ Firebase vs. MySql

يعتمد، ﻷي شئ تريده؟

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

مزايا Firebase:

  1. المرونة
    قاعدة بيانات فايربيز تتألف من وثائق JSON بالكامل، بالتالي، ففي أي وقت يمكنك تغيير محتويات الوثائق، اضافة/حذف الخانات دون أي مشاكل
  2. سهولة اﻻستخدام
    خدمة فايربيز توفر لك مكتبة كاملة ﻻجراء العمليات بشكل متزامن أو غير متزامن دون أي قلق أو كتابة أكواد مطولة
  3. دعم جوجل
    قد تقلق كثيراً بعد اطلاق منتجك بخصوص السيرفر ومناسبته لحجم الطلبات وغير ذلك، ليس في حالة فايربيز، بتكلفة زهيدة (بالمقارنة بتكاليف ادارة مركز بيانات مثلاً) تتولى جوجل عنك استضافة قاعدة البيانات والتعامل معها مهما كبر حجم قاعدة البيانات..

هذا ﻻ يعني أنها مثالية لكل التطبيقات، بعض عيوبها التي ﻻحظتها كالتالي:

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

الخلاصة: أعتقد أن فايربيز مناسبة أكثر لتطبيقات التواصل الاجتماعي وويب 2.0، غير مناسبة لقطاع الاعمال والخدمات الطبية والحكومية.

اجابتي لكورا العربية

تعليقات

المشاركات الشائعة من هذه المدونة

ادارة كلمات سر المستخدمين

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

مضادات الفيروسات - خطوط الدفاع

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

جافاسكريبت JavaScript - الحلقة الثالثة

  لنسرد اليوم بعض السمات العامة عن جافاسكريبت، ولنبدأ أولا بالبارادايم.. فما هو البارادايم؟ في أصل الكلمة، فالبارادايم هو نموذج عام ترى العالم من خلاله، المخيال الذي تحلل من خلاله المعطيات، هو النمط، النموذج، أو المثال.. في لغات البرمجة، فالبارادايم هو نمط البرمجة، كيف ستبني الكود الخاص بك لكل برنامج، أو لكل وحدة؟..هل على شكل دوال؟..أو على شكل فئات؟..أو ربما في شكل انشائي؟ من أشهر أنماط البرمجة المعروفة هو البرمجة الكائنية Object Oriented، لكن هناك أنماط مختلفة تماماً، مثل برمجة الدوال مثلاً، كانت هذه مقدمة سريعة عن البارادايم، فأي بارادايم تدعم جافاسكريبت؟ الواقع أنها توصف بمتعددة الأنماط ، فهي ملائمة تماماً للبرمجة الكائنية بفضل قدرتك على تعريف الكائنات النموذجية فيها ملحقاً بها خصائص ودوال، وهو ما يسمى prototype-based programming، كذلك يمكنك الاعتماد على نمط برمجة الدوال functional لبناء برامجك على جافاسكريبت. كما تتيح لك جافا سكريبت مزج النمطين بحرية بحسب ما يتطلبه مشروعك أيضاً . تعريف المتغيرات متغيرات جافاسكريبت معرّفة تفاعلياً Dynamically Typed ، يعني أن نوع البيانات المخ...