Protocol Buffer (ProtoBuf)

اختيار الـ Format المناسب للـ Data Serialization أصبح موضوع حيوي حاليًا خصوصًا في التعامل مع الأنظمة اللي بتتميز بكونها Large-Scale واللي الأداء فيها حيوي ومهم جدًا. ومن أشهر الـ Formats اللي فضلت موجودة على مر السنين
Protocol Buffer (ProtoBuf)
Protocol Buffer (ProtoBuf)

المقدمة

اختيار الـ Format المناسب للـ Data Serialization أصبح موضوع حيوي حاليًا خصوصًا في التعامل مع الأنظمة اللي بتتميز بكونها Large-Scale واللي الأداء فيها حيوي ومهم جدًا. ومن أشهر الـ Formats اللي فضلت موجودة على مر السنين هو الـ JSON وهو اختصار لـ JavaScript Object Notation.

ولكن بسبب احتياج الـ Large-Scale Systems للأداء العالي والـ Bandwidth القليلية ظهر Format تاني ألا وهو الـ ProtoBuf.

طب ايه هو الـ ProtoBuf وايه سبب ظهوره ؟ وايه اللي بيميزه عن الـ JSON وليه بنختاره في الـ Large-Scale Systems ، ده اللي هنعرفه انهاردة فورقة وقلم وتعالوا نتكلم عن الـ ProtoBuf vs JSON 🚀


Protocol Buffer (ProtoBuf)

الـ Protocol Buffer أو الـ ProtoBuf هو طريقة طورتها Google عشان تعمل بيها Serialization للـ Structured Data. بالإضافة لإنه مش معتمد على لغة برمجة بعينها أو Platform بعينه.

وممكن يتم الاعتماد عليه في الـ Communication بين الـ Services وبعضها أو في أي موقف احتجنا فيه إننا نخزن بيانات أو نتبادل بيانات تكون Structured.

بالإضافة لإنه كمان نظام مفتوح المصدر (open-source).


JSON vs. ProtoBuf

الـ JSON معروف عند كتير من المطورين، وبيستخدموه في كتير من التطبيقات عشان ينقلوا البيانات ما بين الـ Client والـ Server. لكن فيه فروق مهمة بينه وبين الـ ProtoBuf واللي في الأساس أدت لظهوره:

  1. الحجم: الـ ProtoBuf بيـ Serialize البيانات بطريقة مدمجة أكتر من الـ JSON، وده معناه إن البيانات اللي معملوها Serialization بالـ ProtoBuf بتاخد مساحة أقل، وده بيفرق جداً لو بتتعامل مع بيانات كبيرة أو بتبعتها على الشبكة فبالتالي بيكون عندك Bandwidth أقل على عكس الـ JSON.
  2. الأداء: الـ ProtoBuf أسرع في قراءة وكتابة البيانات مقارنة بـ JSON. وده لإنه بيخزن البيانات على هيئة Binary مش نصوص Texts زي JSON، وده بيخلي العمليات أسرع بكتير وعشان كده ناس كتير بتفضل الـ JSON عشان الـ Human Readable لإنه Text ممكن يبقى أسهل كتير في الـ Debugging والشغل معاه.
  3. قابلية التوسع أو ما يعرف بالـ Extensibility: الـ ProtoBuf بيتيح ليك تضيف أو تعدل في البيانات اللي بتعملها Serialize بدون ما تتسبب في مشاكل للنسخ القديمة. يعني بيحقق الـ Backward Compatibility على عكس JSON مفيهوش نفس المرونة دي، وأي تغيير ممكن يعمل مشاكل في التعامل مع البيانات القديمة. وبيظهر هنا قوة الـ ProtoBuf من خلال الـ Optional والـ Required اللي من خلالهم تقدر تتحكم في الـ Fields.
  4. سهولة القراءة Human-Readability: الـ JSON بيتميز إنه مقروء للإنسان بشكل مباشر، يعني تقدر تشوف البيانات وتفهمها بسهولة. على العكس، الـ ProtoBuf بيخزن البيانات في هيئة Binary مش مفهومة للبشر، وده ممكن يكون عيب لو بتحتاج تقرأ البيانات بشكل مباشر. ولكن بالطبع فيه Tools بتمكنك انك تـ Parse الـ Binary دي وتقرأهم ولكن الموضوع مش مباشر زي الـ JSON.

تقدروا دلوقتي تشتركوا في النشرة الأسبوعية لاقرأ-تِك بشكل مجاني تمامًا عشان يجيلكوا كل جديد بشكل أسبوعي فيما يخص مواضيع متنوعة وبشروحات بسيطة وسهلة وبجودة عالية 🚀

النشرة هيكون ليها شكل جديد ومختلف عن شكلها القديم وهنحاول انها تكون مميزة ومختلفة وخليط بين المحتوى الأساسي اللي بينزل ومفاجآت تانية كتير 🎉

Eqraatech Newsletter | Eqraatech - اقرأ-تِك | Substack
محتوى تقني متميز في مختلف مجالات هندسة البرمجيات باللغة العربية عن طريق تبسيط المفاهيم البرمجية المعقدة بشكل سلس وباستخدام صور توضيحية مذهلة. Click to read Eqraatech Newsletter, a Substack publication with hundreds of subscribers.

بفضل الله قمنا بإطلاق قناة اقرأ-تِك على التليجرام مجانًا للجميع 🚀

آملين بده اننا نفتح باب تاني لتحقيق رؤيتنا نحو إثراء المحتوى التقني باللغة العربية ، ومساعدة لكل متابعينا في انهم يوصلوا لجميع أخبار اقرأ-تِك من حيث المقالات ومحتوى ورقة وقلم والنشرة الأسبوعية وكل جديد بطريقة سريعة وسهلة

مستنينكوا تنورونا , وده رابط القناة 👇

https://t.me/eqraatechcom


How ProtoBuf Works

Protocol Buffer (ProtoBuf)

هذا المقال مخصص للأعضاء المنتسبين لخطط الاشتراك المدفوعة فقط

اشترك الآن بنشرة اقرأ-تِك الأسبوعية

لا تدع أي شيء يفوتك. واحصل على أحدث المقالات المميزة مباشرة إلى بريدك الإلكتروني وبشكل مجاني!