Teisingas darbo procesas su Git (VCS)
Correct Flow with Git (Version Control System)
Netestuotas kodas NIEKADA negali būti sujungtas į Main šaką.
Untested code must NEVER be merged into Main.
Main šaka visada privalo būti paruošta leidimui.
Main should always be in a deployable state.
Tiesioginiai kėlimai į main užblokuoja visos komandos darbą.
Direct commits to main block everyone during
failures.
Funkcijos patikrinamos izoliacijoje prieš pasiekiant pagrindinę šaką.
Features are verified in isolation before reaching the
"Golden Master".
1. Sinchronizacija (Sync)
Prieš kuriant naują šaką, visada atsisiųskite naujausią `main` šakos versiją (`git pull`). Niekada nepradėkite darbo nuo pasenusio kodo.
2. Teisingas šaltinis (Base Branch)
Šaką kurkite TIK iš `main`. Niekada nekurkite darbinės šakos iš `staging` ar kito kolegos nebaigtos šakos, nebent tai būtina dėl priklausomybių.
3. Poveikio vertinimas (Impact check)
Jei planuojate keisti kodą `shared` aplankuose, iškart įsivertinkite, kurios aplikacijos bus paveiktos. Tai padės QA komandai geriau suplanuoti testavimą.
Sugrupuokite smulkius pataisymus į vieną šaką, kad sutaupytumėte laiko build'ams.
Group small fixes into one QA-ready branch to save
build time.
1. Lygiagretus testavimas (Parallel Testing)
QA žino, kad „šiandienos versija yra staging šakoje“. Jie gali ramiai testuoti visą dieną, kol programuotojai kaupia naujus pataisymus kitai dienai.
2. Mažiau „Context Switching“
Kadangi dirba tik 2 programuotojai, galite drąsiai sujungti abiejų darbus į staging. Jei build'as trunka 30 min., sutaupote po pusvalandį kiekvienam programuotojui kasdien.
Automation: QA gets Slack/Discord notifications automatically.
10 kartų pigiau:
Ištaisyti klaidą PR stadijoje (prieš sujungimą).
10x Cheaper: Fixing a bug during PR / before
merge.
Brangu: Radus klaidą Main šakoje, visa komanda priversta
stabdyti darbus.
Expensive: Finding bugs in Main forces the whole
team to stop feature work.
Kritinė būsena: Negalima net pradėti naujo darbo
Jei `main` yra sugadintas, programuotojai negali sukurti „švarios“ darbinės šakos naujai užduočiai. Bet koks naujas darbas paveldės klaidą, todėl jo nebus įmanoma teisingai pratestuoti.
Blokuojami skubūs pataisymai
Kiti programuotojai negali saugiai sujungti savo kritinių pataisymų, kol nebus išvalytas `main` – visas inžinerinis procesas sustoja.
A broken main branch freezes the entire organization. You cannot even branch off from a clean state.
Best for: Critical one-off fixes or very urgent features.
Best for: Daily efficiency, batching small fixes, and reducing build wait times.
Patikra prieš sujungimą yra vienintelis būdas sėkmingai
plėsti Monorepo projektą.
Verification before merge is the only way to scale a
Monorepo.
Paruošta Pauliaus Jarošiaus
su Gemini pagalbos privalumais