Připravil: Ing. Jiří Lýsek, Ph.D. Verze: 12.3.2018 AVTK Úvod strana 1
strana 2 Program přednášek Úvod do AVT Metodiky Git a SVN Softwarové repozitáře Testování aplikací Prezentace projektů
strana 3 Metodiky vývoje Tradiční Vodopád, V, Spirála, RUP, Agilní Scrum, XP, Kanban, Vhodné pro týmy/firmy Více v předmětu SWI nebo AMP
strana 4 Jak tedy může pracovat jednotlivec? Některé tradiční metodiky jsou použitelné. ALE jednotlivec není schopen zastat všechny role na 100%. Musíte být důslední, pracovití a používat správné nástroje, které vám budou pomáhat.
strana 5 Od nápadu k funkční aplikaci Proof of concept Prototyp Specifikace Vývoj + testy Dokumentace Verzování v AVT je dobré vyzkoušet od každého trochu, ale minimum je PoC a prototyp
strana 6 Proof of concept jde vůbec zvolenými nástroji dosáhnout cíle? Ověření funkčnosti záměru Test nějaké technologie nebo přístupu Např.: umím vytvořit Hello world aplikaci pro Android umím vykreslit objekt s použitím OpenGL umím se připojit k databázi a načíst data umím vytvořit vlákno s výpočtem umím to spojit tyto věci dohromady
strana 7 Prototyp Funkční (menší nebo větší) část aplikace, která demonstruje klíčovou funkcionalitu obalením prototypu někdy vznikne hotová aplikace někdy se vytvoří i více prototypů a některé se zahodí nebát se zahodit nepovedný prototyp
strana 8 Specifikace Nezkušený programátor nemůže efektivně vytvářet specifikace! Chce to praxi/kontrolu/vedení Podrobný plán/návrh výsledného produktu, kterého se budu při vývoji pevně držet Tvůrce specifikace by měl mít přehled o použitelných prostředcích nejprve se naučím technologie a potom přemýšlím nad celým programem
strana 9 Vývoj Přetvoření specifikace ve funkční aplikaci, neměly by se dělat úpravy specifikace. Pokud je nutné něco změnit, začíná se nejprve úpravou specifikace. Během vývoje používat nástroj pro správu verzí (CVS)
strana 10 Vývoj - Testy Paralelně s kódem by měl programátor psát testy Používejte nástroje pro testy Unit testy Funkční/integrační testy Akceptační testy test = zaručení funkce i po změně v kódu
strana 11 Dokumentace Dokumentace může mít různé formy a měla by vznikat paralelně s vývojem aplikace. Dokumentace pro programátory (někdy stačí komentáře nebo popis I/O) Dokumentace pro uživatele (popis použití aplikace - není vždy nutné) Dokumentace API někdy je dobré počkat, až se kód "ustálí"
strana 12 Verzování Správa zdrojových kódů Git
strana 13 Nástroje, které můžeme využít Podpora prototypování Tzv. mocky (imitace) Podpora návrhu aplikace schémata (UML, ERD, wireframe) Podpora tvorby aplikace generátory kódu, správa kódu, repositáře Podpora dokumentace aplikace generátory z komentářů
strana 14 Nástroje, které můžeme využít Správa úkolů a nápadů Issue tracking Mind mapy Libovolný úkolníček Když vás něco napadne, je dobré to někam zapsat (obvykle není čas to hned realizovat).
strana 15 Nástroje, které můžeme využít Některé jsou různé pro různé platformy web/desktop/mobile (UX, backend) nástroje pro modelování (univerzální) UML diagramy tříd, sekvenční, ER diagramy databáze Wireframe pro UX
strana 16 Nástroje, které můžeme využít Požadavek: zdarma, multiplatformní, "lehké" UML diagramy Argo UML, Dia Wireframy Pencil, Dia ER diagramy MySQL workbench, Dia
strana 17 Nástroje, které můžeme využít Verzování Git Příkazová řádka, SourceTree, GitKraken SVN Příkazová řádka, Tortoise SVN Dokumentace syntaxe Markdown (GitHub, BitBucket) Generátory z komentářů (PHPDoc, JavaDoc, )
strana 18 Nástroje, které můžeme využít http://argouml.tigris.org/ https://sourceforge.net/projects/diainstaller/ http://pencil.evolus.vn/ https://www.mysql.com/products/work bench/ https://www.sourcetreeapp.com/ https://www.gitkraken.com/
strana 19 Jak organizovat práci nastavte si deadline pro větší bloky pokud nesplníte, víte že nestíháte a je problém, který musíte řešit plánujte si pracovní úkoly max. na den víte, že je můžete stihnout nestihnete -> hned vidíte problém plánujte dopředu Ráno nebo den předem nastavte cíle
Jak organizovat práci strana 20
strana 21 To nejdůležitější Nevymýšlet kolo! nepsat nové frameworky Má to své limity využívat existující řešení (knihovny) hledat příklady řešení číst dokumentace, články, blogy, knihy komunikovat se zkušenějšími Ale používat i vlastní hlavu :-)