naudokite versijų kontrolės sistemas

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

Upload: barcamplt

Post on 02-Dec-2014

1.200 views

Category:

Education


4 download

DESCRIPTION

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

TRANSCRIPT

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!