به اشتراک گذاشتن یک پروژه از طریق شبکه، Xcode را جابه‌جا نمی‌کند، چون برنامه همچنان روی Mac شما اجرا می‌شود و همچنان داده‌های پروژه را از سرور می‌خواهد. اجرای Xcode روی Mac راهدور و تماشای صفحه آن ترتیب دیگری است که در آن برنامه و فایل‌هایش کنار هم می‌مانند و پیوند تنها نمایش و ورودی شما را حمل می‌کند. تصمیم گرفتن درباره اینکه کدام را می‌خواهید، پیش از پیکربندی هر چیزی، بیشتر سردرگمی بعدی را حل می‌کند.

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

دستگاهی را که Xcode را اجرا می‌کند نام ببرید

در ترتیب نخست همه چیز محلی است: نسخه کاری، نمایه و ساخت همه روی Mac شما زندگی می‌کنند و شبکه تنها ترافیک مخزن و وابستگی‌ها را حمل می‌کند. در دومی پروژه همراه Xcode روی Mac راهدور می‌ماند، پس نمایه‌سازی و کامپایل کنار فایل‌ها رخ می‌دهد در حالی که پیوند محتوای صفحه و فشار کلیدها را حمل می‌کند. در سومی ویرایش محلی رخ می‌دهد و ساخت پس از تحویل صریح منبع روی میزبان راهدور اجرا می‌شود. جدول نام می‌برد که هر یک چه چیزی را جابه‌جا می‌کند.

ArrangementWhere the source livesWhat crosses the link
Everything localLocal diskRepository and dependency traffic
Remote Xcode, screen sharedRemote diskDisplay frames and input events
Local edit, remote buildBoth, with a handoffSource transfer, then build output

نخست ستون میانی را بخوانید، چون تعیین می‌کند خرابی‌ها کجا ظاهر شوند. جریان کاری که منبعش راهدور است وقتی پیوند کند باشد شکست می‌خورد، در حالی که جریان کاری با کامپایلر راهدور وقتی تحویل مبهم باشد شکست می‌خورد. تنها سومی شما را برای هر دو مسئول می‌کند.

رفت‌وبرگشت‌ها را بشمارید، نه مگابایت‌ها را

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

هیچ‌یک از دو ترتیب به‌طور طبیعی سریع‌ترین نیست. انتخاب درست به کاری بستگی دارد که واقعاً انجام می‌دهید، و به همین دلیل گام بعدی آزمودن همان کار است نه یک معیار.

تحویل منبع را صریح کنید

وقتی هر دو دستگاه نسخه کاری دارند، تصمیم بگیرید کدام مرجع است و ساخت راهدور از کدام بازبینی استفاده کرده است. یک کامیت تحویل روشن‌تری از دو ابزاری است که یک درخت کاری سوارشده را ویرایش می‌کنند، چون کامیت هویت دارد و سوارشدن ندارد. خروجی تولیدشده و داده‌های نمایه هم به مالک نیاز دارند، چون از منبع بازسازی می‌شوند و نباید مانند منبع سفر کنند. آینه دوسویه بدون قواعد تعارض یک جریان کاری نیست، یک مسابقه است.

ساخت از راه دور همچنین نیاز دارد که میزبان راهدور زنجیره ابزار درست را داشته باشد و اعتبارنامه‌های وابستگی‌های خصوصی را. VPNی که به شما اجازه می‌دهد به میزبان برسید، دسترسی حساب شما را به آن قرض نمی‌دهد و Xcode را آنجا نصب نمی‌کند.

پیش از تعهد به یک جریان کاری مسیر را بررسی کنید

میزبان راهدور را پیش از طراحی پیرامونش بررسی کنید، سپس پیوند را با عملیاتی بسنجید که جریان کاری واقعاً انجام خواهد داد. دستورهای زیر زنجیره ابزار، پوشه توسعه‌دهنده فعال و هزینه مشاهده فایل را که فضاهای کاری راهدور را دردناک می‌کند بررسی می‌کنند. آخری را از مسیر شبکه اجرا کنید نه محلی.

xcode-select -p
xcodebuild -version
ssh mac-builder 'xcodebuild -version'
time git status --porcelain

میزبانی که نصب کامل Xcode ندارد از xcodebuild خطا برمی‌گرداند و این مسئله زنجیره ابزار است نه شبکه. پوشه توسعه‌دهنده نشان می‌دهد ساخت از کدام Xcode استفاده خواهد کرد و مسیری که تنها به ابزارهای خط فرمان اشاره می‌کند یعنی برنامه نصب نشده است. زمان‌سنجی دستور وضعیت مخزن از طریق اشتراک سوارشده هزینه رفت‌وبرگشت را مستقیماً آشکار می‌کند و مقایسه آن با اجرای محلی عددی را می‌دهد که اهمیت دارد. اگر این شکاف از پیش ناخوشایند است، جریان کاری با فضای کاری سوارشده زیر یک ویرایشگر واقعی بدتر خواهد بود.

ثبت کنید کدام ترتیب را انتخاب کردید، کدام دستگاه مالک منبع است و تحویل چگونه کار می‌کند. آن یادداشت، پذیرش بعدی یا تعویض لپ‌تاپ را به یک وظیفه پیکربندی به جای یک بررسی تبدیل می‌کند.

مقالات مرتبط