یبار واسه همیشه مفهوم سریالیزیشن (Serialization) رو یاد بگیرید 👌
آموزش توسط سعید شهریوری عزیز (از نحوه توضیح دادنش عشق می کنی)
https://youtu.be/gQcPRSIVp5I?si=4knH34ONEgDjdmjT
#Serialization
@khat_academy
آموزش توسط سعید شهریوری عزیز (از نحوه توضیح دادنش عشق می کنی)
https://youtu.be/gQcPRSIVp5I?si=4knH34ONEgDjdmjT
#Serialization
@khat_academy
YouTube
(Serialization) سریالسازی
🔥6
Serialization و Encoding
Serialization
سریالیزیشن فرآیندی است که طی آن یک شیء (object) در حافظه به یک فرمت قابل حمل تبدیل میشود تا بتوان آن را ذخیره کرد یا از طریق شبکه ارسال نمود. این فرایند شامل تبدیل وضعیت (state) یک شیء به یک رشته بایت (byte stream) است که میتواند بعداً deserialized شود تا شیء اصلی بازیابی شود.
موارد استفاده از Serialization:
- ذخیرهسازی پایدار: برای ذخیرهسازی اشیاء در فایلها یا پایگاه دادهها به طوری که بتوان بعداً آنها را بازیابی کرد.
- انتقال دادهها: برای ارسال اشیاء بین سیستمهای مختلف از طریق شبکه، مثلاً در پروتکلهای ارتباطی یا وب سرویسها.
- کپی عمیق (Deep Copy): برای ایجاد نسخهای دقیق از یک شیء.
فرمتهای متداول Serialization:
- JSON: یک فرمت متنی سبک که برای تبادل دادهها بین سرور و وب مناسب است.
- XML: یک فرمت متنی که برای ذخیره و انتقال دادهها استفاده میشود و بیشتر در سیستمهای سازمانی کاربرد دارد.
- Protocol Buffers: یک فرمت باینری کارآمد و فشرده که توسط گوگل توسعه یافته است.
- Avro: یک فرمت باینری که توسط Apache برای استفاده در سیستمهای بزرگ دادهای توسعه یافته است.
Encoding
فرآیندی است که طی آن دادهها به یک فرمت خاص تبدیل میشوند تا قادر به انتقال یا ذخیرهسازی باشند. این فرایند میتواند شامل تبدیل دادههای متنی به یک فرمت باینری خاص یا تبدیل دادههای باینری به یک فرمت متنی باشد.
موارد استفاده از Encoding:
- انتقال دادهها: برای اطمینان از اینکه دادهها به درستی از طریق شبکه منتقل میشوند.
- ذخیرهسازی دادهها: برای اطمینان از اینکه دادهها به درستی در فایلها یا پایگاه دادهها ذخیره میشوند.
- نمایش دادهها: برای تبدیل دادهها به فرمتی که قابل نمایش یا چاپ باشد.
فرمتهای متداول Encoding:
- UTF-8: یک فرمت متنی که برای رمزگذاری کاراکترهای یونیکد استفاده میشود.
- Base64: یک فرمت متنی که برای رمزگذاری دادههای باینری استفاده میشود به طوری که بتوان آنها را در متنهای ASCII ذخیره یا انتقال داد.
تفاوت بین Serialization و Encoding
1. هدف:
- Serialization: هدف اصلی serialization تبدیل یک شیء به یک فرم قابل حمل است که بتوان آن را ذخیره یا منتقل کرد و سپس دوباره به شیء اصلی تبدیل نمود.
- Encoding: هدف اصلی encoding تبدیل دادهها به یک فرمتی است که قابل انتقال، ذخیره یا نمایش باشد.
2. نوع دادهها:
- Serialization: معمولاً شامل تبدیل اشیاء پیچیده و دادههای ساختاریافته به یک رشته بایت است.
- Encoding: معمولاً شامل تبدیل دادههای متنی یا باینری به یک فرمت خاص برای انتقال یا ذخیرهسازی است.
3. فرایند معکوس:
- Serialization: فرایند معکوس serialization، deserialization نامیده میشود که طی آن رشته بایت به شیء اصلی تبدیل میشود.
- Encoding: فرایند معکوس encoding به decoding معروف است که طی آن دادههای رمزگذاری شده به فرم اولیه خود بازگردانده میشوند.
4. سطح کاربرد:
- Serialization: بیشتر در سطح برنامهنویسی و برای انتقال اشیاء بین سیستمها و ذخیرهسازی پایدار استفاده میشود.
- Encoding: بیشتر در سطح شبکه و انتقال دادهها و برای اطمینان از اینکه دادهها به درستی منتقل یا ذخیره میشوند استفاده میشود.
#encoding #serialization
@Syntax_fa
Serialization
سریالیزیشن فرآیندی است که طی آن یک شیء (object) در حافظه به یک فرمت قابل حمل تبدیل میشود تا بتوان آن را ذخیره کرد یا از طریق شبکه ارسال نمود. این فرایند شامل تبدیل وضعیت (state) یک شیء به یک رشته بایت (byte stream) است که میتواند بعداً deserialized شود تا شیء اصلی بازیابی شود.
موارد استفاده از Serialization:
- ذخیرهسازی پایدار: برای ذخیرهسازی اشیاء در فایلها یا پایگاه دادهها به طوری که بتوان بعداً آنها را بازیابی کرد.
- انتقال دادهها: برای ارسال اشیاء بین سیستمهای مختلف از طریق شبکه، مثلاً در پروتکلهای ارتباطی یا وب سرویسها.
- کپی عمیق (Deep Copy): برای ایجاد نسخهای دقیق از یک شیء.
فرمتهای متداول Serialization:
- JSON: یک فرمت متنی سبک که برای تبادل دادهها بین سرور و وب مناسب است.
- XML: یک فرمت متنی که برای ذخیره و انتقال دادهها استفاده میشود و بیشتر در سیستمهای سازمانی کاربرد دارد.
- Protocol Buffers: یک فرمت باینری کارآمد و فشرده که توسط گوگل توسعه یافته است.
- Avro: یک فرمت باینری که توسط Apache برای استفاده در سیستمهای بزرگ دادهای توسعه یافته است.
Encoding
فرآیندی است که طی آن دادهها به یک فرمت خاص تبدیل میشوند تا قادر به انتقال یا ذخیرهسازی باشند. این فرایند میتواند شامل تبدیل دادههای متنی به یک فرمت باینری خاص یا تبدیل دادههای باینری به یک فرمت متنی باشد.
موارد استفاده از Encoding:
- انتقال دادهها: برای اطمینان از اینکه دادهها به درستی از طریق شبکه منتقل میشوند.
- ذخیرهسازی دادهها: برای اطمینان از اینکه دادهها به درستی در فایلها یا پایگاه دادهها ذخیره میشوند.
- نمایش دادهها: برای تبدیل دادهها به فرمتی که قابل نمایش یا چاپ باشد.
فرمتهای متداول Encoding:
- UTF-8: یک فرمت متنی که برای رمزگذاری کاراکترهای یونیکد استفاده میشود.
- Base64: یک فرمت متنی که برای رمزگذاری دادههای باینری استفاده میشود به طوری که بتوان آنها را در متنهای ASCII ذخیره یا انتقال داد.
تفاوت بین Serialization و Encoding
1. هدف:
- Serialization: هدف اصلی serialization تبدیل یک شیء به یک فرم قابل حمل است که بتوان آن را ذخیره یا منتقل کرد و سپس دوباره به شیء اصلی تبدیل نمود.
- Encoding: هدف اصلی encoding تبدیل دادهها به یک فرمتی است که قابل انتقال، ذخیره یا نمایش باشد.
2. نوع دادهها:
- Serialization: معمولاً شامل تبدیل اشیاء پیچیده و دادههای ساختاریافته به یک رشته بایت است.
- Encoding: معمولاً شامل تبدیل دادههای متنی یا باینری به یک فرمت خاص برای انتقال یا ذخیرهسازی است.
3. فرایند معکوس:
- Serialization: فرایند معکوس serialization، deserialization نامیده میشود که طی آن رشته بایت به شیء اصلی تبدیل میشود.
- Encoding: فرایند معکوس encoding به decoding معروف است که طی آن دادههای رمزگذاری شده به فرم اولیه خود بازگردانده میشوند.
4. سطح کاربرد:
- Serialization: بیشتر در سطح برنامهنویسی و برای انتقال اشیاء بین سیستمها و ذخیرهسازی پایدار استفاده میشود.
- Encoding: بیشتر در سطح شبکه و انتقال دادهها و برای اطمینان از اینکه دادهها به درستی منتقل یا ذخیره میشوند استفاده میشود.
#encoding #serialization
@Syntax_fa
👍9❤1👎1
Syntax | سینتکس
Serialization و Encoding Serialization سریالیزیشن فرآیندی است که طی آن یک شیء (object) در حافظه به یک فرمت قابل حمل تبدیل میشود تا بتوان آن را ذخیره کرد یا از طریق شبکه ارسال نمود. این فرایند شامل تبدیل وضعیت (state) یک شیء به یک رشته بایت (byte stream)…
توضیحات ساده تر
مفهوم serialization و encoding گاهی ممکن است کمی گیجکننده باشد، خصوصاً زمانی که صحبت از تبدیل دادهها به فرمتهای مختلف میشود. بیاید یک مثال بزنیم:
تبدیل دیکشنری به JSON
زمانی که یک دیکشنری (یا هر ساختار دادهای دیگر) را به JSON تبدیل میکنیم، این عملیات serialization نام دارد. در این فرآیند، دادههای ساختاریافته به یک رشته متنی تبدیل میشوند. این رشته متنی، نمایشی از دادههای اصلی است که در حافظه برنامه وجود دارد.
JSON به عنوان Byte Array
درست است که هر رشته متنی (مانند JSON) در نهایت به صورت بایتها (byte array) در حافظه ذخیره میشود، اما این تبدیل به طور ضمنی توسط سیستم انجام میشود. یعنی، وقتی ما یک دیکشنری را به JSON تبدیل میکنیم، نتیجه یک رشته متنی (string) است که در حافظه به صورت بایتها ذخیره میشود. این رشته متنی را میتوانیم به یک فایل ذخیره کنیم یا از طریق شبکه ارسال کنیم.
تفاوت بین Serialization و Encoding
- Serialization: فرایندی است که دادههای ساختاریافته را به یک فرمت قابل انتقال یا ذخیرهسازی (مانند JSON یا XML) تبدیل میکند. این عملیات معمولاً شامل تبدیل دادههای پیچیده به رشتههای متنی یا باینری است. هدف از serialization این است که دادهها را به شکلی تبدیل کنیم که بتوان آنها را ذخیره کرد یا از طریق شبکه انتقال داد.
- Encoding: فرایندی است که دادهها را به یک فرمت خاص برای انتقال یا ذخیرهسازی تبدیل میکند. این ممکن است شامل تبدیل دادههای متنی یا باینری به یک فرمت دیگر باشد. برای مثال، تبدیل یک رشته JSON به Base64 یک عملیات encoding است.
پس
زمانی که دیکشنری را به JSON تبدیل میکنیم، نتیجه یک رشته متنی است. این رشته متنی به طور ضمنی به بایتها تبدیل میشود زیرا رشتهها در حافظه به صورت بایتها ذخیره میشوند. اما این تبدیل به بایتها به معنای encoding نیست.
چرا این تبدیل encoding نیست؟
- Serialization: زمانی که دیکشنری را به JSON تبدیل میکنیم، این عملیات serialization است زیرا ما دادههای ساختاریافته را به یک فرمت متنی (JSON) تبدیل کردهایم.
- Encoding: اگر بخواهیم این JSON را به فرمت دیگری (مانند Base64) تبدیل کنیم تا برای انتقال مناسبتر باشد، این عملیات encoding است.
مثال
1. Serialization:
- دیکشنری را به JSON تبدیل میکنیم.
- نتیجه: یک رشته متنی (مثلاً
2. Encoding:
- JSON را به Base64 تبدیل میکنیم.
- نتیجه: یک رشته متنی دیگر که نمایشی از دادههای اصلی است (مثلاً
#serialization #encoding
@Syntax_fa
مفهوم serialization و encoding گاهی ممکن است کمی گیجکننده باشد، خصوصاً زمانی که صحبت از تبدیل دادهها به فرمتهای مختلف میشود. بیاید یک مثال بزنیم:
تبدیل دیکشنری به JSON
زمانی که یک دیکشنری (یا هر ساختار دادهای دیگر) را به JSON تبدیل میکنیم، این عملیات serialization نام دارد. در این فرآیند، دادههای ساختاریافته به یک رشته متنی تبدیل میشوند. این رشته متنی، نمایشی از دادههای اصلی است که در حافظه برنامه وجود دارد.
JSON به عنوان Byte Array
درست است که هر رشته متنی (مانند JSON) در نهایت به صورت بایتها (byte array) در حافظه ذخیره میشود، اما این تبدیل به طور ضمنی توسط سیستم انجام میشود. یعنی، وقتی ما یک دیکشنری را به JSON تبدیل میکنیم، نتیجه یک رشته متنی (string) است که در حافظه به صورت بایتها ذخیره میشود. این رشته متنی را میتوانیم به یک فایل ذخیره کنیم یا از طریق شبکه ارسال کنیم.
تفاوت بین Serialization و Encoding
- Serialization: فرایندی است که دادههای ساختاریافته را به یک فرمت قابل انتقال یا ذخیرهسازی (مانند JSON یا XML) تبدیل میکند. این عملیات معمولاً شامل تبدیل دادههای پیچیده به رشتههای متنی یا باینری است. هدف از serialization این است که دادهها را به شکلی تبدیل کنیم که بتوان آنها را ذخیره کرد یا از طریق شبکه انتقال داد.
- Encoding: فرایندی است که دادهها را به یک فرمت خاص برای انتقال یا ذخیرهسازی تبدیل میکند. این ممکن است شامل تبدیل دادههای متنی یا باینری به یک فرمت دیگر باشد. برای مثال، تبدیل یک رشته JSON به Base64 یک عملیات encoding است.
پس
زمانی که دیکشنری را به JSON تبدیل میکنیم، نتیجه یک رشته متنی است. این رشته متنی به طور ضمنی به بایتها تبدیل میشود زیرا رشتهها در حافظه به صورت بایتها ذخیره میشوند. اما این تبدیل به بایتها به معنای encoding نیست.
چرا این تبدیل encoding نیست؟
- Serialization: زمانی که دیکشنری را به JSON تبدیل میکنیم، این عملیات serialization است زیرا ما دادههای ساختاریافته را به یک فرمت متنی (JSON) تبدیل کردهایم.
- Encoding: اگر بخواهیم این JSON را به فرمت دیگری (مانند Base64) تبدیل کنیم تا برای انتقال مناسبتر باشد، این عملیات encoding است.
مثال
1. Serialization:
- دیکشنری را به JSON تبدیل میکنیم.
- نتیجه: یک رشته متنی (مثلاً
{"key": "value"}).2. Encoding:
- JSON را به Base64 تبدیل میکنیم.
- نتیجه: یک رشته متنی دیگر که نمایشی از دادههای اصلی است (مثلاً
eyJrZXkiOiAidmFsdWUifQ==).#serialization #encoding
@Syntax_fa
👍6❤2