POLÍVKA, T. Frontové zpracování dat [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2023.
Student své zadání splnil a prokázal tak bakalářské schopnosti. S přihlédnutím k celkové kvalitě i aktivitě během řešení navrhuji hodnocení stupněm C (dobře).
Kritérium | Známka | Body | Slovní hodnocení |
---|---|---|---|
Informace k zadání | Bakalářská práce byla zpracována pro externího zadavatele, který ve svém systému potřeboval přejít z řešení pomocí databázové fronty na pokročilejší způsob frontového zpracování dat. Student implementoval rozhraní podporující řešení RabbitMQ a Kafka, a dále v experimentální části porovnal jejich vlastnosti. Student své zadání splnil a s výsledky jsem spokojen. | ||
Práce s literaturou | Veškerou literaturu k řešené problematice si student obstaral samostatně, k její volbě nemám výhrady. | ||
Aktivita během řešení, konzultace, komunikace | Aktivita studenta během řešení nebyla vysoká, přesto jsem však občas byl informován o pokrocích a některé kroky se mnou byly konzultovány. | ||
Aktivita při dokončování | Práce byla dokončena včas a mé připomínky k technické zprávě byly zapracovány. Také realizační výstup mi byl prezentován s předstihem. | ||
Publikační činnost, ocenění |
Výsledkem bakalářské práce je technická zpráva, která má značné nedostatky, a funkční, ale poměrně jednoduché a z pohledu přínosu možná nepraktické programové řešení. Navrhuji hodnotit práci stupněm uspokojivě (D) .
Kritérium | Známka | Body | Slovní hodnocení |
---|---|---|---|
Náročnost zadání | Jedná se o průměrně obtížnou práci. Použité systémy front zpráv si jsou podobné a na použití nejsou složité. Za obtížnější část by bylo možné považovat komplexní transformaci stávající aplikace z předávání dat přes databázi na řešení využívající frontu zpráv, což však v práci nebylo řešeno (vyjma implementace prototypu za účelem testování výkonu různých řešení). | ||
Rozsah splnění požadavků zadání | Zadání bylo splněno. | ||
Rozsah technické zprávy | Rozsahem je sice technická zpráva v obvyklém rozmezí, od úvodu po závěr obsahuje 35 vysázených stran, ale z hlediska rozsahu jednotlivých kapitol bych očekával obsáhlejší (a podrobnější) popis návrhu řešení v kap. 5, která zabírá nyní 4,5 strany (3 strany čistého textu). | ||
Prezentační úroveň technické zprávy | 65 | Technická zpráva má sice logickou strukturu přibližně odpovídající postupu vývoje programového řešení, avšak prostřední část pojednávající o návrhu řešení je poněkud nevhodně skryta v kap. 5 "Analýza" ("analýza" není "návrh") a je dost stručná. Návrhové diagramy (obr. 5.1 a 5.2) by měly být pro lepší pochopení podrobněji popsány a návrhová rozhodnutí nejen prostě představena, ale také řádně zdůvodněna, což v práci bohužel zcela chybí. Bez zdůvodnění představuje navržené řešení v kap. 5 spíše popis implementace a samotná kap. 6 "Implementace" je spíše konfigurací prostředí, resp. popisem nasazení. Srozumitelnost narušuje také absence odkazů na obrázky, takže může být nejasný kontext jejich užití v textu zprávy. | |
Formální úprava technické zprávy | 60 | Z hlediska formální úpravy vykazuje technická podstatné nedostatky, které narušují srozumitelnost textu. Kromě typografických nedostatků (např. konec str. 27, vložené bloky kódu), je to především neodborný a neobratný styl (např. "V základním balíčku ..., který je natažený pomocí Composeru," na str. 28, či velmi časté používání podmiňovacího způsobu při popisu řešení, např. v kap. 5). | |
Práce s literaturou | 55 | Seznam literatury obsahuje 20 položek z nichž všechny jsou webové stránky a většina z nich bez autorů (vyjma 2 položek). Přestože se jedná o implementačně zaměřenou práci, tak absence odborných zdrojů je zde neomluvitelná (přitom o systémech front zpráv a jejich výkonu existuje mnoho relevantních odborných publikací a je otázkou, proč student nepoužil alespoň literaturu doporučenou v zadání). Některé z online zdrojů nemají uvedeno datum citace a pravděpodobně i ostatní dostupné údaje (je uveden pouze název). V případě některých odkazů do seznamu literatury (např. položka 6 na str. 30) není vůbec zřejmý způsob jejich využití. V textu lze však obecně dobře odlišit převzaté části od vlastních úvah autora. | |
Realizační výstup | 65 | Programovým řešením je hierarchie tříd v jazyce PHP pro zasílání a čtení zpráv na dvou frontových systémech (RabbitMQ a Apache Kafka) a databázové tabulce, a dále PHP aplikace, která měří rychlost vkládání a čtení zpráv pomocí objektů výše uvedených tříd. Řešení je funkční, avšak jednoúčelové. Navržené třídy nevycházejí ze systému, kde se má dle zadání přechod od databázového řešení k frontám realizovat (ten není ani v práci analyzován) a rychlost vkládání a čtení je měřena bez distribuovaného nasazení frontových systémů (podle infrastruktury dle v řešení přiloženého docker-compose souboru), což je pro aplikace frontových systémů netypické. Není také měřen vliv nastavení frontových systémů, např. vliv asynchronního odesílání zpráv bez potvrzení. Zdrojový kód je dobře komentován. | |
Využitelnost výsledků | Domnívám se, že řešení je těžko použitelné v praxi a naměřené výsledky výkonu mají malou vypovídací hodnotu vzhledem k v praxi typicky distribuovanému nasazení systémů front zpráv. Dle zadání bylo účelem "nahradit stávající řešení založené na databázové frontě", což student pojal ve smyslu testování výkonu plnění a čtení z fronty. Pro praktické uplatnění však bude rozhodující spíše způsob integrace, který je v práci zcela opomíjený (stejně jako analýza cílového systému). |
eVSKP id 148493