AVTK - akela.mendelu.czlysek/data/avtk/01uvod.pdf• Verzování strana 5 v AVT je dobré vyzkoušet...
Transcript of AVTK - akela.mendelu.czlysek/data/avtk/01uvod.pdf• Verzování strana 5 v AVT je dobré vyzkoušet...
AVTK
Úvod
strana 1
Připravil: Ing. Jiří Lýsek, Ph.D.
Verze: 12.3.2018
Program přednášek
• Úvod do AVT
• Metodiky
• Git a SVN
• Softwarové repozitáře
• Testování aplikací
• Prezentace projektů
strana 2
Metodiky vývoje
• Tradiční
– Vodopád, V, Spirála, RUP, …
• Agilní
– Scrum, XP, Kanban, …
• Vhodné pro týmy/firmy
strana 3
Více v
předmětu SWI
nebo AMP
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 4
Od nápadu k funkční aplikaci
• Proof of concept
• Prototyp
• Specifikace
• Vývoj + testy
• Dokumentace
• Verzování
strana 5
v AVT je dobré
vyzkoušet od každého
trochu, ale minimum je
PoC a prototyp
Proof of concept
• 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 6
jde vůbec
zvolenými nástroji
dosáhnout cíle?
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 7
Specifikace
• 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
strana 8
nejprve se naučím
technologie a potom
přemýšlím nad celým
programem
Nezkušený programátor
nemůže efektivně vytvářet
specifikace! Chce to
praxi/kontrolu/vedení…
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 9
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 10
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
– …
strana 11
někdy je dobré
počkat, až se
kód "ustálí"
Verzování
• Správa zdrojových kódů
– Git
strana 12
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 13
Nástroje, které můžeme využít
• Správa úkolů a nápadů
– Issue tracking
– Mind mapy
– Libovolný
úkolníček
strana 14
Když vás něco napadne,
je dobré to někam zapsat
(obvykle není čas to hned
realizovat).
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 15
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 16
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 17
Nástroje, které můžeme využít
• http://argouml.tigris.org/
• https://sourceforge.net/projects/dia-
installer/
• http://pencil.evolus.vn/
• https://www.mysql.com/products/work
bench/
• https://www.sourcetreeapp.com/
• https://www.gitkraken.com/
strana 18
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
strana 19
Jak organizovat práci
strana 20
To nejdůležitější
• Nevymýšlet kolo!
– nepsat nové frameworky
– využívat existující řešení (knihovny)
– hledat příklady řešení
– číst dokumentace, články, blogy, knihy
– komunikovat se zkušenějšími
strana 21
Ale používat i
vlastní hlavu :-)
Má to své limity