PLAY PODCASTS
Ep. 15 – Clean Code Part 5 (System, Emergent Design)

Ep. 15 – Clean Code Part 5 (System, Emergent Design)

5. časť série o Clean Code je zároveň aj poslednou a rozoberáme v nej kapitoly System a Emergent Design. Ako funguje mesto? Jeden človek všetko riadi? Keď nám prestane tiecť voda, tak nebudú ani odvážať odpad? Nie. Separation of Concerns.

Street of Code

April 28, 201930m 52s

Audio is streamed directly from the publisher (media.blubrry.com) as published in their RSS feed. Play Podcasts does not host this file. Rights-holders can request removal through the copyright & takedown page.

Show Notes

5. časť série o Clean Code je zároveň aj poslednou a rozoberáme v nej kapitoly System a Emergent Design. Ako funguje mesto? Jeden človek všetko riadi? Keď nám prestane tiecť voda, tak nebudú ani odvážať odpad? Nie. Separation of Concerns. V druhej časti epizódy sa pobavíme o 4 pravidlách, ktoré nás privedú k dobrému dizajnu.

Stiahnuť

00:00 – 00:29 Úvod
00:29 – 03:27 Viete si predstaviť, že vybudujete sami mesto?
03:28 – 07:20 Separation of Concerns
07:21 –  11:03 Dependency injection
11:04 – 12:39 Separation of Concerns ako základ pre agilný vývoj
12:40 –  15:15 Aj pri agilnom vývoji treba myslieť trochu dopredu
15:16 – 16:34 4 Pravidlá pre Emergent Design
16:35 – 20:11 Pravidlo 1: Prechádzajú všetky testy
20:12 – Pravidlo 2: Duplikácia

Budujeme mesto

  • Pri malej dedine môže mať beh celej dediny na starosti jeden človek (jedna classa vie v malom programe riešiť všetko).
  • Separation of Concerns –  každá jednotka v kóde je zodpovedná za svoju vec a nemieša sa do starostí niekoho iného (napr. ho nezaujíma ako vytvorí nejakú nadradenú classu – nevytvára ju).
  • Keď začíname systém budovať môžeme mať všetko pokope. Postupne ako nám táto “kopa” rastie začne byť čast na to, aby sme to pekne oddelili.
  • Dobrým príkladom Separation of Concerns je Dependency Injection – objekty, ktoré classa používa vytvára za nás framework (alebo niečo iné) a my to nemusíme v každej classe robit zvlášť
  • Agilný vývoj je vôbec možný hlavne vďaka práve Separation of Concerns. Tým, že je všetko oddelené, sa nám to oveľa ľahšie rozširuje alebo mení.
  • Keď ideme agilne, tak aj tak potrebujeme mať trochu víziu ako to má vyzerať v budúcnosti, aká veľká bude naša aplikácia a tak.

Emergent design

4 pravidlá, ktoré by mali spôsobiť, že nám vznikne dobrý design:

  1. Prechádzaju všetky testy
  2. Neobsahuje žiadnu duplikáciu
  3. Vyjadruje úmysel programátora
  4. Minimalizuje počet tried a metód 

Prechádzajú všetky testy

  • Systém môže byť perfektne navrhnutý, ale pokiaľ neviem overiť, že naozaj funguje, tak je celý systém spochybnený 
  • Keď zrazu neprechádza nejaký test, tak to treba čím skôr, rozumej hneď, opraviť
  • Keď vytvárame systém tak, aby bol testovateľný, tak zároveň nás to tlačí k tomu, aby naše triedy boli malé a jednoúčelové (SRP – single responsibility principle) 
  • Previazaný systém sa tiež tažko testuje. Čím viac testujeme, tým viac musíme využívat princípy ako dependency injection, interfaces, aby sme toto previazanie znížili 

Body 2 4 (v podstate refaktorovanie) 

  • Vďaka bodu číslo 1 (máme testy) sa nemusíme báť, že refaktorovaním niečo pokazíme 
  • Duplikáciaúplne rovnaké riadky, podobné riadky, ktoré sa dajú upraviť na totožne a vytiahnuť von, dva krát vyjadrím to isté, len inak 
  • Vyjadruje úmysel programátora – čím väčší systém, tým je dôležitejšie jasne vyjadriť čo sme chceli kódom dosiahnuť. Dobré názvy, malé triedy a funkcie, keď používam DesignPatterny tak tak aj nazývam triedy. Najdôležitejšie je, sa o to vôbec pokúsiť. Nepovedať si, že však to funguje, skončil som. 
  • Minimalizovanie počtu tried a funkcií všetky princípy sa dajú preháňať a potom sa nám stáva, že máme milión malých tried, milión interfacov, milión malých funkcií, …. Pravidlo však najnižšiu prioritu, ale treba byť naozaj opatrný pri preháňaní s dodržiavaním všetkých princípov (aj v tejto knihe). 

Záver

sa povedať, že keď budeš nasledovať týchto X princípov, tak z teba bude programátor? Ani nie len že dobrý, ale vôbec programátor? Nie. Musíš si to vyskúšať. Musíš si sadnúť za comp a programovať. Písať. Veľa. Čím väčšie veci v živote napíšeš tým viac skúsenosti budeš mať. Tieto princípy je naozaj potrebné vedieť brať s rezervou resp. vedieť kde je ten zlatý stred.

Kniha na Amazone
Blog Uncle Bob-a
Twitter Uncle Bob-a

The post Ep. 15 – Clean Code Part 5 (System, Emergent Design) appeared first on Street of Code.