Udaljeni Mac za Xcode: lokalna izrada, udaljena izrada ili dijeljenje ekrana?
Montirana radna površina i udaljeni Xcode prenose različite podatke. Odlučite gdje žive izvor, indeks i izrada, pa izmjerite povratna putovanja.
Dijeljenje projekta preko mreže ne premješta Xcode, jer aplikacija nastavlja raditi na vašem Macu i stalno traži podatke o projektu od poslužitelja. Pokretanje Xcodea na udaljenom Macu i gledanje njegovog ekrana drugačiji je raspored, u kojem aplikacija i njezine datoteke ostaju zajedno, a veza prenosi samo prikaz i vaš unos. Odluka koju od toga želite, prije nego što bilo što konfigurirate, rješava većinu kasnije zabune.
Tri rasporeda pokrivaju uobičajene slučajeve, a razlikuju se po tome gdje živi radna površina i koje računalo kompilira. Zapišite svoj odgovor na obje točke prije nego što nastavite.
Imenujte računalo koje pokreće Xcode
U prvom rasporedu sve je lokalno: radna kopija, indeks i izrada žive na vašem Macu, a mreža prenosi samo promet repozitorija i ovisnosti. U drugom projekt ostaje na udaljenom Macu s Xcodeom, pa se indeksiranje i kompilacija odvijaju uz datoteke dok veza prenosi sadržaj zaslona i pritiske tipki. U trećem se uređivanje odvija lokalno, a izrada se izvodi na udaljenom hostu nakon izričitog prijenosa izvora. Tablica imenuje što svaki od njih premješta.
| Arrangement | Where the source lives | What crosses the link |
|---|---|---|
| Everything local | Local disk | Repository and dependency traffic |
| Remote Xcode, screen shared | Remote disk | Display frames and input events |
| Local edit, remote build | Both, with a handoff | Source transfer, then build output |
Prvo pročitajte srednji stupac jer on određuje gdje će se pojaviti kvarovi. Radni tok čiji je izvor udaljen pada kada je veza spora, dok radni tok s udaljenim prevoditeljem pada kada je prijenos dvosmislen. Samo treći vas čini odgovornim za oboje.
Brojite povratna putovanja, a ne megabajte
Uređivač i indekser izdaju mnogo malih datotečnih operacija, a svaka postaje povratno putovanje kada je datotečni sustav udaljen. To čini montiranu radnu površinu osjetljivom na latenciju na način na koji jedna velika kopija nije, zato mjerenje vremena prijenosa datoteke gotovo ništa ne govori o tome kako se radni tok osjeća. Udaljeni prikaz ima suprotan profil: prenosi neprekinuti tok i bolje podnosi propusnost nego kašnjenje. Usporedba dvaju jednim brojem daje samouvjeren pogrešan odgovor.
Nijedan raspored nije po prirodi najbrži. Ispravan izbor ovisi o poslu koji doista radite, zato je sljedeći korak isprobati taj posao, a ne mjerilo.
Učinite prijenos izvora izričitim
Kada oba računala drže radnu kopiju, odlučite koje je mjerodavno i koju je reviziju koristila udaljena izrada. Commit je jasniji prijenos od dvaju alata koji uređuju jedno montirano radno stablo, jer commit ima identitet, a montaža ne. Generirani izlaz i podaci indeksa također trebaju vlasnika, jer se obnavljaju iz izvora i ne bi trebali putovati kao da su izvor. Dvosmjerno zrcaljenje bez pravila za sukobe nije radni tok, to je utrka.
Izrada na daljinu također zahtijeva da udaljeni host ima ispravan lanac alata i vjerodajnice za privatne ovisnosti. VPN koji vam omogućuje dosezanje hosta ne posuđuje mu pristup vašem računu i ne instalira tamo Xcode.
Provjerite put prije nego što se obvežete na radni tok
Provjerite udaljeni host prije nego što gradite oko njega, zatim izmjerite vezu operacijama koje će radni tok doista izvoditi. Naredbe u nastavku provjeravaju lanac alata, aktivni direktorij razvojnog okruženja i trošak promatranja datoteka koji udaljene radne površine čini bolnima. Pokrenite posljednju preko mrežnog puta, a ne lokalno.
xcode-select -p
xcodebuild -version
ssh mac-builder 'xcodebuild -version'
time git status --porcelain
Host bez pune instalacije Xcodea vraća pogrešku iz xcodebuilda, a to je problem lanca alata, ne mreže. Direktorij razvojnog okruženja pokazuje koji će Xcode koristiti izrada, a put koji pokazuje samo na alate naredbenog retka znači da aplikacija nije instalirana. Mjerenje vremena naredbe stanja repozitorija preko montirane dijeljene mape izravno otkriva trošak povratnog putovanja, a usporedba s lokalnim pokretanjem daje broj koji je važan. Ako je taj jaz već neugodan, radni tok s montiranom radnom površinom bit će gori pod pravim uređivačem.
Zabilježite koji ste raspored odabrali, koje računalo posjeduje izvor i kako prijenos funkcionira. Ta bilješka pretvara sljedeće uvođenje ili zamjenu prijenosnika u konfiguracijski zadatak umjesto istrage.