Serialization
Dec 22nd, 2008 by Ahmed Saad El Din
_
ال Serialization هي تقنية تقدر تحفظ بيها ال Objects كما هي .
يعني ايه ؟
يعني اثناء تعاملك مع Object Oriented Programming بتستخدم Objects .. وال Objects دي بيبقي ليها بياناتها الخاصة بيها .. وفي بعض الأحيان بتسأل نفسك سؤال اذا كان ممكن احفظ ال Object دة كما هو ببياناته في ملف لإستخدامه فيما بعد أو لنقله على شبكة لجهاز تاني .. وهنا بييجي دور ال Serialization .
ممكن تفكر في الSerialization كنوع من اعادة البعث أو كنوع من الاحياء للكائنات اللي بتستخدمها اثناء سطرك للأكواد (دة لو استخدمنا كلمة “كائنات” كترجمة لمصطلح objects) .. بمعني اكثر بساطة , انت صممت وكتبت الكلاس بتاعتك وبعدين هتبدأ تستخدمها بتكوين object منها , واستخدمتها واديت الوظائف المطلوبة وانتهي استخدامك للObject واتحرر من الذاكرة ومات .. بس قبل ما ينتهي استخدامك له ولسبب محدد في تصميمك قررت الاحتفاظ بما يحمله الObject دة من بيانات لاستخدامها فيما بعد مع Object جديد من نفس النوع …
لو فكرت بالطرق الاعتيادية فممكن تحفظ كل بياناته لملف بطريقة يدوية تفتقر بشدة للاحترافية .. وبعد كدة لما تيجي تحب تستخدمها تاني , تقرأ البيانات من الملف عشان تودعها في الObject الجديد بطريقة تفتقر برضه للاحترافية .. وهنا فعلياً بييجي دور ال Serialization .. ال Serialization هتحيي لك الكائن دة من جديد وبأسلوب احترافي للغاية .
لو حبينا نقسم عملية ال Serialization :
1.تتأكد ان الكلاس marked as serializable
2.تبدأ عملية ال Serialization وحفظ ال object لملف أو لبافر في الذاكرة
3.لما ييجي وقت اعادة استخدامك تاني له , تبدأ تعمل العملية العكسية .. عملية ال deserialization .. اللي هتقرأ بيها الملف أو ال memory buffer المحفوظ فيه الObject , ومن ثم تُعيد احياء الObject من جديد .
أحد العقبات اللي ممكن تقابلك أثناء عملية ال Serialization هي مثلا أن الكلاس بتاعتك كلها بمكوناتها قابلة للتسلسل أو (marked as serializable) , لكن أنت استخدمت structureداخل الكلاس خارجي غير قابل للتسلسل , وفي نفس الوقت استخدامك له في الكلاس بتاعتك حيوي ومهم للغاية ولايمكن الاستغناء عنه ؛ في الحالة دي ممكن تحاكي ال structure دة بكل تفاصيله في structure جديد داخل الكلاس بتاعتك وبعدين تخليه قابل للتسلسل وبكدة تلف حول المشكلة وتقدر تستخدم ال Serialization للكلاس دي .. طبعا مش بالضرورة الحل دة ينفع في كل الحالات .. وممكن يبقي غير عملي بالمرة في بعض الحالات برضه .
More about Serialization and Deserialization :
Introducing Serialization in .NET
Using Serialization to Persist TreeView Control
The Basics of Serializing Objects in PHP
How to serialize an object which is NOT marked as ‘Serializable’ using a surrogate.
هههههههه تعرف أنا من فتره قرأت عنها بس للأسف مفهمتهاش ثانكس فور يو
العفووووو
)
اقرأ اللينكات في الاخر وهتحبه أوي
معلومة جديدة، شكرًا لك
@77math
العفو
بجد شكرا جدا ….
كتير اسم الموضوع ممكن يوحى أنه مجعلص
بس طلع حاجة سهلة جدا وفعلا فعلا
شكرا