/ janturon.cz / Od kodéra k analytikovi / Kodér a Analytik

Kodér a Analytik

Minimálně tato dvě rozdělení vznikají, pracuje-li v týmu více než jeden programátor. Analytik je jeden, kodérů může být více. Jejich práce se na technické úrovni liší:

Analytik se stará o obchodní model, ručí za udržitelnost v rámci zadání. Kodér pracuje s implementačním modelem, ručí za plynulost a spolehlivost.

Pokud jsou v aplikaci chyby, ručí za to kodér. Pokud v rámci zadání něco nelze standardním způsobem jednoduše upravit, je to vina analytika.

Analytik musí umět kodéra kdykoli zastoupit, kodér musí umět vyřešit problém způsobem, který se mu zadá, ne po svém.

Vztahy mezi objekty

Z pohledu kódování je jazykem UML popsán vztah mezi objekty zde. Analytikové používají přirozenější obraty:

Význam slov běžné mluvy je sice intuitivní, ale nejednoznačný: v případě pochybností kodér nesmí kývat hlavou a musí si vyžádat upřesnění. Analytik musí umět kódovat, aby toho upřesnění byl schopen.

Kód vysoké / nízké úrovně

Úroveň kódu znamená míru abstrakce. Kód s nejnižší abstrakcí manipuluje přímo s hardware (a bývá "zadrátován" jako firmware v paměti EEPROM daného zařízení, např. BIOS), kód s nejvyšší úrovní abstrakce řeší požadavky obchodní logiky aplikace.

Kód nižší úrovně abstrakce je volán v kódu vyšší úrovně (nikdy ne naopak). Kód stejné úrovně abstrakce bývá označován jako vrstva.

string fileContents(const char* fileName) { FILE* fd = fopen(fileName,"r"); string result; for(int c=fgetc(fd); c!=EOF; c=fgetc(fd)) { result+= (char)c; } fclose(fd); return result; } bool errorInLogFile(const char* fileName) { string data = fileContents("error.log"); istringstream flow(data); string item; while(getline(flow,item,';')) { ... } ... }

Zde je funkce fgetc() volána ve funkci vyšší úrovně fileContents(), která může abstrahovat od ukazatele na soubor. Ta je pak volána ve funkci ještě vyšší úrovně errorInLogFile(), která může abstrahovat od toho, jakým způsobem je soubor čten. Tato funkce může být volána v kódu, ještě vyšší úrovně, který může abstrahovat od struktury logovacích souborů, a přesto dát odpověď na otázku, jestli-se v aplikaci vyskytla chyba. Kód nejvyšší úrovně abstrahuje od všech implementačních detailů a je přepisem požadavku zadavatele aplikace.

Úkolem analytika je vymyslet tuto abstraktní strukturu (nebo ji přizpůsobit z již jiného již hotového projektu) tak, aby byla co nejmenší a nejpřehlednější, a přitom aby se do ní daly snadno dopsat věci plynoucí ze zadání.