SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
Kvalita kódu
Adam Kudrna — Frontendisti — 9. 5. 2018
1 —
2 —

3 —
4 —
K čemu je kvalitní kód
Čím se vyznačuje
kvalitní CSS kód
Jak psát kvalitní kód
Code review
1 —
 K čemu je
kvalitní kód
Kvalitní software
Proč je kvalitní kód
důležitý?
Odlišuje amatéry

od profesionálů
Čistý kód, který funguje
2 —
 Čím se vyznačuje
kvalitní CSS kód
Udržovatelnost
Rozšiřitelnost
Výkonnost
Bezchybnost
3 —
 Jak psát kvalitní
CSS kód
A. Udržovatelnost
B. Rozšiřitelnost
C. Výkonnost
D. Bezchybnost
A. Udržovatelnost
•Verzování – Git
A. Udržovatelnost
•Verzování – Git
•Struktura CSS souborů
A. Udržovatelnost
•Verzování – Git
•Struktura CSS souborů
•Jednotný coding style: Editorconfig + Stylelint
http://editorconfig.org
• https://stylelint.io
• https://github.com/stylelint/stylelint-config-standard
• https://github.com/visionappscz/stylelint-config-visionapps
• https://github.com/visionappscz/stylelint-config-visionapps-order
A. Udržovatelnost
•Verzování – Git
•Struktura CSS souborů
•Jednotný coding style: Editorconfig + Stylelint
•Metodiky: BEM, OOCSS, SMACSS, ITCSS
.branding-active #sidebar .navigation h2 { … }
.table-responsive
.product-preview--large .product-preview__title
?
A. Udržovatelnost
•Verzování – Git
•Struktura CSS souborů
•Jednotný coding style: Editorconfig + Stylelint
•Metodiky: BEM, OOCSS, SMACSS, ITCSS
•Efektivní využití preprocesorů: SASS, LESS
A. Udržovatelnost
•Verzování – Git
•Struktura CSS souborů
•Jednotný coding style: Editorconfig + Stylelint
•Metodiky: BEM, OOCSS, SMACSS, ITCSS
•Efektivní využití preprocesorů: SASS, LESS
•Jednoduchost a co nejmenší velikost zdrojového CSS
B. Rozšiřitelnost
C. Výkonnost
•Optimalizace načítání výstupního CSS
C. Výkonnost
•Optimalizace načítání výstupního CSS
•Efektivní CSS selektory
.nav li a { … }
 .nav > li > a { … }
C. Výkonnost
•Optimalizace načítání výstupního CSS
•Efektivní CSS selektory
•Eliminace na výkon náročných efektů
D. Bezchybnost
• Automatické testy, lintování (Stylelint)
D. Bezchybnost
• Automatické testy, lintování (Stylelint)
• Robustnost: buď připraven (na různé vstupy)
D. Bezchybnost
• Automatické testy, lintování (Stylelint)
• Robustnost: buď připraven (na různé vstupy)
• Testování v prohlížečích
https://browsersync.io
https://www.browserstack.com
4 —
 Code review

„ Code review je proces, který zajistí, že každou změnu
v kódu uvidí další osoba, která ji může připomínkovat.“
https://www.zdrojak.cz/clanky/code-reviews-praxi/
— Josef Reidinger
Proč dělat code review
• Lepší kvalita kódu
• Udržení výstupní kvality
• Lepší zastupitelnost v týmu
• Rychlejší zaučení nových kolegů
Jak připravit změnu
• Usnadnit kolegům code review:
• Automatizovat co se dá: kontrola coding style, testy
• Dělat malé změny, velké změny v menších krocích
• Ověřit, že změna splňuje veškerá kritéria
• Boy scout rule
Jak dělat code review
• Být konstruktivní
• Být konzistentní
• Vzájemně se respektovat
• Vyhnout se emocím
• Dobré věci pochválit
Nástroje
1 —
2 —

3 —
4 —
K čemu je kvalitní kód
Čím se vyznačuje
kvalitní CSS kód
Jak psát kvalitní kód
Code review
Frontend-školení.cz
@AdamKudrna
www.visionapps.cz
Díky!

Contenu connexe

Similaire à Kvalita kódu

20101124 Aplikované nástroje SW inženýra
20101124 Aplikované nástroje SW inženýra20101124 Aplikované nástroje SW inženýra
20101124 Aplikované nástroje SW inženýra
Jiří Mareš
 
20091202 Aplikované nástroje SW inženýra
20091202 Aplikované nástroje SW inženýra20091202 Aplikované nástroje SW inženýra
20091202 Aplikované nástroje SW inženýra
Jiří Mareš
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
Jiří Mareš
 

Similaire à Kvalita kódu (20)

Webová prezentace - case study - Squaris Consultants
Webová prezentace - case study - Squaris ConsultantsWebová prezentace - case study - Squaris Consultants
Webová prezentace - case study - Squaris Consultants
 
20101124 Aplikované nástroje SW inženýra
20101124 Aplikované nástroje SW inženýra20101124 Aplikované nástroje SW inženýra
20101124 Aplikované nástroje SW inženýra
 
Continuous integration pro Symfony/PHP aplikaci s Dockerem v GitLabu [CZ]
Continuous integration pro Symfony/PHP aplikaci s Dockerem v GitLabu [CZ]Continuous integration pro Symfony/PHP aplikaci s Dockerem v GitLabu [CZ]
Continuous integration pro Symfony/PHP aplikaci s Dockerem v GitLabu [CZ]
 
Vývoj frontendu na redakčním systému? ... aneb jak udržet pořádek v š...
Vývoj frontendu na redakčním systému? ... aneb jak udržet pořádek v š...Vývoj frontendu na redakčním systému? ... aneb jak udržet pořádek v š...
Vývoj frontendu na redakčním systému? ... aneb jak udržet pořádek v š...
 
Komponenty v kaskákdě
Komponenty v kaskákděKomponenty v kaskákdě
Komponenty v kaskákdě
 
TNPW2-2014-03
TNPW2-2014-03TNPW2-2014-03
TNPW2-2014-03
 
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptČtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
 
20091202 Aplikované nástroje SW inženýra
20091202 Aplikované nástroje SW inženýra20091202 Aplikované nástroje SW inženýra
20091202 Aplikované nástroje SW inženýra
 
Optimalizace webových aplikací
Optimalizace webových aplikacíOptimalizace webových aplikací
Optimalizace webových aplikací
 
SEO Date #3: Michal Doskočil - Case study AutoPalace: Maximalizace SEO potenc...
SEO Date #3: Michal Doskočil - Case study AutoPalace: Maximalizace SEO potenc...SEO Date #3: Michal Doskočil - Case study AutoPalace: Maximalizace SEO potenc...
SEO Date #3: Michal Doskočil - Case study AutoPalace: Maximalizace SEO potenc...
 
Na co si dát pozor, než ve WordPressu nainstalujete plugin nebo šablonu
 Na co si dát pozor, než ve WordPressu nainstalujete plugin nebo šablonu Na co si dát pozor, než ve WordPressu nainstalujete plugin nebo šablonu
Na co si dát pozor, než ve WordPressu nainstalujete plugin nebo šablonu
 
Odborná snídaně 20.9. - Agile@DevOps - 2. část
Odborná snídaně 20.9. - Agile@DevOps - 2. částOdborná snídaně 20.9. - Agile@DevOps - 2. část
Odborná snídaně 20.9. - Agile@DevOps - 2. část
 
Oxygen Builder - Kyslík pro WordPress
Oxygen Builder - Kyslík pro WordPressOxygen Builder - Kyslík pro WordPress
Oxygen Builder - Kyslík pro WordPress
 
Prezentace jak zrychlit načítání webu
Prezentace jak zrychlit načítání webuPrezentace jak zrychlit načítání webu
Prezentace jak zrychlit načítání webu
 
TNPW2-2013-03
TNPW2-2013-03TNPW2-2013-03
TNPW2-2013-03
 
TNPW2-2016-03
TNPW2-2016-03TNPW2-2016-03
TNPW2-2016-03
 
Webová prezentace - case study - DHL Express (Slovakia)
Webová prezentace - case study - DHL Express (Slovakia)Webová prezentace - case study - DHL Express (Slovakia)
Webová prezentace - case study - DHL Express (Slovakia)
 
Styling React Native Applications
Styling React Native ApplicationsStyling React Native Applications
Styling React Native Applications
 
KeePass: Základy, pokročilé využití a KeePass Enterprise (čtvrtek, 14.4.2022)
KeePass: Základy, pokročilé využití a KeePass Enterprise (čtvrtek, 14.4.2022)KeePass: Základy, pokročilé využití a KeePass Enterprise (čtvrtek, 14.4.2022)
KeePass: Základy, pokročilé využití a KeePass Enterprise (čtvrtek, 14.4.2022)
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
 

Plus de Adam Kudrna

Plus de Adam Kudrna (13)

Design systém 1.0
Design systém 1.0Design systém 1.0
Design systém 1.0
 
UX a design systémy
UX a design systémyUX a design systémy
UX a design systémy
 
TwigX: pište PHP šablony jako v Reactu
TwigX: pište PHP šablony jako v ReactuTwigX: pište PHP šablony jako v Reactu
TwigX: pište PHP šablony jako v Reactu
 
Nové CSS vlastnosti pro rok 2022 a jak je využít
Nové CSS vlastnosti pro rok 2022 a jak je využítNové CSS vlastnosti pro rok 2022 a jak je využít
Nové CSS vlastnosti pro rok 2022 a jak je využít
 
ITCSS — škálovatelná CSS architektura
ITCSS — škálovatelná CSS architekturaITCSS — škálovatelná CSS architektura
ITCSS — škálovatelná CSS architektura
 
CSS for Design Systems
CSS for Design SystemsCSS for Design Systems
CSS for Design Systems
 
SUIT CSS vs. BEM
SUIT CSS vs. BEMSUIT CSS vs. BEM
SUIT CSS vs. BEM
 
CSS pro design systémy
CSS pro design systémyCSS pro design systémy
CSS pro design systémy
 
Bootstrap 4
Bootstrap 4Bootstrap 4
Bootstrap 4
 
TwigYard – The Final Solution for Small Websites
TwigYard – The Final Solution for Small WebsitesTwigYard – The Final Solution for Small Websites
TwigYard – The Final Solution for Small Websites
 
HTML prototypování
HTML prototypováníHTML prototypování
HTML prototypování
 
Photoshop v dnešním workflow frontendisty
Photoshop v dnešním workflow frontendistyPhotoshop v dnešním workflow frontendisty
Photoshop v dnešním workflow frontendisty
 
Bootstrap – Frontendisti 26. 6. 2014, Brno
Bootstrap – Frontendisti 26. 6. 2014, BrnoBootstrap – Frontendisti 26. 6. 2014, Brno
Bootstrap – Frontendisti 26. 6. 2014, Brno
 

Kvalita kódu