Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Péhápkaři - Píšeme čitelný kód #4 by Petr Bechyně, Driveto

112 vues

Publié le

Čtvrtý díl seriálu o testování a psaní čitelného kódu v PHP

Publié dans : Logiciels
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Péhápkaři - Píšeme čitelný kód #4 by Petr Bechyně, Driveto

  1. 1. Píšeme čitelný a testovatelný kód #4 Jdete testovat!
  2. 2. Známe se? Píšeme čitelný a testovatelný kód • #1: Return null a optional arguments • #2: SRP v praxi • #3: Buďte striktní!
  3. 3. Důvody proč nepoužít null nebo prchnout tisíc mil V code review či při kontrole vlastního commitu narazíme na:
  4. 4. Důvody proč nepoužít null nebo prchnout tisíc mil • Nepředstavuje žádný typ (přenáší chyby) • Nejasný význam • Nejednoznačné API tříd
  5. 5. Delegate or die() • Příliš mnoho závislostí v konstruktoru • nepředpokládáme, že bychom vstřikovali závilosti mimo konstructor pomocí setterů • DI kontejner opravdu není jedna závislost  • Chybí jednotkové testy = to nejde • Příliš mnoho řádků kódu v jedné metodě • Není možné 1 větou charakterizovat, co daná služba dělá: • Tato service odesílá emaily vs. Tato service sestaví šablonu emailu, vytvoří záznam ve frontě, odešle email a zaloguje ho
  6. 6. SRP compliance check • Při čtení těla metody čtu řádek po řádku • Pokud je volána závislost (delegování), pak řeknu např. deleguji získání aktivních knih
  7. 7. SRP compliance check • Tato metoda vrací knížky z daného období • Deleguji získání knih (z databáze?) • Deleguji spočítání dekády z číselníku období • Volám filtrování knih v seznamu knih (BookList) a ten vracím Approved!
  8. 8. SRP compliance check • Tato metoda vrací knížky z daného období nebo všechny • Deleguji získání knih (z databáze?) [1] • Spočítám první rok dekády [2] • Iteruji nad knížkami a vybírám knížky s rokem vydání [3] • V rámci bloku počítám poslední rok dekády [4] • Volám filtrování knih v seznamu knih (BookList) a ten vracím Rejected!
  9. 9. SRP compliance check Tato metoda vrací knížky daného autora • Deleguji získání knih (z databáze?) • Iteruji nad získanými knihami a vybírám autor name • Vracím získané pole knih Approved! A co ten null?
  10. 10. Tak se na to pojďme podívat blíž...
  11. 11. Reference • Další čtení: • Robert C. Martin: Clean Code • https://code.tutsplus.com/tutorials/solid-part-1-the-single-responsibility-principle--net-36074 • Testovací repo: • https://github.com/tuscanicz/writing-readable-code-4 • Předchozí přednášky: • 1. null • Repozitář: https://github.com/driveto/writing-readable-code-1 • Slidy: https://www.slideshare.net/PetrBechyn/phpkai-peme-iteln-kd-1-by-petr-bechyn-driveto • Záznam: https://www.facebook.com/pehapkari/videos/1616785535037917/ • 2. SRP • Repozitář: https://github.com/driveto/writing-readable-code-2 • Slidy: https://www.slideshare.net/PetrBechyn/phpkai-peme-iteln-kd-2-by-petr-bechyn-driveto • Záznam: https://www.facebook.com/pehapkari/videos/1652303308152806/ • 3. Strict • Repozitář: https://github.com/driveto/writing-readable-code-3 • Slidy: https://www.slideshare.net/PetrBechyn/phpkai-peme-iteln-kd-3-by-tom-blha-driveto • Záznam: https://www.facebook.com/pehapkari/videos/1679377522112051/
  12. 12. Dotazy • Dotazy, náměty, připomínky…?
  13. 13. Díky za pozornost! • We are hiring  www.driveto.cz Petr Bechyně petr.bechyne@driveto.cz CTO Driveto 736 761 183 github.com/tuscanicz facebook.com/petrbechynecz

×