Vyučující
|
-
Červa Petr, doc. Ing. Ph.D.
-
Smola Ondřej, Ing.
|
Obsah předmětu
|
Přednášky 1. Základní komponenty Java Virtual Machine (JVM), přehled aktuálních inovací v jazyce Java. Aplikační servery pro Java aplikace. 2. Základní struktura projektu v Jave, nástroje pro správu životního cyklu projektu a závislostí (např. Maven), nástroje pro automatizované nasazení (např. Jenkins). 3. Rozdělení platformy Java (Java SE, Java EE). Tvorba enterprise aplikací s pomocí frameworku Spring - přehled modulů. Úvod do frameworku Spring - Inversion of Control, Dependency injection. 4. Struktura aplikace ve Springu - konfigurační třídy a soubory, profily (produkční, testovací, vývojový), testování aplikace (např. JUnit). Princip Test Driven Development (TDD). 5. Spring modul Model View Controller (MVC) a praktické základy komunikace přes protokol http (stavové kódy, hlavičky, verzování). 6. Práce s relačními databázemi ve Springu, modul Spring JDBC. Verzování databáze. 7. Objektově-relační mapování na platformě Java pro abstrakci databázové vrstvy, specifikace JPA - Hibernate. 8. Principy NoSQL databází (např. MongoDB) a modul Spring Data. Práce s daty v NoSQL databázích (např. Map Reduce). 9. Způsoby integrace aplikací: RPC, REST, SOAP, Messaging. 10. Modul Spring REST, objevování API pomocí HATEOS. 11. Systémy pro zasílání zpráv (např. RabbitMQ), model producent-konzument, základní typy front. 12. Bezpečnost aplikací, modul Spring Security. 13. Správa aplikací: logování, konfigurace, monitoring, profiling. 14. Alternativní jazyky na platformě Java (Scala, Groovy, Clojure). Cvičení 1. Seznámení s IDE (IntelliJ IDEA / Eclipse), úvod do práce s vybraným verzovacím systémem. 2. Příklad Java aplikace a její umístění na aplikační server. 3. Správa životního cyklu projektu pomocí nástrojů pro automatizaci. 4. Tvorba aplikace ve frameworku Spring a nastavení IoC kontejneru. 5. Konfigurace profilů, vývoj na principu TDD, testování aplikace. 6. Tvorba webové aplikace s využitím Spring MVC. 7. Připojení aplikace k relační databázi. 8. Využití objektově-relačního mapování pro abstrakci databázové vrstvy. 9. Práce s NoSQL databází, ukázka úlohy Map Reduce. 10. Integrace aplikace s externím API. 11. Tvorba REST API. 12. Integrace systému pro zasílání zpráv. 13. Zabezpečení aplikace pomocí Spring Security. 14. Správa aplikace, nastavení logování.
|
Studijní aktivity a metody výuky
|
Monologický výklad (přednáška, prezentace, vysvětlování)
- Domácí příprava na výuku
- 50 hodin za semestr
- Účast na výuce
- 56 hodin za semestr
- Příprava na zkoušku
- 44 hodin za semestr
|
Výstupy z učení
|
Předmět seznamuje studenty s principy a nástroji, které jsou v praxi nutné pro vývoj, správu a testování jakékoli pokročilejší a rozsáhlejší softwarové aplikace. Kromě vysvětlení výchozích teoretických principů proto bude v rámci celého semestru postupně prakticky vyvíjena a vylepšována ukázková webová databázová aplikace, přičemž obsahem výuky nebude jen samotné programování, ale i nástroje nutné pro správu projektu, verzování, testovaní, logování, integraci, automatizovanou správu závislostí a automatizované nasazení. Vývoj aplikace bude probíhat na platformě Java s využitím frameworku Spring. Použité technologie a představené principy budou ovšem moci studenti v praxi využít například i při vývoji aplikací pod frameworkem .NET či dalšími.
Tvorba enterpise webových a databázových aplikací ve frameworku Spring, práce s nástroji pro správu projektu, verzování, testovaní, logování, integraci, automatizovanou správu závislostí a automatizované nasazení, základní znalost systémů pro zasílání zpráv, základní znalost NoSQL databází.
|
Předpoklady
|
Znalost základů relačních databází a základů programování v Javě. Základní znalost AJ nutná pro čtení dokumentace k jednotlivým frameworkům.
|
Hodnoticí metody a kritéria
|
Kombinovaná zkouška
Podmínkou zápočtu je aktivní účast na cvičeních. Zkouška je písemná a ústní.
|
Doporučená literatura
|
-
Craig Walls. Spring in action: covers spring 5.0. 2019. ISBN 978-1-61729-494-5.
-
Nicholas S. Williams. Professional Java for Web Applications. ISBN 9781118656464.
-
Thomas Roy Fielding. Architectural Styles and the Design of Network-based Software Architectures.
|