Download - Naudokite versijų kontrolės sistemas
Naudokit VersijųKontrolės sistemą!
Ignas Mikalajūnas<[email protected]>
NOUShttp://nous.lt/
IT Naktis 2010
Svarbiausias dalykas
Programuotojo gyvenime
Rimtai
Svarbiau negu programavimo
kalba kurią pasirinksite
Nesvarbu kokią VCS pasirinksite
(git, bazaar, darcs, svn, mercurial)
Kas yra ta VCS ir kam man jos
reikia?
Mano darbo procesas tobulėjo
štai taip
Parašai.Paleidi.
Parašai.Paleidi.Išsaugai.
Parašai.Išsaugai.Sukompiliuoji.Paleidi.
Parašai.Išsaugai.Sukompiliuoji.Paleidi.
Parašai.Išsaugai.Sukompiliuoji.Paleidi.
Parašai.Išsaugai.Sukompiliuoji.Paleidi. <- čia reikia VCSParašai.Išsaugai.Sukompiliuoji.Paleidi.
Parašai.Išsaugai.Sukompiliuoji.Paleidi.
Išsaugai (commit) į VCS ir parašai ką naujopadarei
Parašai.Išsaugai.Sukompiliuoji.Paleidi.
Kodėl ją reikia naudoti
Kaip pradėjau aš
Dalintis kodu su draugais ir
dirbti komandoje prie vieno
projekto
Iki VCS
From: Jonas
Labas, siunčiu naują foo.c versiją.
From: Jonas
Labas, siunčiu naują foo.c versiją. Šį kartąprikabinau.
From: Jonas
Labas, siunčiu naują bar.c versiją. Be jos tafoo.c kurią siunčiau neveiks.
From: Petras
Labas, siunčiu naują foo.c versiją, perrašiaubeveik viską ten buvo kažkokiosnesamonės.
Versijų kontrolės sistema -
padeda dalintis kodu su
draugais!
Kita svarbi priežastis
Aš ne Einšteinas
Vienu metu galiu aprėpti max
~1000 eilučių kodo
(jei labai labai stengiuosi)
Kai buvau jaunas ir kvailas
dauguma mano projektų
"augdavo" taip
Pradedu rašyti savo 3D engine
Po dviejų trijų dienų jis jau gali
pavaizduoti besisukantį kubą
ekrane.
(500 eilučių)
Po dar dviejų trijų dienų kubas
šešėliuojamas.
(800 eilučių)
Po dar dviejų trijų dienų kubas
tekstūruojamas (bet
nebešešėliuojamas).
(1000 eilučių)
Po dar dviejų trijų dienų -
programa neveikia, o paskutinis
backupas iš tų laikų kai kubas
buvo beveik su šešėliais.
(1200 eilučių)
Po savaitės - pavyko priversti
programą veikti, kubas
tekstūruojamas (bet vis dar be
šešėlių)
Po dviejų trijų dienų - kubas
tekstūruojamas ir šešėliuojamas.
(1400 eilučių)
Nusprendžiu, kad kodas
betvarkė, ir kad viską reikia
perrašyti, nes nebesuprantu kaip
ir kas ten veikia.
Versijų kontrolės sistema -
padeda suskaldyti programą į
gabalus.
Vienu metu reikia galvoti tik apie
tas dalis kurias pakeitei.
Jei kažkas neveikia - visada gali
grįžti.
Kaikurie iš jūsų jau naudojate
VCS, tik labai prastą
mano_programa.c
mano_programa.cmano_programa.old
mano_programa.cmano_programa.oldmano_programa.old.oldmano_programa.old.old.old
mano_programa.cmano_programa.oldmano_programa.old.oldmano_programa.old.old.oldmano_programa.oldest
mano_programa.cmano_programa.oldmano_programa.old.oldmano_programa.old.old.oldmano_programa.oldestmano_programa.veikianti
Patikėkite - tikra VCS leis tai
daryti daug patogiau
Aš neišmokysiu jūsų kaip
naudotis kuria nors VCS
Bet duosiu kelis patarimus
kuriuos išmokau iš kolegų
Commit - operacija kuri padeda
naujausią tavo programos
versiją į VCS
Veikia - commitink!
Neveikia - necommitink!
Necommitink nesusijusių
pakeitimų vienu metu!
Visada pažiūrėk ką pakeitei prieš
commitindamas!
(kaip kitaip sužinosi ar necommitininesusijusių pakeitimų)
Išmok skaityti diff'ą
diff --git a/vcs.txt b/vcs.txtindex 2952344..f139f3c 100644--- a/vcs.txt+++ b/vcs.txt@@ -93,4 +93,8 @@ Visada pažiūrėk kąpakeitei prieš commitindamas!
.page
+Išmok skaityti diff'ą++.page+ Fin!
Skaldyk darbą į nedidelius
gabalus.
(tai daryti dažnai sunku)
Neikit dirbti į kompanijas kurios
nenaudoja VCS
Bet aš neturiu savo serverio,
kaip man naudoti VCS?
http://github.com/
http://bitbucket.org/
http://launchpad.net/
Nesijaudinkite, niekam nereikia
jūsų kodo, ir niekas jo už pinigus
neimtų ;)
Fin!