SlideShare a Scribd company logo
1 of 57
Download to read offline
Jako Vinnetou
a Old Shatterhand
Refaktoruj nenávist
v přátelství!
Tomáš Votruba, @votrubaT
www.tomasvotruba.cz
PHPLive
11.-12. května 2016
Ahoj, já su Tomáš Votruba
● Používám Nette, Symfony a Doctrine
● Konzultuju, radím, školím
● Buduju Symfony komunitu u nás
● Rád sbližuju
Co vám dneska povím
● Jak správně hejtovat?
● Jak využít něco, čemu nerozumím?
● Jak si užívat na plno a nevázat se
● Kam to může jít s Nette a Symfony dál?
Co tady kdo používáte?
● P
● N
● S
● L
● ?
1. Hejtování 101
Jak vypadá správný hejt?
● Cílený na člověka, ne na kód/feature
● Nekonstruktivní
● Nejednoznačný a matoucí
● Srovnávejte, vytvořte nevraživost
tl;dr: Najdetě si hůl a bijte psa.
1. Hejtování 101
“Framework … vůbec neumí. Autoři jsou za
opicema. Tenhle je lepší a dělá to už dlouho
správně.”
“Těchto 10 řádků opravdu nechápu. Celý framework
... je špatný a nepřehledný.”
“Laravel je statické peklo. #blesmrt Nepoužívejte
ho.”
1. Hejtování 101 - trollení
1. Hejtování 101 - proč hejtujeme
● Frustrace
● Nepochopení konceptu
● Strach
● Práce nás nebaví, ale šéf by nás vyhodil,
kdybychom hejtovali jeho
1. Hejtování 101 - positivní dopad
● Nám se konečně uleví - WIN!
● Stres opadne, našli jsme viníka.
● Za všechno stejně můžou uprchlíci.
● Je to přece strašná sranda.
1. Hejtování 101 - negativní dopad
● Bolí to (“ty máš zase menstruaci, viď”)
● Žádný konstruktivní feedback
● Není prostor pro změnu nebo zlepšení
● Demotivace, cokoliv změnit
● Hejtování a trollení zpátky
● Vytváří k vám negativní očekávání
1. Hejtování 101 - opravdový cíl
● Něco změnit!
● Vyřešit problém
● Pochopit, jak to dělat líp a snáz
● Naučit se něco
● Někomu to vrátit za minule
1. Hejtování 101 - vytěžit dobro
● Častá situace v open-source: issue/bug => fix
● “Stačí si uvědomit, že ten správce je někdo, koho
bys měl motivovat k tomu, aby to opravil."
1. Hejtování 101 - vytěžit dobro
1. Hejtování 101 - vytěžit dobro
1. Hejtování 101 - vytěžit dobro
1. A co sranda?
1. Positivní trolení - WTF?
2. Seberozvojem k poznání
● Jak poznat jiné technologie?
● Nejlíp v práci.
● Když to jde, super!
2. Seberozvojem k poznání
2. Zkuste open-source
2. Proč open-source?
● 0 Kč
● Positivní extranalita => x Kč
● Můžete vyzkoušet cokoliv
● Žádný deadline
● Volná pracovní doba
● Chuť bleeding edge
● Experimentování - Learn fast, drop fast
2. Můj první větší open-source
● 2014
2. Berserkr mód open-source
2. Co mi dalo za 0 Kč?
● Před ApiGenem: fulltime Symfony hater
● A po?
○ Symfony komponenty + NetteDI
○ Trvalá udržitetnost sofwtare
○ CI/testy/coverage
○ Github a jeho open-source ekosystém
○ Jméno v komunitě, sebevědomí...
2. Co jsem pochopil - podobnosti?
● DependencyInjnection ⇔ DI
● EventDispacher ⇔ Events
● Controller ⇔ Presenter
● Twig ⇔ Latte
● HttpKernel ⇔ Application
● HttpFoundation ⇔ Http
● SwiftMailer ⇔ Mail
2. Nette a Symfony se obohacují
● práce s Requstem
● Console
● práci s processy (rm -rf *)
● Security
● OptionsResolver (např. ApiGen s 20 CLI
argumenty)
2. Nette a Symfony se obohacují
Nejen kódem, ale i komunitně
● Konference
● Srazy
● Knížky
● Architektura
● LIDI!
2. Nemáte rok času na OS?
2. Přijďte na PHP konferenci
2. Přijďte na konferenci v Praze
PHPprague.cz
2. Běžte na sraz toho, co neznáte
● Nette PoSoboty po celé ČR
● Symfony srazy po celé ČR
● Často se ani o Nette/Symfony nemluví
2. U mě nic není :(
“If there is no php group in the town, you are the
leader of it.”
● Tak vlastně vznikla Symfony komunita
● A Python komunita - Pyvo.cz
Jak na to? Ozvěte se mi, rád vám s tím pomůžu.
2. Sejděte s tím, koho obdivujete
2. Tak informace u máme
3. Užívejte na plno a nevažte se
● IT je permanetní hype
○ používá se to, o čem se mluví,
○ ne tolik to, co je objektivně kvalitní nebo
nejlepší
● To že je Vinnetou cool dnes, neznamená,
že za 5 let si ho bude někdo pamatovat
● Jeden z nejrychlejších oborů, které se mění
3. Sexy technologie na 1. pohled?
2015-2017 - Symfony HYPE!?
3. Pozor na vendor lock
3. Každá jednou umře
3. Jak si užít naplno? Adaptér!
class MyFileSystem
{
public function delete($file)
{
// NetteUtils, SymfonyFileSystem…?
}
}
3. Bezpečnost především
● Všude v aplikace použiješ třídu
MyFileSystem
● Její vnitřnosti si můžeš libovolně změnit
● Umře knihovna? Nevyvíjí se, jak potřebuješ?
Vyměníš ji na 1 místě a ještě dál
3. Nezávazný protip: Delegator!
● Pattern tříd, které jsou jen entry pointem
● Třídy typu...
○ Controller/Presenter
○ Command (do Console)
○ EventSubscriber
● ...jenom volají služby/model
3. Užívej si to, co už je
● Už je tu open-source, který Nette a Symfony
vzájemně integruje
○ Nebo aspoň jejich features
● Vyzkoušejte ho ve svém oblíbeném
frameworku, a uvidíte
3. Integrace Symfony do Nette
● https://github.com/kdyby
○ Console
○ Translation
○ Validator
● https://github.com/symnedi
○ Security
○ EventDispatcher
○ SymfonyBundlesExtension - bundle => DI
3. Integrace Nette do Symfony
● https://github.com/symfonette
○ Neon do SymfonyDependencyInjection
○ TBA: HttpBridge
● https://github.com/kutny/tracy-bundle
○ Tracy (Laděnka)
● http://gtihub.com/symplify/controller-autowire
○ Autowiring pro Controllery
4. Podporujte zdravou rivalitu
● Nenechme je usnout na vavřínech!
● Není nic horšího než monopolní projekt
● Když není konkurence, tak:
○ roste technický dluh
○ vznikají mrtvá issues a PR (Doctrine)
○ opadá adrenalin u maintainerů
● A chlapi rádi soutěží :)
4. Hybridní balíčky
- Moje vize: hybrid balicky s DI lepidly do frameworku
Takže co jsem vám chtěl sdělit?
● Hejtovat jde i hezky a dokonce z toho i něco
vytěžit
● Je spousta cest, jak se zadarmo vzdělávat a
využít Nette i Symfony ve svůj prospěch
● Zbytečně se na ně nevažte (pamatujte Nšo-či)
● Podporujte zdravou rivalitu, ta žene vývoj!
Je to na nás!
Tomáš Votruba – Jako Vinnetou a Old Shatterhand – refaktoruj nenávist v přátelství!
Tomáš Votruba – Jako Vinnetou a Old Shatterhand – refaktoruj nenávist v přátelství!

More Related Content

Similar to Tomáš Votruba – Jako Vinnetou a Old Shatterhand – refaktoruj nenávist v přátelství!

Deep learning (+ úvod do strojového učení)
Deep learning (+ úvod do strojového učení)Deep learning (+ úvod do strojového učení)
Deep learning (+ úvod do strojového učení)michalillich
 
Strojové učení z rychlíku
Strojové učení z rychlíkuStrojové učení z rychlíku
Strojové učení z rychlíkumichalillich
 
KST/ICSHP - 1. přednáška
KST/ICSHP - 1. přednáškaKST/ICSHP - 1. přednáška
KST/ICSHP - 1. přednáškaJan Hřídel
 
NMI13 Michal Illich - Extrakce strukturovaných dat z webových stránek
NMI13 Michal Illich - Extrakce strukturovaných dat z webových stránekNMI13 Michal Illich - Extrakce strukturovaných dat z webových stránek
NMI13 Michal Illich - Extrakce strukturovaných dat z webových stránekNew Media Inspiration
 
Konference forum media - personalizace
Konference forum media - personalizaceKonference forum media - personalizace
Konference forum media - personalizaceJiří Štěpán
 
Jiří Štěpán: Nebojte se být osobní i u vás doma na webu
Jiří Štěpán: Nebojte se být osobní i u vás doma na webuJiří Štěpán: Nebojte se být osobní i u vás doma na webu
Jiří Štěpán: Nebojte se být osobní i u vás doma na webuEtnetera
 

Similar to Tomáš Votruba – Jako Vinnetou a Old Shatterhand – refaktoruj nenávist v přátelství! (6)

Deep learning (+ úvod do strojového učení)
Deep learning (+ úvod do strojového učení)Deep learning (+ úvod do strojového učení)
Deep learning (+ úvod do strojového učení)
 
Strojové učení z rychlíku
Strojové učení z rychlíkuStrojové učení z rychlíku
Strojové učení z rychlíku
 
KST/ICSHP - 1. přednáška
KST/ICSHP - 1. přednáškaKST/ICSHP - 1. přednáška
KST/ICSHP - 1. přednáška
 
NMI13 Michal Illich - Extrakce strukturovaných dat z webových stránek
NMI13 Michal Illich - Extrakce strukturovaných dat z webových stránekNMI13 Michal Illich - Extrakce strukturovaných dat z webových stránek
NMI13 Michal Illich - Extrakce strukturovaných dat z webových stránek
 
Konference forum media - personalizace
Konference forum media - personalizaceKonference forum media - personalizace
Konference forum media - personalizace
 
Jiří Štěpán: Nebojte se být osobní i u vás doma na webu
Jiří Štěpán: Nebojte se být osobní i u vás doma na webuJiří Štěpán: Nebojte se být osobní i u vás doma na webu
Jiří Štěpán: Nebojte se být osobní i u vás doma na webu
 

More from Konference PHPlive

Nikol Ježková: Doctrine2 Behavioral Extensions - zaostřeno na stromy
Nikol Ježková: Doctrine2 Behavioral Extensions - zaostřeno na stromyNikol Ježková: Doctrine2 Behavioral Extensions - zaostřeno na stromy
Nikol Ježková: Doctrine2 Behavioral Extensions - zaostřeno na stromyKonference PHPlive
 
Dušan Kasan - Zrefaktoruj cykly na kolekce
Dušan Kasan - Zrefaktoruj cykly na kolekceDušan Kasan - Zrefaktoruj cykly na kolekce
Dušan Kasan - Zrefaktoruj cykly na kolekceKonference PHPlive
 
Miro Stopka – Kvalitní vs. výnosný kód
Miro Stopka – Kvalitní vs. výnosný kódMiro Stopka – Kvalitní vs. výnosný kód
Miro Stopka – Kvalitní vs. výnosný kódKonference PHPlive
 
Petr Kadlec - Jak začít se Symfony a mít z toho dobrý pocit
Petr Kadlec - Jak začít se Symfony a mít z toho dobrý pocitPetr Kadlec - Jak začít se Symfony a mít z toho dobrý pocit
Petr Kadlec - Jak začít se Symfony a mít z toho dobrý pocitKonference PHPlive
 
Jakub Kulhan - Jak se dělal nový Skrz.cz na Symfony a Elasticsearch
Jakub Kulhan - Jak se dělal nový Skrz.cz na Symfony a ElasticsearchJakub Kulhan - Jak se dělal nový Skrz.cz na Symfony a Elasticsearch
Jakub Kulhan - Jak se dělal nový Skrz.cz na Symfony a ElasticsearchKonference PHPlive
 
Filip Procházka - Testování prakticky
Filip Procházka - Testování praktickyFilip Procházka - Testování prakticky
Filip Procházka - Testování praktickyKonference PHPlive
 

More from Konference PHPlive (6)

Nikol Ježková: Doctrine2 Behavioral Extensions - zaostřeno na stromy
Nikol Ježková: Doctrine2 Behavioral Extensions - zaostřeno na stromyNikol Ježková: Doctrine2 Behavioral Extensions - zaostřeno na stromy
Nikol Ježková: Doctrine2 Behavioral Extensions - zaostřeno na stromy
 
Dušan Kasan - Zrefaktoruj cykly na kolekce
Dušan Kasan - Zrefaktoruj cykly na kolekceDušan Kasan - Zrefaktoruj cykly na kolekce
Dušan Kasan - Zrefaktoruj cykly na kolekce
 
Miro Stopka – Kvalitní vs. výnosný kód
Miro Stopka – Kvalitní vs. výnosný kódMiro Stopka – Kvalitní vs. výnosný kód
Miro Stopka – Kvalitní vs. výnosný kód
 
Petr Kadlec - Jak začít se Symfony a mít z toho dobrý pocit
Petr Kadlec - Jak začít se Symfony a mít z toho dobrý pocitPetr Kadlec - Jak začít se Symfony a mít z toho dobrý pocit
Petr Kadlec - Jak začít se Symfony a mít z toho dobrý pocit
 
Jakub Kulhan - Jak se dělal nový Skrz.cz na Symfony a Elasticsearch
Jakub Kulhan - Jak se dělal nový Skrz.cz na Symfony a ElasticsearchJakub Kulhan - Jak se dělal nový Skrz.cz na Symfony a Elasticsearch
Jakub Kulhan - Jak se dělal nový Skrz.cz na Symfony a Elasticsearch
 
Filip Procházka - Testování prakticky
Filip Procházka - Testování praktickyFilip Procházka - Testování prakticky
Filip Procházka - Testování prakticky
 

Tomáš Votruba – Jako Vinnetou a Old Shatterhand – refaktoruj nenávist v přátelství!

  • 1.
  • 2. Jako Vinnetou a Old Shatterhand Refaktoruj nenávist v přátelství! Tomáš Votruba, @votrubaT www.tomasvotruba.cz PHPLive 11.-12. května 2016
  • 3. Ahoj, já su Tomáš Votruba ● Používám Nette, Symfony a Doctrine ● Konzultuju, radím, školím ● Buduju Symfony komunitu u nás ● Rád sbližuju
  • 4. Co vám dneska povím ● Jak správně hejtovat? ● Jak využít něco, čemu nerozumím? ● Jak si užívat na plno a nevázat se ● Kam to může jít s Nette a Symfony dál?
  • 5. Co tady kdo používáte? ● P ● N ● S ● L ● ?
  • 6. 1. Hejtování 101 Jak vypadá správný hejt? ● Cílený na člověka, ne na kód/feature ● Nekonstruktivní ● Nejednoznačný a matoucí ● Srovnávejte, vytvořte nevraživost tl;dr: Najdetě si hůl a bijte psa.
  • 7. 1. Hejtování 101 “Framework … vůbec neumí. Autoři jsou za opicema. Tenhle je lepší a dělá to už dlouho správně.” “Těchto 10 řádků opravdu nechápu. Celý framework ... je špatný a nepřehledný.” “Laravel je statické peklo. #blesmrt Nepoužívejte ho.”
  • 8. 1. Hejtování 101 - trollení
  • 9. 1. Hejtování 101 - proč hejtujeme ● Frustrace ● Nepochopení konceptu ● Strach ● Práce nás nebaví, ale šéf by nás vyhodil, kdybychom hejtovali jeho
  • 10. 1. Hejtování 101 - positivní dopad ● Nám se konečně uleví - WIN! ● Stres opadne, našli jsme viníka. ● Za všechno stejně můžou uprchlíci. ● Je to přece strašná sranda.
  • 11. 1. Hejtování 101 - negativní dopad ● Bolí to (“ty máš zase menstruaci, viď”) ● Žádný konstruktivní feedback ● Není prostor pro změnu nebo zlepšení ● Demotivace, cokoliv změnit ● Hejtování a trollení zpátky ● Vytváří k vám negativní očekávání
  • 12. 1. Hejtování 101 - opravdový cíl ● Něco změnit! ● Vyřešit problém ● Pochopit, jak to dělat líp a snáz ● Naučit se něco ● Někomu to vrátit za minule
  • 13. 1. Hejtování 101 - vytěžit dobro ● Častá situace v open-source: issue/bug => fix ● “Stačí si uvědomit, že ten správce je někdo, koho bys měl motivovat k tomu, aby to opravil."
  • 14. 1. Hejtování 101 - vytěžit dobro
  • 15. 1. Hejtování 101 - vytěžit dobro
  • 16. 1. Hejtování 101 - vytěžit dobro
  • 17. 1. A co sranda?
  • 19. 2. Seberozvojem k poznání ● Jak poznat jiné technologie? ● Nejlíp v práci. ● Když to jde, super!
  • 20. 2. Seberozvojem k poznání
  • 22. 2. Proč open-source? ● 0 Kč ● Positivní extranalita => x Kč ● Můžete vyzkoušet cokoliv ● Žádný deadline ● Volná pracovní doba ● Chuť bleeding edge ● Experimentování - Learn fast, drop fast
  • 23. 2. Můj první větší open-source ● 2014
  • 24. 2. Berserkr mód open-source
  • 25. 2. Co mi dalo za 0 Kč? ● Před ApiGenem: fulltime Symfony hater ● A po? ○ Symfony komponenty + NetteDI ○ Trvalá udržitetnost sofwtare ○ CI/testy/coverage ○ Github a jeho open-source ekosystém ○ Jméno v komunitě, sebevědomí...
  • 26. 2. Co jsem pochopil - podobnosti? ● DependencyInjnection ⇔ DI ● EventDispacher ⇔ Events ● Controller ⇔ Presenter ● Twig ⇔ Latte ● HttpKernel ⇔ Application ● HttpFoundation ⇔ Http ● SwiftMailer ⇔ Mail
  • 27. 2. Nette a Symfony se obohacují ● práce s Requstem ● Console ● práci s processy (rm -rf *) ● Security ● OptionsResolver (např. ApiGen s 20 CLI argumenty)
  • 28. 2. Nette a Symfony se obohacují Nejen kódem, ale i komunitně ● Konference ● Srazy ● Knížky ● Architektura ● LIDI!
  • 29. 2. Nemáte rok času na OS?
  • 30.
  • 31. 2. Přijďte na PHP konferenci
  • 32.
  • 33. 2. Přijďte na konferenci v Praze PHPprague.cz
  • 34. 2. Běžte na sraz toho, co neznáte ● Nette PoSoboty po celé ČR ● Symfony srazy po celé ČR ● Často se ani o Nette/Symfony nemluví
  • 35.
  • 36.
  • 37. 2. U mě nic není :( “If there is no php group in the town, you are the leader of it.” ● Tak vlastně vznikla Symfony komunita ● A Python komunita - Pyvo.cz Jak na to? Ozvěte se mi, rád vám s tím pomůžu.
  • 38. 2. Sejděte s tím, koho obdivujete
  • 39. 2. Tak informace u máme
  • 40. 3. Užívejte na plno a nevažte se ● IT je permanetní hype ○ používá se to, o čem se mluví, ○ ne tolik to, co je objektivně kvalitní nebo nejlepší ● To že je Vinnetou cool dnes, neznamená, že za 5 let si ho bude někdo pamatovat ● Jeden z nejrychlejších oborů, které se mění
  • 41. 3. Sexy technologie na 1. pohled?
  • 43. 3. Pozor na vendor lock
  • 45. 3. Jak si užít naplno? Adaptér! class MyFileSystem { public function delete($file) { // NetteUtils, SymfonyFileSystem…? } }
  • 46. 3. Bezpečnost především ● Všude v aplikace použiješ třídu MyFileSystem ● Její vnitřnosti si můžeš libovolně změnit ● Umře knihovna? Nevyvíjí se, jak potřebuješ? Vyměníš ji na 1 místě a ještě dál
  • 47. 3. Nezávazný protip: Delegator! ● Pattern tříd, které jsou jen entry pointem ● Třídy typu... ○ Controller/Presenter ○ Command (do Console) ○ EventSubscriber ● ...jenom volají služby/model
  • 48. 3. Užívej si to, co už je ● Už je tu open-source, který Nette a Symfony vzájemně integruje ○ Nebo aspoň jejich features ● Vyzkoušejte ho ve svém oblíbeném frameworku, a uvidíte
  • 49. 3. Integrace Symfony do Nette ● https://github.com/kdyby ○ Console ○ Translation ○ Validator ● https://github.com/symnedi ○ Security ○ EventDispatcher ○ SymfonyBundlesExtension - bundle => DI
  • 50. 3. Integrace Nette do Symfony ● https://github.com/symfonette ○ Neon do SymfonyDependencyInjection ○ TBA: HttpBridge ● https://github.com/kutny/tracy-bundle ○ Tracy (Laděnka) ● http://gtihub.com/symplify/controller-autowire ○ Autowiring pro Controllery
  • 51. 4. Podporujte zdravou rivalitu ● Nenechme je usnout na vavřínech! ● Není nic horšího než monopolní projekt ● Když není konkurence, tak: ○ roste technický dluh ○ vznikají mrtvá issues a PR (Doctrine) ○ opadá adrenalin u maintainerů ● A chlapi rádi soutěží :)
  • 52.
  • 53. 4. Hybridní balíčky - Moje vize: hybrid balicky s DI lepidly do frameworku
  • 54. Takže co jsem vám chtěl sdělit? ● Hejtovat jde i hezky a dokonce z toho i něco vytěžit ● Je spousta cest, jak se zadarmo vzdělávat a využít Nette i Symfony ve svůj prospěch ● Zbytečně se na ně nevažte (pamatujte Nšo-či) ● Podporujte zdravou rivalitu, ta žene vývoj!
  • 55. Je to na nás!