Skip to content
rozepsání řešeného příkladu authored by Jiří Fejfar's avatar Jiří Fejfar
......@@ -20,12 +20,12 @@ Posluchači by asi měli mít základní představu o PG, gitu, dockeru.
# obsah školení (návrh)
## I. Seznámení s technologiemi (1.5 h)
## 1) Seznámení s technologiemi (1.5 h)
Posluchač se seznámí se základními technologiemi.
Výsledkem je funkční "individualizované" vývojové prostředí a nastavéné spouštění regresních testů na straně gitlabu.
### 1) prostředí Dockeru (30 min)
### 1a) prostředí Dockeru (30 min)
* Dockerfile
* způsob "baremetal instalace" vs. [Postgres image](https://hub.docker.com/_/postgres/)
......@@ -35,14 +35,14 @@ Výsledkem je funkční "individualizované" vývojové prostředí a nastavén
* manuální spouštění testů a práce v DB (psql)
* připojení zevnějšku kontejneru pomocí pgAdmin4 / QGIS
### 2) PostgreSQL extenze (45 min)
### 2b) PostgreSQL extenze (45 min)
* PG extenze a metodika Evolutionary Database Design (viz [martiflower.com](https://www.martinfowler.com/articles/evodb.html), [wiki](https://en.wikipedia.org/wiki/Evolutionary_database_design))
* updatescripty, makefile a controlfile
* statická (configuration tables) a dynamická data
* regresní testy
### 3) propojení s GitLab CI/CD (15 min)
### 3c) propojení s GitLab CI/CD (15 min)
* upload Docker image do prostředí GitLab
* konfigurační soubor .gitlab-ci.yml
......@@ -50,14 +50,25 @@ Výsledkem je funkční "individualizované" vývojové prostředí a nastavén
* speciality gitlab -- webový editor (je možné vynechat)
* deploy výsledku na statické stránky (je možné vynechat)
## II. otázky / rezerva (0.5 h) -- je možné zařadit úplně na konec
## 2) otázky / rezerva (0.5 h) -- je možné zařadit úplně na konec
## III. praktické cvičení (1.5 h)
## 3) praktické cvičení (1.5 h)
* ukázka vývoje DB aplikace cca metodikou EDD: issues, git větvě, merge, preprodukce, produkce
Ukázka vývoje DB aplikace cca metodikou EDD: issues, git větvě, merge, preprodukce, produkce.
### zadání
### 3a) zadání úkolu
Vytvoříme jednoduchou databázi zákazníků seskupených do skupin podle obchodníků, kteří je mají na starost.
Z adres zákazníků vytvoříme geografickou polohu a zhodnotíme efektivnost rozčlenění zákazníků mezi obchodníky.
Volitelně je možné implementovat funkce hledající optimální cestu mezi zákazníky atp.
Z adres zákazníků vytvoříme geografickou polohu a zhodnotíme efektivnost rozčlenění zákazníků mezi obchodníky z hlediska polohy.
Volitelně je možné implementovat funkce hledající optimální cestu mezi zákazníky atp (geoaplikace).
Volitelně je možné sledovat kupříkladu tržby od zákazníků a dávat je do souvislosti s obchodníky (statistika).
### 3b) způsob řešení
* aktivní účastnící si zvolí svoje issue, které řeší, výsledkem je updatescript
* tabulka zákazníků
* tabulka obchodníků
* přidání sloupce s geometrií
* funkce pro převod adresy na geometrii
* průběžně je možné monitorovat ve větvích postup a dále hodnotit kvalitu updateskriptů při mergerequestu
* účastníci kteří se nechtějí zapojit mohou sledovat celý postup případně na lokálním prostředí experimentovat