Street of Code

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


Listen Later

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ť
https://wp.streetofcode.sk/wp-content/uploads/2019/04/StreetOfCode-Ep15.mp3

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 
    5. 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 až 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 má 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

          Dá 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.

          ...more
          View all episodesView all episodes
          Download on the App Store

          Street of CodeBy Street of Code


          More shows like Street of Code

          View all
          Dobré ráno | Denný podcast denníka SME by SME.sk

          Dobré ráno | Denný podcast denníka SME

          32 Listeners

          DEEP TALKS [CZE] by Petr Ludwig

          DEEP TALKS [CZE]

          20 Listeners

          Denník N Newsfilter by Denník N

          Denník N Newsfilter

          29 Listeners

          Index by SME.sk

          Index

          7 Listeners

          Lužifčák podcast by Lužifčák

          Lužifčák podcast

          14 Listeners

          Rozhovory ZKH by SME.sk

          Rozhovory ZKH

          12 Listeners

          PETR MÁRA PODCAST by Petr Mára

          PETR MÁRA PODCAST

          7 Listeners

          Piatoček by SME.sk

          Piatoček

          10 Listeners

          Diagnóza Podnikateľ by Edita Angyalová

          Diagnóza Podnikateľ

          0 Listeners

          V redakcii by Denník N

          V redakcii

          15 Listeners

          Mozgová Atletika by Denis a Patrik Kováč

          Mozgová Atletika

          11 Listeners

          Michal Truban Podcast by Michal Truban

          Michal Truban Podcast

          2 Listeners

          Ekonómia ľudskou rečou by skpodcasty.sk

          Ekonómia ľudskou rečou

          0 Listeners

          tak bolo by ZAPO

          tak bolo

          5 Listeners

          Mentalita Foundera by ZAPO

          Mentalita Foundera

          0 Listeners