59
Naudokit Versijų Kontrolės sistemą! Ignas Mikalajūnas <[email protected]> NOUS http://nous.lt/ IT Naktis 2010

Naudokite versijų kontrolės sistemas

Embed Size (px)

DESCRIPTION

Kodėl programavimą reikia pradėti nuo versijų kontrolės sistemų ir kodėl verta jas naudoti. Pranešimas IT Naktis renginio metu.

Citation preview

Page 1: Naudokite versijų kontrolės sistemas

Naudokit VersijųKontrolės sistemą!

Ignas Mikalajūnas<[email protected]>

NOUShttp://nous.lt/

IT Naktis 2010

Page 2: Naudokite versijų kontrolės sistemas

Svarbiausias dalykas

Programuotojo gyvenime

Page 3: Naudokite versijų kontrolės sistemas

Rimtai

Page 4: Naudokite versijų kontrolės sistemas

Svarbiau negu programavimo

kalba kurią pasirinksite

Page 5: Naudokite versijų kontrolės sistemas

Nesvarbu kokią VCS pasirinksite

(git, bazaar, darcs, svn, mercurial)

Page 6: Naudokite versijų kontrolės sistemas

Kas yra ta VCS ir kam man jos

reikia?

Page 7: Naudokite versijų kontrolės sistemas

Mano darbo procesas tobulėjo

štai taip

Page 8: Naudokite versijų kontrolės sistemas

Parašai.Paleidi.

Page 9: Naudokite versijų kontrolės sistemas

Parašai.Paleidi.Išsaugai.

Page 10: Naudokite versijų kontrolės sistemas

Parašai.Išsaugai.Sukompiliuoji.Paleidi.

Page 11: Naudokite versijų kontrolės sistemas

Parašai.Išsaugai.Sukompiliuoji.Paleidi.

Parašai.Išsaugai.Sukompiliuoji.Paleidi.

Page 12: Naudokite versijų kontrolės sistemas

Parašai.Išsaugai.Sukompiliuoji.Paleidi. <- čia reikia VCSParašai.Išsaugai.Sukompiliuoji.Paleidi.

Page 13: Naudokite versijų kontrolės sistemas

Parašai.Išsaugai.Sukompiliuoji.Paleidi.

Išsaugai (commit) į VCS ir parašai ką naujopadarei

Parašai.Išsaugai.Sukompiliuoji.Paleidi.

Page 14: Naudokite versijų kontrolės sistemas

Kodėl ją reikia naudoti

Page 15: Naudokite versijų kontrolės sistemas

Kaip pradėjau aš

Page 16: Naudokite versijų kontrolės sistemas

Dalintis kodu su draugais ir

dirbti komandoje prie vieno

projekto

Page 17: Naudokite versijų kontrolės sistemas

Iki VCS

Page 18: Naudokite versijų kontrolės sistemas

From: Jonas

Labas, siunčiu naują foo.c versiją.

Page 19: Naudokite versijų kontrolės sistemas

From: Jonas

Labas, siunčiu naują foo.c versiją. Šį kartąprikabinau.

Page 20: Naudokite versijų kontrolės sistemas

From: Jonas

Labas, siunčiu naują bar.c versiją. Be jos tafoo.c kurią siunčiau neveiks.

Page 21: Naudokite versijų kontrolės sistemas

From: Petras

Labas, siunčiu naują foo.c versiją, perrašiaubeveik viską ten buvo kažkokiosnesamonės.

Page 22: Naudokite versijų kontrolės sistemas

Versijų kontrolės sistema -

padeda dalintis kodu su

draugais!

Page 23: Naudokite versijų kontrolės sistemas

Kita svarbi priežastis

Page 24: Naudokite versijų kontrolės sistemas

Aš ne Einšteinas

Page 25: Naudokite versijų kontrolės sistemas

Vienu metu galiu aprėpti max

~1000 eilučių kodo

(jei labai labai stengiuosi)

Page 26: Naudokite versijų kontrolės sistemas

Kai buvau jaunas ir kvailas

dauguma mano projektų

"augdavo" taip

Page 27: Naudokite versijų kontrolės sistemas

Pradedu rašyti savo 3D engine

Page 28: Naudokite versijų kontrolės sistemas

Po dviejų trijų dienų jis jau gali

pavaizduoti besisukantį kubą

ekrane.

(500 eilučių)

Page 29: Naudokite versijų kontrolės sistemas

Po dar dviejų trijų dienų kubas

šešėliuojamas.

(800 eilučių)

Page 30: Naudokite versijų kontrolės sistemas

Po dar dviejų trijų dienų kubas

tekstūruojamas (bet

nebešešėliuojamas).

(1000 eilučių)

Page 31: Naudokite versijų kontrolės sistemas

Po dar dviejų trijų dienų -

programa neveikia, o paskutinis

backupas iš tų laikų kai kubas

buvo beveik su šešėliais.

(1200 eilučių)

Page 32: Naudokite versijų kontrolės sistemas

Po savaitės - pavyko priversti

programą veikti, kubas

tekstūruojamas (bet vis dar be

šešėlių)

Page 33: Naudokite versijų kontrolės sistemas

Po dviejų trijų dienų - kubas

tekstūruojamas ir šešėliuojamas.

(1400 eilučių)

Page 34: Naudokite versijų kontrolės sistemas

Nusprendžiu, kad kodas

betvarkė, ir kad viską reikia

perrašyti, nes nebesuprantu kaip

ir kas ten veikia.

Page 35: Naudokite versijų kontrolės sistemas

Versijų kontrolės sistema -

padeda suskaldyti programą į

gabalus.

Page 36: Naudokite versijų kontrolės sistemas

Vienu metu reikia galvoti tik apie

tas dalis kurias pakeitei.

Page 37: Naudokite versijų kontrolės sistemas

Jei kažkas neveikia - visada gali

grįžti.

Page 38: Naudokite versijų kontrolės sistemas

Kaikurie iš jūsų jau naudojate

VCS, tik labai prastą

Page 39: Naudokite versijų kontrolės sistemas

mano_programa.c

Page 40: Naudokite versijų kontrolės sistemas

mano_programa.cmano_programa.old

Page 41: Naudokite versijų kontrolės sistemas

mano_programa.cmano_programa.oldmano_programa.old.oldmano_programa.old.old.old

Page 42: Naudokite versijų kontrolės sistemas

mano_programa.cmano_programa.oldmano_programa.old.oldmano_programa.old.old.oldmano_programa.oldest

Page 43: Naudokite versijų kontrolės sistemas

mano_programa.cmano_programa.oldmano_programa.old.oldmano_programa.old.old.oldmano_programa.oldestmano_programa.veikianti

Page 44: Naudokite versijų kontrolės sistemas

Patikėkite - tikra VCS leis tai

daryti daug patogiau

Page 45: Naudokite versijų kontrolės sistemas

Aš neišmokysiu jūsų kaip

naudotis kuria nors VCS

Page 46: Naudokite versijų kontrolės sistemas

Bet duosiu kelis patarimus

kuriuos išmokau iš kolegų

Page 47: Naudokite versijų kontrolės sistemas

Commit - operacija kuri padeda

naujausią tavo programos

versiją į VCS

Page 48: Naudokite versijų kontrolės sistemas

Veikia - commitink!

Page 49: Naudokite versijų kontrolės sistemas

Neveikia - necommitink!

Page 50: Naudokite versijų kontrolės sistemas

Necommitink nesusijusių

pakeitimų vienu metu!

Page 51: Naudokite versijų kontrolės sistemas

Visada pažiūrėk ką pakeitei prieš

commitindamas!

(kaip kitaip sužinosi ar necommitininesusijusių pakeitimų)

Page 52: Naudokite versijų kontrolės sistemas

Išmok skaityti diff'ą

Page 53: Naudokite versijų kontrolės sistemas

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!

Page 54: Naudokite versijų kontrolės sistemas

Skaldyk darbą į nedidelius

gabalus.

(tai daryti dažnai sunku)

Page 55: Naudokite versijų kontrolės sistemas

Neikit dirbti į kompanijas kurios

nenaudoja VCS

Page 56: Naudokite versijų kontrolės sistemas

Bet aš neturiu savo serverio,

kaip man naudoti VCS?

Page 57: Naudokite versijų kontrolės sistemas

http://github.com/

http://bitbucket.org/

http://launchpad.net/

Page 58: Naudokite versijų kontrolės sistemas

Nesijaudinkite, niekam nereikia

jūsų kodo, ir niekas jo už pinigus

neimtų ;)

Page 59: Naudokite versijų kontrolės sistemas

Fin!