Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Univerzita Karlova v Praze, 1. lékařská fakulta, Laboratoř biokybernetiky a počítačové podpory výuky Nové pracovní postupy I. Petr Stodulka Představení.

Podobné prezentace


Prezentace na téma: "Univerzita Karlova v Praze, 1. lékařská fakulta, Laboratoř biokybernetiky a počítačové podpory výuky Nové pracovní postupy I. Petr Stodulka Představení."— Transkript prezentace:

1 Univerzita Karlova v Praze, 1. lékařská fakulta, Laboratoř biokybernetiky a počítačové podpory výuky Nové pracovní postupy I. Petr Stodulka Představení nástrojů zvyšujících efektivitu práce na softwarových projektech Kofrlab,

2 Nové pracovní postupy I. 6 nástrojů pro úspěšně fungující vývoj 12 Steps to Better Code Představení nástrojů – Subversion – Bugzilla – Wiki Založení uživatelských účtů na SVN

3 6 nástrojů pro úspěšně fungující vývoj 1. Verzování kódu Centrální úložiště 2. Checkout kódu a knihoven, Kompilace, Deployment, Dokumentace 3.  Build  test  report 4. Správa bugů 5. Code coverage, Code convention, Coding style 5. Snadné, otevřené, verzované

4 12 Steps to Better Code 1.Do you use source control? 2.Can you make a build in one step? 3.Do you make daily builds? 4.Do you have a bug database? 5.Do you fix bugs before writing new code? 6.Do you have an up-to-date schedule? 7.Do you have a spec? 8.Do programmers have quiet working conditions? 9.Do you use the best tools money can buy? 10.Do you have testers? 11.Do new candidates write code during their interview? 12.Do you do hallway usability testing? A score of 12 is perfect, 11 is tolerable, but 10 or lower and you've got serious problems. The truth is that most software organizations are running with a score of 2 or 3, and they need serious help, because companies like Microsoft run at 12 full- time.

5 Kofrlab Chlubíme se interdisciplinárním týmem ‼Každý pracuje sám ‼Komunikace vázne – Požadavky, specifikace, dokumentace, bugy – Sdílení výsledků práce mezi členy týmu ≈ CHAOS

6 Verzování kódu - motivace 1 Stáhnu si zdrojáky Wizarda, používám je, najdu chybu Chybu opravím a chci ji nahrát na server – Nezměnil mezitím Palo něco? (diff) – Potom taky ne? Musím mu to oznámit, jinak ho dostanu do stejné situace. Dříve nebo později KONFLIKT!

7 Verzování kódu - motivace 2 Používám počítač v práci, doma a ještě notebook Práci průběžně nahrávám na FTP – Zapomínám – Existují 4 kopie kódu – která je aktuální?! Dříve nebo později BORDEL!

8 Verzování kódu - motivace 3 Dělám na větším projektu – Kód, dokumentace, knihovny, resourcy Průběžně kopíruju zálohy – ZALOHA\WIZARD_ apod. – Válí se všude po disku a jsou obludně velké – Nikdy se k nim nevrátím Jedním slovem DĚS BĚS

9 SVN – principy 1 Aktuální verze kódu je na serveru (repository) – K práci si kód vždy „půjčuju“, potom ho vrátím Kód si může stáhnout každý (working copy) Problémy se řeší před uploadem změn

10 SVN – principy 2 Checkout – Založí working copy Update – Aktualizuje w.c. – Nezničí práci! –  Konflikty Commit – Uploaduje práci do repository Práce Kód stojí Konflikty update commit

11 SVN – konflikt

12 SVN – zamykání Prevence konfliktů Zámek = vzkaz Nekomfortní – Před prací nutné zamknout Problémy – když zapomene odemknout Jak vlastně poznám, že je soubor zamčený? – read-only – záleží na aplikaci

13 SVN – merging Merging na úrovni řádků – tedy pouze textové soubory Nemusí dojít ke konfliktu – Změny na různých řádcích  Nelze zaručit, že kód půjde přeložit!

14 SVN – resolve Při konfliktu vzniknou 4 soubory – nástroj diff3 1. Podoba při mém posledním update (poslední společný moment) 3. Moje práce 2. Aktuální podoba v repozitáři 4. Vznikne z předchozích – konfliktní oblasti jsou označeny. Binárky se nemergují. 5. „Merged file“ je potřeba upravit a označit jako Resolved

15 SVN - revize Revize = podoba repository v konkrétní časový okamžik Každý commit zvýší číslo revize celého repozitáře (global revision numbers) Mixed revisions ve working copy : Commit nastaví číslo poslední revize pouze commitovaným souborům Až update nastaví všem souborům ve working copy číslo poslední revize update a commit jsou oddělené; „push“ nezpůsobí „pull“

16 SVN – co to ještě umí? Historie – lze si vycheckoutovat podobu projektu k libovolnému datu a dělat diff mezi libovolnými revizemi Metadata (properties) – rozšíření funkcí SVN Vývojové větve – vývoj se rozdělí na dvě nezávislé větve – lze mezi nimi přenášet změny nebo je později zase spojit Wizard Wizard.NET 1.1 Wizard.NET 2.0 opravy bugů

17 Kofrlab TortoiseSVN - – klient integrovaný do shellu windows, ovládaný kompletně z kontextové nabídky – repository browsing, revision graph, pěkný editor mergovaných souborů – samozřejmě je možné používat libovolného klienta Kofrlab repository – – anon/anon pro čtení, vlastní účet pro zápis

18 Bug Tracking System - motivace Uživatel: Najdu chybu nebo chci navrhnout vylepšení  napíšu mail autorovi – nic ho nenutí se tím zabývat – i když chybu opraví, nemusí mi o tom vůbec dát vědět Všechno je to o komunikaci Programátor: Stoly se plní počmáranými papíry s poznámkami. – Po víkendu si nikdo nepamatuje, kde má „ty aktuální“ Bugy zůstávají, nikdo je není schopen sledovat.

19 Bugzilla - principy Bugzilla – webová aplikace Submit bugu – uložení do DB – pošle se mail adresátovi bugu Údaje u bugu: – produkt, jeho komponenta, verze, hardware, OS – závažnost, priorita – popis – stav bugu – komentáře uživatelů Databáze je typicky otevřená – bugy mohou reportovat i uživatelé

20 Bugzilla – stavy bugu Bug je možné kdykoliv delegovat na někoho jiného (reassign) Resolvovaný bug je možné znovuotevřít (reopen) Závislosti bugů NEW RESOLVED FIXED INVALID WONTFIX WORKSFORME Duplicate of bug # ASSIGNED

21 Bugzilla – jak reportovat bug Vhodný nadpis (pro vyhledávání) – „PCMCIA install fails on Tosh Tecra 780DVD w/ 3c589C “ vs. „install problem“ Jak zopakovat bug Co jsem očekával Co se stalo Závažnost a prioritu už si určí kompetentní osoby

22 Kofrlab Kofrlab Bugzilla – – Uživatelský účet si zakládá každý sám Bugy nelze mazat – Na vyzkoušení je založený TestProduct

23 wiki - správa dokumentů Specifikace, dokumentace, návody, tutorialy – Knowledge base Sdílení, verzování Přístup veřejnosti – kontrola pomocí ACL Jednoduchá syntaxe (i oproti HTML)

24 wiki – syntaxe 1 //kurzíva//kurzíva **tučné**tučné __podtržené__podtržené ‘monospaced’ monospaced smazané (přeškrtnuté) [[www.google.com|Google]], [[wiki:syntax]] {{ obrazek.jpg}}obrázek zarovnaný vpravo ====== Nadpis 1 ====== ===== Nadpis 2 ===== ==== Nadpis 3 ====

25 wiki – syntaxe 2 není potřeba používat odstavce odděleny prázdným řádkem automaticky se generuje obsah (TOC) seznamy pomocí odrážek ‘*’ , ‘-’  tabulky smajlíci Syntax Highlighting – C#, ActionScript, HTML, XML, Java, … public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() {createAndShowGUI();} }); }

26 Kofrlab Kofrlab Wiki – – veřejně pro čtení, pro zápis je potřeba registrace DokuWiki – zvýrazňování syntaxe

27 Nakonec Založíme SVN účty na serveru Příště: metody práce na SW projektech – SW testing (unit, integration) Další nástroje – Build system, continuous integration, code analysis

28 Odkazy – Joel Spolskyhttp://www.joelonsoftware.com/articles/fog html - Roman Pichlíkhttp://www.sweb.cz/pichlik/archive/2007_02_04_archive.html - SVN manuálhttp://svnbook.red-bean.com - TortoiseSVNhttp://tortoisesvn.tigris.org/ - Bugzillahttp://www.bugzilla.org/ - DokuWikihttp://wiki.splitbrain.org/wiki:dokuwiki - Kofrlab SVN repositoryhttp://patf-biokyb.lf1.cuni.cz/repos/ - Kofrlab Bugzillahttp://patf-biokyb.lf1.cuni.cz/bugzilla/ - Kofrlab Wikihttp://patf-biokyb.lf1.cuni.cz/wiki/

29 Univerzita Karlova v Praze, 1. lékařská fakulta, Laboratoř biokybernetiky a počítačové podpory výuky Děkuji za pozornost Petr


Stáhnout ppt "Univerzita Karlova v Praze, 1. lékařská fakulta, Laboratoř biokybernetiky a počítačové podpory výuky Nové pracovní postupy I. Petr Stodulka Představení."

Podobné prezentace


Reklamy Google