57

Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

Embed Size (px)

Citation preview

Page 1: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)
Page 2: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

Jako Vinnetou a Old Shatterhand

Refaktoruj nenávistv přátelství!

Tomáš Votruba, @votrubaTwww.tomasvotruba.cz

PHPLive11.-12. května 2016

Page 3: Vinettou a Old Shatterhand (PhpLive.cz, jaro 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

Page 4: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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?

Page 5: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

Co tady kdo používáte?

● P

● N

● S

● L

● ?

Page 6: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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.

Page 7: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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.”

Page 8: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

1. Hejtování 101 - trollení

Page 9: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

1. Hejtování 101 - proč hejtujeme

● Frustrace

● Nepochopení konceptu

● Strach

● Práce nás nebaví, ale šéf by nás vyhodil,

kdybychom hejtovali jeho

Page 10: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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.

Page 11: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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í

Page 12: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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

Page 13: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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."

Page 14: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

1. Hejtování 101 - vytěžit dobro

Page 15: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

1. Hejtování 101 - vytěžit dobro

Page 16: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

1. Hejtování 101 - vytěžit dobro

Page 17: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

1. A co sranda?

Page 18: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

1. Positivní trolení - WTF?

Page 19: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

2. Seberozvojem k poznání

● Jak poznat jiné technologie?

● Nejlíp v práci.

● Když to jde, super!

Page 20: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

2. Seberozvojem k poznání

Page 21: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

2. Zkuste open-source

Page 22: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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

Page 23: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

2. Můj první větší open-source

● 2014

Page 24: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

2. Berserkr mód open-source

Page 25: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

2. Co mi dalo za 0 Kč?

● Před ApiGenem: fulltime Symfony hater

● A po?

○ Symfony komponenty + Nette\DI

○ Trvalá udržitetnost sofwtare

○ CI/testy/coverage

○ Github a jeho open-source ekosystém

○ Jméno v komunitě, sebevědomí...

Page 26: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

2. Co jsem pochopil - podobnosti?

● DependencyInjnection ⇔ DI

● EventDispacher ⇔ Events

● Controller ⇔ Presenter

● Twig ⇔ Latte

● HttpKernel ⇔ Application

● HttpFoundation ⇔ Http

● SwiftMailer ⇔ Mail

Page 27: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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)

Page 28: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

2. Nette a Symfony se obohacují

Nejen kódem, ale i komunitně

● Konference

● Srazy

● Knížky

● Architektura

● LIDI!

Page 29: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

2. Nemáte rok času na OS?

Page 30: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)
Page 31: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

2. Přijďte na PHP konferenci

Page 32: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)
Page 33: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

2. Přijďte na konferenci v Praze

PHPprague.cz

Page 34: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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í

Page 35: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)
Page 36: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)
Page 37: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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.

Page 38: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

2. Sejděte s tím, koho obdivujete

Page 39: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

2. Tak informace u máme

Page 40: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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í

Page 41: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

3. Sexy technologie na 1. pohled?

Page 42: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

2015-2017 - Symfony HYPE!?

Page 43: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

3. Pozor na vendor lock

Page 44: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

3. Každá jednou umře

Page 45: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

3. Jak si užít naplno? Adaptér!

class MyFileSystem

{

public function delete($file)

{

// Nette\Utils, Symfony\FileSystem…?

}

}

Page 46: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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

Page 47: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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

Page 48: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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

Page 49: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

3. Integrace Symfony do Nette● https://github.com/kdyby

○ Console

○ Translation

○ Validator

● https://github.com/symnedi

○ Security

○ EventDispatcher

○ SymfonyBundlesExtension - bundle => DI

Page 50: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

3. Integrace Nette do Symfony

● https://github.com/symfonette

○ Neon do Symfony\DependencyInjection

○ TBA: HttpBridge

● https://github.com/kutny/tracy-bundle

○ Tracy (Laděnka)

● http://gtihub.com/symplify/controller-autowire

○ Autowiring pro Controllery

Page 51: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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ěží :)

Page 52: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)
Page 53: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

4. Hybridní balíčky

- Moje vize: hybrid balicky s DI lepidly do frameworku

Page 54: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

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!

Page 55: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)

Je to na nás!

Page 56: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)
Page 57: Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)