Projekt

Obecné

Profil

Dekompozice » Historie » Verze 14

Lukáš Moučka, 2019-11-28 11:58

1 1 Lukáš Moučka
h1. Dekompozice
2
3
h2. Titulek
4
5
Dekompozice kódu
6
7
h2. Datum vydání
8
9
6. 11. 2019
10 2 Lukáš Moučka
11
h2. Autoři
12
13
Lukáš Moučka, Štěpán Červenka
14
15
h2. Cílové skupina
16
17 13 Lukáš Moučka
Hlavní cílovou skupinou jsou programátoři. Dekompozice je důležitá pro vývojové týmy, kteří společně sdílí kód a spolupracují na něm. Další skupinu tvoří programátoři nebo vývojové týmy, kteří přebírají již hotový nebo rozpracovaný projekt.
18 2 Lukáš Moučka
19
h2. Hlavní cíl
20
21 4 Lukáš Moučka
* rozklad částí kódu do menších logických celků
22 8 Lukáš Moučka
* rozšiřitelnost, přehlednost a rozdělení logiky.
23 2 Lukáš Moučka
24 14 Lukáš Moučka
h2. Dopady
25 2 Lukáš Moučka
26
* efektivnější programování při rozšiřování kódu
27
* jednodušší hledání chyb
28
* podporuje metodu "Rozděl a panuj", která problém rozděluje na menší dílčí části (podproblémy).
29
30
h2. Překážky
31
32
* je potřeba zaujmout jiný přístup k programování
33
* vetší důraz je kladen na návrh
34 10 Štěpán Červenka
* programovací jazyk
35
* nelze obecně určit, jak má dekompozice vypadat; jedná se o tacitní znalost programátora
36 2 Lukáš Moučka
37
h2. Popis
38
39 1 Lukáš Moučka
Hlavním cílem je rozdělení určitého úseku kódu na elementární části kódu. Elementární část kódu můžeme chápat jako třídu, konstruktor nebo metodu. Každá elementární část by měla obsahovat jen kód, který vykonává operace spjaté s jejím názvem. Pokud např. v metodě s názvem _vypisJmeno()_ budeme mít kód, který zároveň kontroluje, zdali se jméno vyskytuje v kalendáři, tak by tato část kódu už měla v jiné metodě s názvem _jeJmenoVKalendari()_.
40 2 Lukáš Moučka
41 11 Štěpán Červenka
Podobný přístup je možné aplikovat i v případě celých tříd. V situaci, kdy má programátor pocit, že současná třída příliš bobtná a stává se nepřehlednou, je zcela určitě na místě její funkčnost rozdělit na několik menších tříd.
42
43 6 Lukáš Moučka
_Dekompozice_ podporuje metodu "Rozděl a panuj" a dovoluje programátorovi řešit relativně složitý problém rozdělením na menší podproblémy. Dílčí části (podproblémy) mohou být lépe řešené za pomocí týmové práce. V rámci firemního prostředí lze všechny atributy (zjištěné při procesu dekompozice) zaznamenávat do příslušných informačních struktur. Podle těchto atributů následně probíhá nastavení _PMD_ testů, které mohou odhalovat úseky kódu vhodné pro dekompozici. Dalším nástrojem pro zlepšení dekompozice je _code review_. V ideálním případě správný návrh kódu už od jeho počátku a dekompozice se nemusí řešit až při _refaktorování_ kódu. Zpětné modifikace kódu jsou vždy časově/finančně náročné.
44 3 Lukáš Moučka
45
h2. Sdílení
46
47
* Slack
48
* Facebook Business
49
* Wiki
50
* Firemní školení
51
* Konference
52 9 Lukáš Moučka
53
h2. Zdroje
54
55
http://www.fao.org/3/a-as547e.pdf