همگامسازی چیست و چه نیست
همگامسازی دربارهٔ این است که تغییراتی که در یک دستگاه ثبت میکنید چطور به سرورِ ناخدا و از آنجا به دستگاهِ دیگرِ همان کسبوکار برسند، و چه چیزی را تضمین نمیکند.
همگامسازی چیست و چه نیست به زبانِ ساده
همگامسازی چیست و چه نیست با ترتیبِ کار شروع میشود. هر چیزی که ثبت میکنید اول در خودِ دستگاه نوشته میشود و همانجا کار میکند؛ بعد در یک صفِ ارسال مینشیند. همگامسازی یک «دور» است که صف را به سرور میفرستد و تغییراتِ تازهٔ سرور را میگیرد. تا وقتی تغییری به سرور نرسیده، فقط روی همین دستگاه است و اگر دستگاه از دست برود، آن تغییر هم میرود.
دورها خودکار هم اجرا میشوند: باز شدنِ برنامه، برگشتِ اتصال، بازگشت به پیشزمینه، رویدادِ تغییرِ سرور و هر پانزده دقیقه؛ و میتوانید خودتان هم یک دور را دستی اجرا کنید. روی وب رفتارِ کمی فرق دارد که در docs/guides/WEB-PLATFORM.md آمده است. اگر دو دستگاه یک ردیف را همزمان عوض کنند، «تعارض» پیش میآید و ناخدا آن را بیصدا حل نمیکند؛ خودتان نسخهٔ خودتان یا نسخهٔ سرور را انتخاب میکنید. اگر سرور تغییری را برای همیشه نپذیرد، «ردِ دائمی» میشود و باید تصمیم بگیرید.
همگامسازی همهٔ چیز را نمیبرد. ماندهٔ ذخیرهشده تا تاریخِ قفلِ دوره و میانگینِ موزونِ انبار مشتقاند و هرگز نمیروند؛ تنظیماتِ دستگاه مثل تم و زبان هم همگام نمیشوند.
یک نکتهٔ صادقانه: این سند و راهنماهایِ همگامسازی رفتارِ کد را میگویند. یک دورِ واقعیِ همگامسازی با سرورِ زنده و دو دستگاهِ واقعی در این گذر دیده نشده و بخشی از آزمونهایِ آن با سرورِ جعلی انجام شده است. پس هر جمله دربارهٔ اثرِ روی سرور یعنی «کد چنین میکند»، نه «دیده شد».
یک مثال از همگامسازی
همگامسازی را در «سبد نارون» ببینید. فروشنده در گوشیِ انبار سه فاکتور میزند. تا گوشی به اینترنت وصل نشود، این سه فاکتور فقط در همان گوشیاند. پس از اتصال، یک دور اجرا میشود و سه فاکتور به سرور میرود؛ حالا رایانهٔ مغازه هم پس از دورِ بعدیِ خودش آنها را میگیرد. اگر همزمان صاحبِ مغازه یادداشتِ همان مشتری را در رایانه عوض کرده باشد، یک تعارض روی صفحهٔ همگامسازی مینشیند.
همگامسازی در ناخدا کجا دیده میشود؟
همگامسازی را در نقطهٔ وضعیتِ نوارِ بالایِ برنامه و صفحهٔ «همگامسازی» میبینید: خواندنِ وضعیتِ همگامسازی، اجرای دستیِ همگامسازی و تشخیصِ خطا و حلِ تعارض و ردِ دائمی در همگامسازی. جزئیاتِ صفحه در مرجع صفحهٔ همگامسازی است. نصبی که به سرور وصل نیست، بهجایِ آن صفحهٔ «پیکربندینشده» را نشان میدهد.
همگامسازی با چه چیزی اشتباه گرفته میشود؟
همگامسازی با پشتیبان و بازیابی اشتباه گرفته میشود. همگامسازی نسخهٔ مستقل نیست: حذف یا اشتباهی که همگام شود همهجا اعمال میشود. پشتیبان فایلی است که با حذفِ بعدی عوض نمیشود. به همین دلیل بازیابی از فایل در نصبِ متصل به سرور بسته است و همگامسازی جایگزینِ پشتیبانگیری نیست.
همگامسازی با «ثبت سند» هم یکی نیست: ثبتِ سند در دستگاه انجام میشود و همگامسازی فقط آن را جابهجا میکند؛ سرور ممکن است سندی را رد کند، مثلاً سندِ نامتوازن را.
منابعِ همگامسازی
- رفتارِ همگامسازی از کدِ ناخدا استخراج شده است (فهرستِ
sources). دورِ زنده با سرور مشاهده نشده است. - این سند ادعایِ قانونی ندارد و دربارهٔ امنیتِ سرور یا مدتِ نگهداشتنِ دادهٔ سرور ادعایی نمیکند (منبعِ رسمیِ این مورد هنوز افزوده نشده است)