Projekt

Obecné

Profil

Dekompozice » Historie » Verze 6

Lukáš Moučka, 2019-11-06 19:02

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
programátoři
18
19
h2. Hlavní cíl
20
21 4 Lukáš Moučka
* rozklad částí kódu do menších logických celků
22
* rozšiřitelnost, přehlednost a rozdělení logiky
23 2 Lukáš Moučka
24
h2. Dopad
25
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
* programovací jazyk
35
36
h2. Popis
37
38 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()_.
39 2 Lukáš Moučka
40 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é.
41 3 Lukáš Moučka
42
h2. Sdílení
43
44
* Slack
45
* Facebook Business
46
* Wiki
47
* Firemní školení
48
* Konference