Předmět: Pokročilé programování na platformě Java

« Zpět
Název předmětu Pokročilé programování na platformě Java
Kód předmětu ITE/PPJ
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Magisterský
Rok studia 1
Semestr Letní
Počet ECTS kreditů 5
Vyučovací jazyk Čeština
Statut předmětu Povinně-volitelný
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
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.


Studijní plány, ve kterých se předmět nachází
Fakulta Studijní plán (Verze) Kategorie studijního oboru/specializace Doporučený ročník Doporučený semestr
Fakulta: Fakulta mechatroniky, informatiky a mezioborových studií Studijní plán (Verze): Informační technologie (2013) Kategorie: Informatické obory 1 Doporučený ročník:1, Doporučený semestr: Letní