برنامه نویسی

داخلی RXDB: پلاگین ها، آداپتورهای ذخیره سازی 🚀

RXDB (مخفف Reactive Database) یک پایگاه داده منبع باز است که از برنامه نویسی واکنشی و اصول اول آفلاین استفاده می کند.

🏛️ معماری

RXDB از معماری مدولار پیروی می کند که به چندین لایه تقسیم می شود. هر لایه دارای مسئولیت خاصی است که حفظ و گسترش پایگاه کد را آسان می کند. لایه های اصلی RXDB عبارتند از:

  1. 📑 لایه هسته: این لایه عملکرد اصلی RXDB مانند عملیات CRUD سند و اجرای پرس و جو را فراهم می کند.

  2. 🧩 لایه پلاگین: پلاگین ها بلوک های سازنده ای هستند که به گسترش عملکرد RXDB کمک می کنند. می توان از آنها برای ارائه ویژگی های رمزگذاری، همگام سازی و اعتبارسنجی و سایر موارد استفاده کرد. این لایه مسئول ارتباط بین RXDB و سیستم پایگاه داده زیربنایی است. در حال حاضر، RXDB از چندین آداپتور از جمله PouchDB، MongoDB و SQLite پشتیبانی می کند.

🗃️ ساختارهای داده

RXDB از فرمت داده JSON برای ذخیره و بازیابی داده ها استفاده می کند. هر سند در RXDB به عنوان یک شی JSON نشان داده می شود که می تواند به راحتی با استفاده از جاوا اسکریپت دستکاری شود. اسناد می توانند دارای تودرتو دلخواه باشند که امکان ذخیره سازی ساختارهای داده پیچیده در پایگاه داده را فراهم می کند.

علاوه بر فرمت داده JSON، RXDB از ذخیره سازی داده های باینری با استفاده از نوع داده Blob نیز پشتیبانی می کند. این می تواند هنگام کار با فایل های بزرگ یا داده های باینری مانند تصاویر یا فیلم ها مفید باشد.

🧩 پلاگین ها

سیستم پلاگین RXDB به توسعه دهندگان اجازه می دهد تا با افزودن ویژگی های اضافی، عملکرد پایگاه داده را گسترش دهند. برخی از افزونه های محبوب عبارتند از:

  1. پلاگین رمزگذاری: این افزونه رمزگذاری شفاف برای داده های ذخیره شده در RXDB فراهم می کند. از Web Cryptography API برای رمزگذاری و رمزگشایی داده ها در سمت سرویس گیرنده استفاده می کند و اطمینان می دهد که داده های حساس امن باقی می مانند.

  2. پلاگین تکرار: این افزونه همگام سازی داده ها را بین چندین نمونه از RXDB فعال می کند. از انواع پروتکل های همگام سازی، از جمله پروتکل همگام سازی PouchDB، برای ثابت نگه داشتن داده ها در دستگاه ها و پلتفرم های مختلف استفاده می کند.

  3. پلاگین اعتبار سنجی: این افزونه اعتبار سنجی داده ها و اجرای طرحواره را برای RXDB فراهم می کند. می توان از آن برای اطمینان از مطابقت داده های ذخیره شده در پایگاه داده با یک طرح خاص استفاده کرد و از خراب شدن داده ها و سایر مسائل جلوگیری کرد.

ذخیره سازی

RXDB از چندین گزینه ذخیره سازی پشتیبانی می کند، از جمله:

  1. IndexedDB: این ذخیره سازی پیش فرض برای RXDB است. این یک فروشگاه با ارزش کلیدی است که در اکثر مرورگرهای وب مدرن تعبیه شده است و آن را به انتخاب خوبی برای برنامه های مبتنی بر وب تبدیل می کند.

  2. LocalStorage: این پشتیبان ذخیره سازی در اکثر مرورگرهای وب مدرن نیز تعبیه شده است. این یک ذخیره سازی ساده با ارزش کلیدی ارائه می دهد، اما ظرفیت ذخیره سازی کمتری نسبت به IndexedDB دارد.

  3. حافظه: این باطن ذخیره سازی داده ها را در حافظه ذخیره می کند و آن را برای اهداف آزمایش و اشکال زدایی مفید می کند.

  4. سفارشی: RXDB همچنین به توسعه دهندگان اجازه می دهد تا با پیاده سازی رابط RxStorage، پشتیبان های ذخیره سازی سفارشی خود را ایجاد کنند.

مثال Angular + ngrx + rxdb:

https://github.com/dhrn/rxdb-ngrx-example یا https://stackblitz.com/edit/angular-1zvpdc

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا