Hogyan kövessök a softwerünk változásait, ha azt rendszeresen át is kell adni egy ügyfélnek? Milyen stratégiákból választhatunk, ha CVS-t, SVN-t, vagy GIT-et használunk?
2009-es web konferencián tartott előadásom fóliái.
Budapest, PHP meetup: Termék életciklus és verzió kezelésAttila Gábor Nagy
Verzió kezelési stratégiák, melyekkel biztosítható, hogy a fejlesztői, teszt és éles környezeteink között megbízhatóan tudjuk a kódjainkat mozgatni.
Az előadásról készült videó itt található:
http://www.ustream.tv/recorded/27330358
Mission Our mission is to touch the horizon where our capabilities successfully meet with the requirements of our clients, that too with ultimate transparency and cost-effectiveness.
Budapest, PHP meetup: Termék életciklus és verzió kezelésAttila Gábor Nagy
Verzió kezelési stratégiák, melyekkel biztosítható, hogy a fejlesztői, teszt és éles környezeteink között megbízhatóan tudjuk a kódjainkat mozgatni.
Az előadásról készült videó itt található:
http://www.ustream.tv/recorded/27330358
Mission Our mission is to touch the horizon where our capabilities successfully meet with the requirements of our clients, that too with ultimate transparency and cost-effectiveness.
Mебелите с търговска марка АДЕЛИНИ са на българския пазар от 1991 г. През своята история марката се е утвърдила, като символ на качество и стил. В годините на работа компанията се е развила и е обхванала почти всички сфери на мебелното производство и търговия, в частност - кухни, спални и холово обзавеждане. От създаването си до сега фирмата се е специализирала в изработката на индивидуални проекти съобразени с движението на тенденциите в интериорния дизайн.
Rahul Bohra - HPGD JA14 May 2015, Project ISR, NGO Being HumanRahul Bohra
Being Human is a registered charitable trust working in the areas of education and healthcare for the underprivileged.
Name : Rahul Bohra
College : Welingkar Institute of Management and Research
Class : MBA E - Business, 3rd Semester.
Project : Individual Social Responsibility.
Social Cause : Education & Healthcare
NGO : Being Human
Thanks for watching. Please comment and give us feedback.
Verziókövető rendszerek alkalmazása fejlesztési projektekbenOpen Academy
Mi az, amit minden fejlesztőnek tudnia kellene, de szinte nincs egyetem, ahol oktatnák? Ezek a verziókövető rendszerek, amit minden jól működő fejlesztőcég alkalmaz.
Mi az a Mozilla? Kik állnak mögötte? Kik vesznek részt a projektben és mit csinálnak? Előadásommal Mozilla gyümölcsöskertjének terméseit próbálom bemutatni. A most induló kísérletektől kezdve, a már működő és sok felhasználót vonzó termékekig. Rád is számítunk, csatlakozz Te is önkéntes csapatunkhoz.
Mебелите с търговска марка АДЕЛИНИ са на българския пазар от 1991 г. През своята история марката се е утвърдила, като символ на качество и стил. В годините на работа компанията се е развила и е обхванала почти всички сфери на мебелното производство и търговия, в частност - кухни, спални и холово обзавеждане. От създаването си до сега фирмата се е специализирала в изработката на индивидуални проекти съобразени с движението на тенденциите в интериорния дизайн.
Rahul Bohra - HPGD JA14 May 2015, Project ISR, NGO Being HumanRahul Bohra
Being Human is a registered charitable trust working in the areas of education and healthcare for the underprivileged.
Name : Rahul Bohra
College : Welingkar Institute of Management and Research
Class : MBA E - Business, 3rd Semester.
Project : Individual Social Responsibility.
Social Cause : Education & Healthcare
NGO : Being Human
Thanks for watching. Please comment and give us feedback.
Verziókövető rendszerek alkalmazása fejlesztési projektekbenOpen Academy
Mi az, amit minden fejlesztőnek tudnia kellene, de szinte nincs egyetem, ahol oktatnák? Ezek a verziókövető rendszerek, amit minden jól működő fejlesztőcég alkalmaz.
Mi az a Mozilla? Kik állnak mögötte? Kik vesznek részt a projektben és mit csinálnak? Előadásommal Mozilla gyümölcsöskertjének terméseit próbálom bemutatni. A most induló kísérletektől kezdve, a már működő és sok felhasználót vonzó termékekig. Rád is számítunk, csatlakozz Te is önkéntes csapatunkhoz.
1. Termék életciklus és
a verziókezelés
Nagy Attila Gábor
Wildom Kft.
Magyarországi Web Konferencia 2009
2. Ügyfél igények
●
Jól ismert három környezet:
– Fejlesztői
– Teszt
– Éles
●
Átlátható verziók
●
Visszaállás lehetősége
3. Web környezet
problémái
●
Release early, release often
●
Környezet kialakítása
erőforrásigényes
●
Éles környezetben is adódhatnak
változtatási igények
●
Hibajavításokat gyorsan kell
átvezetni
●
Adott termék több ügyfélnél is
lehet telepítve (esetlegesen más
verziók)
5. Termékben
implementálva
●
Saját modul kezelő implementálása
– Elegáns megoldás
– Minden telepítés egyedileg állítható
össze
– Aktuális állapot átlátható
– Akár az ügyfél is frissíthet
6. Hátrányai
●
Bonyolult megírni
●
Alap rendszer frissítése?
– Erre külön frissítés kezelő kell
●
Fejlesztés alatt a belső verzió
kezelést nem helyettesíti
Ajánlott: ha sok ügyfelet szolgál ki
egyetlen termék
8. Hatalmas választék
Team Foundation
CVS Server
ClearCase
Subversion
Bazaar Darcs
Git
Mercurial
BitKeeper
9. Commit log!! Tippek az induláshoz
Commit log!!
●
Minden környezet azonos
forráskódot használjon
– Konfiguráció nem verzió kezelt
– Környezet függő konfigurációk
●
Rendszeres commitolás
●
Csak tiszta kódot commitoljunk
– Ignore fájlok, akár projekt szinten
●
Minimális változtatás elve
●
Conflictok kezelését ismerni
10. CVS
●
Ajánlott elfelejteni
– Könnyű áttérni róla Subversion-re
●
Branch kezelés gyenge
●
Nagyobb projektet nehéz átlátni
– History fájl szinten van csak
– Véletlen update után nehéz
visszaállni
●
Tag-ek viszont jól használhatóak
benne
11. Éles és fejlesztői
környezet CVS-ben
●
Külön tag az éles verziónak
– Bármikor kialakítható, éles siteon:
●
cvs tag LIVE
●
Fejlesztői verziók tag nélkül
●
Élesítés esetén áttesszük a tag-et:
– cvs tag -F LIVE
– cvs update
12. Értékelés
Előnyök Hátrányok
●
Megakadályozza a ●
Éles site-on
véletlen update-ket történt
módosításokat
●
Bármikor könnyen
nehéz
újrahúzható az éles
commitolni
környezet
●
Release tudatos
döntés eredménye
13. Subversion
●
Legelterjedtebb eszköz
●
Könnyen megtanulható
●
CVS hibáit kijavították
●
Használható branch-ek
●
Revíziók meghatározzák a projekt
állapotát adott időpontban
●
Rugalmasabb mint a CVS
14. Párhuzamos ágak
●
Intuitív
●
Gyakori
élesítésnél jobban
megfelel
●
„Csak előre”
szemlélet
●
Nincsenek
dedikált releasek
●
Nem kell
„újratelepíteni”
18. Megjegyzések
●
Jóval kevesebb merge
●
Könnyű elfeledkezni arról, hogy új
release-t hozzunk létre →
párhuzamos branch-ek
●
Minden release „új telepítés”
– vagy: svn switch
●
Nem egyértelmű, hogy mi kerülhet
a release-be, és mi nem
– Fontos a jó policy
– Fontos azt betartatni
19. Merge tracking
●
Fontos tudni, hogy mely revíziókat
mergeltük már
– Többszörös merge conflict-ot okoz
●
SVN még nem igazán erős ebben
– 1.5.0 előtt nem volt SVN-ben
●
svnmerge: python script
– 1.5.0 óta mergeinfo
●
trunk → branch bármikor
●
branch → trunk csak egyszer
– „reintegrate”
20. Elosztott verzió
kezelő rendszerek
●
Hatékony branch-merge támogatás
– Linus: „a merge a lényeg,
branchelni mindenki tud”
●
Lokális branch-ek
●
Nagy szabadság
●
Implicit backup
●
Git, Mercurial, Bazaar
http://www.youtube.com/watch?v=4XpnKHJAok8
21. Hátrányok
●
Nehéz megtanulni
●
Sok branchet eredményezhet
– Kell egy jó rendező elv
●
Hol a legfrissebb kód?
●
Több idő megy el kód
managementre
22. Bizonytalan ügyfél
?
? probléma
3
3 ●
Revertelni nem lehet,
Jelmagyarázat
Jelmagyarázat
Még fontosabb
Inkább hagyjuk...
3
3 mert értékes
tartalom
feature
2
2
Mégsem olyan
Bocs, mégis sürgős
Nagyon sürgős
sürgős feature
feature
1
Egész ügyes, de...
Általános fejlesztés
1 ●
Mergelni sem lehet
4
4
2
2
●
Cherry pick
1
1 – Nehezen átlátható
3
3 – Kimaradhat valami
2
2 – Egy commit több
1
1 feature :(
R
R
23. Feature branch
●
Egy feature – egy
R
R
branch
R
R
4 4
●
Bármikor
4 4
tetszőleges release
3
3 3
3 3
3 3
3
összeállítható
2
2 2
2 2
2 2
2
1
1 1
1 1
1 1
1
●
Mindig lehet
commitolni
R
R
●
Kisebb brancheket
könnyebb átlátni
24. Ideális struktúra
●
Projekt eleje
szerteágazik
●
Release-ek egyesítik
a korábbi branche-
eket
●
Maradhatnak
oldalágak
– Nem került be a
releasebe
25. Tesztkörnyezet
●
Ügyfél nem
akarja/tudja a branch-
eket külön látni
next
●
Nincs több
környezetünk
●
Speciális demo branch
●
Bármikor
szétszedhető
●
Release-candidate
26. Tudnivalók
●
Megvalósítható Subversionnel
– Git, Mercurial erősebb ebben
●
Projekt elején néha célszerűbb
eltekinteni tőle
●
Lehetőleg minden feature külön
branchbe kerüljön
– Ha egymásra épülnek, akkor az új
branch az előzményből
származzon
28. Release management
eszközök
●
Maven, php-maven, Hudson
●
Fordító nyelveknél előnyös
– Java
●
Maven tudja, hogy mit, honnan kell
összeszedni
– Repository szabadon használható
●
Build során megkerülhetetlen
– Nehezítheti a tesztelést
●
Pl: JavaScript, CSS
29. Összefoglaló
●
Befektetés
●
Mi felel meg nekünk legjobban?
– Eszköz
– Szakértelem
– Publikálási gyakoriság
– Telepítések száma
– Kapcsolat az ügyfelünkkel