همگام‌سازی تنظیمات برای محیط توسعه دوم

چه تنظیماتی را چطور برای همگا‌م‌سازی با محیط توسعه دوم ذخیره کنیم؟

مدتی پیش Syncthing رو معرفی کردم که هر چند کارش همگام‌سازی (Sync) پوشه‌ها روی شبکه داخلی یا اینترنت برای کامپیوترهایی که بهشون دسترسی داریم بود اما من در شبکه داخلی برای همگام‌سازی مرتبط با محیط توسعه دوم استفاده می‌کنم.

استفاده از Syncthing برای ایجاد محیط توسعه دوم
همگام‌سازی فایل‌ها و پوشه‌ها بدون سرویس‌های ابری

وقتی می‌خواهیم یک محیط توسعه دوم همگام با محیط اصلی به عنوان backup داشته باشیم، صرفاً کپی مخازن کد کافی و نصب نرم‌افزارهای مورد نیاز کافی نیست و حداقل به دیتابیس‌ها و همچنین تنظیمات هم نیاز داریم.

چه تنظیماتی را نیاز داریم؟

من فکر می‌کنم جواب این سوال شخص به شخص ممکنه متفاوت باشه اما من به طور کلی تنظیمات زیر رو نگه می‌دارم:

  • تنظیمات گلوبال نرم‌افزارهای مختلف مثلا git و ترمینال و تنظیمات aliasها و امثالهم
  • اسکریپت‌های خاص منظوره به زبان‌های مختلف. به عنوان مثال اسکریپت sql برای خالی کردن جداول خاصی در محیط توسعه دارم یا موارد مشابه.
  • تنظیمات IDEها: به صورت کلی اگر چیزی قابل export کردن هست به صورت دوره‌ای نگهش می‌دارم. دقت کنید بعضی مواقع تنظیمات ممکنه به یک workspace خاص مربوط باشند که داخل همون پوشه کد به git منتقل می‌شن. این مواقع نیازی به ذخیره مجزای تنظیمات نیست.
  • استایل‌های Stylus: برای توییتر و چند سایت دیگه از استایل‌های سفارشی شده استفاده می‌کنم که همیشه به صورت دوره‌ای یک نسخه پشتیبان از تنظیماتش برای import کردن در مرورگر جدید دارم.
  • تنظیمات نرم‌افزارهای خاص: مثلاً من روی مک از Raycast استفاده می‌کنم یا نرم‌افزارهای دیگه که چه برای استفاده از در سیستم دوم و چه برای داشتن بکاپ از تنظیمات همین سیستم، نسخه export شده‌شون رو نگهداری می‌کنم.

تنظیمات را چطور نگهداری کنیم؟

پیشنهاد من استفاده از یک مخزن خصوصی روی گیت‌هابه. هم نسخه می‌خوره و می‌تونید history تغییرات رو ببینید و در صورت نیاز از نسخه‌های قبلی استفاده کنید و هم برگردوندنش راحت‌تره. حتی می‌تونید اسکریپت‌های خاصی برای کپی کردن فایل‌های تنظیمات در محل‌های مناسب داشته باشید. توضیح دیگه اینکه من علاوه بر push کردن پوشه مربوط به آرشیو تنظیمات، با Syncthing هم اون‌ها رو به محیط توسعه دوم منتقل می‌کنم.

شما چه روشی رو برای ذخیره و استفاده از تنظیمات مختلف بین سیستم‌های مختلف رو استفاده/پیشنهاد می‌کنید؟