Street of Code

Ep. 13 – Clean Code Part 3 (Boundaries, Clean Concurrency)


Listen Later

V tretej časti série Clean Code rozoberáme Boundaries a Clean Concurrency. To znamená, že rozprávame o používaní knižníc tretích strán, o ich testovaní a o tom, ako sa dá čisto písať viac vláknová aplikácia, ako sa správať k vláknam, čo všetko pri tom treba vedieť a ako sa takéto aplikácie dajú testovať.

Stiahnuť
https://wp.streetofcode.sk/wp-content/uploads/2019/07/StreetOfCode-Ep13.mp3

00:00 – 00:34 Úvod

00:35 – 01:15 Bound aries – úvod
01:16 – 04:30 Príklad – HashMap
04:31 – 06:50 Learning Tests
06:51 – 09:46 Používanie kódu, ktorý ešte neexistuje
09:47 – 10:48 Concurrency – úvod
10:49 – 11:48 Rodiely medzi jedno- a viacvláknovými aplikáciami
11:49 – 14:38 Performance viacerých vlákien
14:39 – 15:30 Viacvláknové programovanie je náročné
15:31 – 17:30 Kritické sekcie by mali byť čo najmenšie
17:31 – 19:07 Používanie klonovaných dát
19:08 – 19:47 Vlákna by mali byť čo najviac nezávislé
19:48 –  21:42 Know your library
21:43 –  22:42 Know your execution models
22:43 – 23:34 Kritické sekcie by mali byť čo najkratšie v2
23:35 – 25:11 Testovanie viacvláknových aplikácií
25:12 – 25:43 Konfigurácia
25:44 – 27:30 Rôzne platformi, rôzny výsledok
27:31 – 28:06 Nereprodukovateľnosť
28:07 – 29:18 Zhrnutie

Boundaries
  • Hranice medzi nasim kódom a kódom, nad ktorým nemáme kontrolu
  • Zredukovanie nežiadúcej funkcionality
  • Learning Tests – namiesto skúšania knižnice si na túto knižnicu napíšeme testy, čím sa naučíme ju používať a zároveň si ju aj otestujeme – Win/Win
  • Volania knižnice zaobalíme do vlastnej triedy, aby sme v prípade zmeny museli zasahovať do čo najmenej kódu
  • Predchádzajúci bod sa dá využiť aj pri tom, keď ešte nevieme, ako bude kód tretej strany vyzerať
  • Clean COncurrency
    • Concurrency je práca s viacerými vláknami
    • Jednovláknové aplikácie sa oveľa jednoduchšie debugujú
    • Súbežnosť nie vždy zlepšuje performance
    • Má relatívne veľký overhead
    • V kritických sekciách mať čo najmenej práce s dátami
    • Keď pracujeme s read-only dátami, tak si vieme vytvoriť ich kópie a až tie poslať do vlákien, aby sa neobmedzovali
    • Vlákna by mali byť čo najviac nezávislé
    • Know your library – možno môj jazyk ponúka lepšie možnosti ako spraviť thread-safe dictionary
    • Know your execution models – spoločné zdroje, mutex, vyhľadovanie vlákna, deadlock, livelock, producer-consumer, readers-writers, dining philosophers
    • Testovanie viacvláknového kódu je veľký problém
    • Kód je potrebné testovať vo viacerých scenáriách – 1 vlákno, 100 vlákien, Mac OS, Windows, spomalovanie
    • Na rôznych platformách sa môže viacvláknový kód správať úplne inak
    • Kniha na Amazone

      Blog Uncle Bob-a
      Twitter Uncle Bob-a

      The post Ep. 13 – Clean Code Part 3 (Boundaries, Clean Concurrency) 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