Kaughost Mac Xcode'i jaoks: kohalik ehitus, kaug ehitus või ekraani jagamine?
Ühendatud tööruum ja kauge Xcode liigutavad erinevaid andmeid. Otsusta, kus asuvad lähtekood, indeks ja ehitus, seejärel mõõda edasi-tagasi käike.
Projekti jagamine võrgu kaudu ei vii Xcode'i mujale, sest rakendus töötab edasi sinu Macis ja küsib serverilt jätkuvalt projekti andmeid. Xcode'i käivitamine kaughost Macis ja selle ekraani vaatamine on teine lahendus, kus rakendus ja selle failid püsivad koos ning ühendus kannab ainult kuva ja sinu sisendi. Otsustamine, millist neist sa tahad, enne kui midagi seadistad, lahendab suurema osa hilisemast segadusest.
Tavajuhtumeid katavad kolm lahendust ja need erinevad selle poolest, kus tööruum asub ja milline masin kompileerib. Kirjuta oma vastus mõlema punkti kohta enne jätkamist.
Nimeta masin, mis käivitab Xcode'i
Esimeses lahenduses on kõik kohalik: töökope, indeks ja ehitus asuvad kõik sinu Macis ning võrk kannab ainult hoidla ja sõltuvuste liiklust. Teises jääb projekt koos Xcode'iga kaughost Maci, nii et indekseerimine ja kompileerimine toimuvad failide kõrval, samal ajal kui ühendus kannab ekraani sisu ja klahvivajutusi. Kolmandas toimub redigeerimine kohapeal ja ehitus jookseb kaughostis pärast selgesõnalist lähtekoodi üleandmist. Tabel nimetab, mida igaüks liigutab.
| 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 |
Loe kõigepealt keskmist veergu, sest see otsustab, kus tõrked ilmuvad. Töövoog, mille lähtekood on kaugel, ebaõnnestub, kui ühendus on aeglane, samas kui kaugkompilaatoriga töövoog ebaõnnestub, kui üleandmine on mitmetähenduslik. Ainult kolmas teeb sind mõlema eest vastutavaks.
Loe edasi-tagasi käike, mitte megabaite
Redaktor ja indekseerija teevad palju väikeseid failitoiminguid ja igaüks neist muutub edasi-tagasi käiguks, kui failisüsteem on kaugel. See muudab ühendatud tööruumi latentsusele tundlikuks nii, nagu üks suur koopia ei ole, mistõttu failiülekande ajastamine ei ütle sulle peaaegu midagi selle kohta, kuidas töövoog tundub. Kaugkuval on vastupidine profiil: see liigutab pidevat voogu ja talub läbilaskevõimet paremini kui hilinemist. Kahe võrdlemine ühe numbriga annab enesekindla vale vastuse.
Kumbki lahendus ei ole loomult kiireim. Õige valik sõltub tööst, mida sa tegelikult teed, mistõttu on järgmine samm proovida seda tööd, mitte võrdlusalust.
Tee lähtekoodi üleandmine selgesõnaliseks
Kui mõlemal masinal on töökope, otsusta, milline on autoriteetne ja millist redaktsiooni kaug ehitus kasutas. Commit on selgem üleandmine kui kaks tööriista, mis redigeerivad ühte ühendatud tööpuud, sest commitil on identiteet ja ühendusel mitte. Genereeritud väljund ja indeksiandmed vajavad samuti omanikku, sest need ehitatakse lähtekoodist uuesti üles ja ei peaks reisima nii, nagu oleksid need lähtekood. Kahesuunaline peegel ilma konfliktireegliteta ei ole töövoog, vaid võidujooks.
Kaugelt ehitamine nõuab ka et kaughostil oleks õige tööriistakett ja eraviisiliste sõltuvuste volitused. VPN, mis laseb sul hostini jõuda, ei laena talle sinu konto juurdepääsu ega paigalda sinna Xcode'i.
Kontrolli teed, enne kui kohustud töövooga
Kontrolli kaughosti enne selle ümber projekteerimist, seejärel mõõda ühendust toimingutega, mida töövoog tegelikult teeb. Allolevad käsud kontrollivad tööriistaketti, aktiivset arendajakataloogi ja failide jälgimise kulu, mis teeb kaughost tööruumid valulikuks. Käivita viimane võrgutee kaudu, mitte kohapeal.
xcode-select -p
xcodebuild -version
ssh mac-builder 'xcodebuild -version'
time git status --porcelain
Host, millel pole täielikku Xcode'i paigaldust, tagastab xcodebuildilt vea ja see on tööriistaketi, mitte võrgu probleem. Arendajakataloog näitab, millist Xcode'i ehitus kasutab, ja ainult käsurea tööriistadele osutav tee tähendab, et rakendus pole paigaldatud. Hoidla olekukäsu ajastamine ühendatud jagatise kaudu paljastab edasi-tagasi käigu kulu otseselt ja kohaliku jooksuga võrdlemine annab numbri, mis loeb. Kui see vahe on juba ebameeldiv, on ühendatud tööruumiga töövoog tõelise redaktori all hullem.
Pane kirja, millise lahenduse valisid, milline masin omab lähtekoodi ja kuidas üleandmine töötab. See märge muudab järgmise sisseelamise või sülearvuti vahetuse uurimise asemel seadistusülesandeks.