Xcode үчүн алыскы Mac: жергиликтүү куруу, алыскы куруу же экранды бөлүшүү?
Бекитилген иш мейкини жана алыскы Xcode ар башка маалыматтарды жылдырат. Булак, индекси жана куруу кайда жашаарын чечип, анан барып-кайтууларды өлчөңүз.
Долбоорду тармак аркылуу бөлүшүү Xcode-ду жылдырбайт, анткени колдонмо сиздин Mac-та иштей берет жана серверден долбоордун маалыматтарын сурай берет. Xcode-ду алыскы Mac-та иштетип, анын экранын көрүү башка жайгашуу, анда колдонмо жана анын файлдары чогуу калат, ал эми байланыш көрсөтүүнү жана сиздин киргизүүңүздү гана ташыйт. Бир нерсени жөндөөдөн мурун экөөнүн кайсынысын каалаарыңызды чечүү кийинки түшүнбөстүктүн көп бөлүгүн чечет.
Кадимки учурларды үч жайгашуу камтыйт жана алар иш мейкининин кайда жайгашканы жана кайсы машина компиляциялаганы менен айырмаланат. Улантуудан мурун эки пункт боюнча жообуңузду жазыңыз.
Xcode-ду иштеткен машинаны атаңыз
Биринчи жайгашууда баары жергиликтүү: иш көчүрмөсү, индекс жана куруу сиздин Mac-та жашайт, ал эми тармак кампа жана көз карандылыктар трафигин гана ташыйт. Экинчисинде долбоор Xcode менен бирге алыскы Mac-та калат, ошондуктан индекстөө жана компиляция файлдардын жанында жүрөт, байланыш экрандын мазмунун жана баскыч басууларды ташыйт. Үчүнчүсүндө түзөтүү жергиликтүү жүрөт жана ачык булак өткөрүп берүүдөн кийин алыскы хостто куруу иштейт. Таблица ар бири эмнени жылдыраарын атайт.
| 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 |
Алгач ортоңку тилкени окуңуз, анткени ал каталар кайда пайда болорун чечет. Булагы алыскы болгон иш агымы байланыш жай болгондо ишке ашпайт, ал эми алыскы компилятору бар иш агымы өткөрүп берүү эки анжы болгондо ишке ашпайт. Экөө үчүн тең жоопкерчиликти үчүнчүсү гана жүктөйт.
Барып-кайтууларды санаңыз, мегабайттарды эмес
Редактор жана индекстөөчү көптөгөн майда файлдык операцияларды чыгарат жана файл системасы алыскы болгондо алардын ар бири барып-кайтууга айланат. Бул бекитилген иш мейкинин бир чоң көчүрмө сезбегендей деңгээлде кечигүүгө сезимтал кылат, ошондуктан файл өткөрүп берүүнүн убактысын өлчөө иш агымы кандай сезилери жөнүндө дээрлик эч нерсе айтпайт. Алыскы дисплейдин тескери профили бар: ал үзгүлтүксүз агымды жылдырат жана кечигүүгө караганда өткөрүү жөндөмүн жакшы көтөрөт. Экөөнү бир сан менен салыштыруу ишеничтүү туура эмес жооп берет.
Эч бир жайгашуу табияты боюнча эң ылдам эмес. Туура тандоо иш жүзүндө жасаган ишиңизге байланыштуу, ошондуктан кийинки кадам эталон эмес, ошол ишти сынап көрүү.
Булак өткөрүп берүүнү ачык кыл
Эки машина тең иш көчүрмөсүн кармаганда, кайсынысы ыйгарым укуктуу жана алыскы куруу кайсы ревизияны колдонгонун чечиңиз. Коммит бир бекитилген иш дарагын эки курал түзөткөндөн ачыгыраак өткөрүп берүү, анткени коммиттин кимдиги бар, бекитүүнүн жок. Жаралган чыгарылыш жана индекс маалыматтары да ээсин талап кылат, анткени алар булактан кайра курулат жана булак сыяктуу саякаттабашы керек. Кагылышуу эрежелери жок эки тараптуу күзгү — бул иш агымы эмес, жарыш.
Алыстан куруу ошондой эле алыскы хосттун туура куралдар тизмеги болушун талап кылат жана жеке көз карандылыктар үчүн ыйгарым укуктарды талап кылат. Хостко жетүүгө мүмкүндүк берген VPN сиздин эсебиңизге кирүүнү ага карызга бербейт жана ал жерге Xcode орнотпойт.
Иш агымына милдеттенүүдөн мурун жолду текшериңиз
Алыскы хостту анын айланасында долбоорлоодон мурун текшериңиз, анан байланышты иш агымы иш жүзүндө аткара турган операциялар менен өлчөңүз. Төмөнкү буйруктар куралдар тизмегин, активдүү иштеп чыгуучу каталогун жана алыскы иш мейкиндиктерин кыйноочу файлды байкоо наркын текшерет. Акыркысын жергиликтүү эмес, тармак жолу менен иштетиңиз.
xcode-select -p
xcodebuild -version
ssh mac-builder 'xcodebuild -version'
time git status --porcelain
Толук Xcode орнотулбаган хост xcodebuild-тен ката кайтарат, жана бул тармак эмес, куралдар тизмегинин маселеси. Иштеп чыгуучу каталогу куруу кайсы Xcode-ду колдоноорун көрсөтөт, ал эми буйрук сабынын куралдарына гана көрсөткөн жол колдонмо орнотулбаганын билдирет. Бекитилген бөлүшүү аркылуу кампанын абалы буйругунун убактысын өлчөө барып-кайтуу наркын түз ачат, ал эми жергиликтүү иштетүү менен салыштыруу маанилүү санды берет. Эгер бул айырма азыр эле жагымсыз болсо, бекитилген иш мейкининин агымы чыныгы редактордун астында андан жаман болот.
Кайсы жайгашууну тандаганыңызды, булакка кайсы машина ээ экенин жана өткөрүп берүү кантип иштээрин жазыңыз. Бул жазуу кийинки ыңгайлашууну же ноутбукту алмаштырууну иликтөө эмес, жөндөө милдетине айландырат.