+ All Categories
Home > Engineering > Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Date post: 13-Apr-2017
Category:
Upload: jakub-kulhan
View: 275 times
Download: 0 times
Share this document with a friend
49
Jak se dělal nový skrz.cz na Symfony a Elasticsearch PHP<live>Ostrava, 3.12.2015
Transcript
Page 1: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Jak se dělal nový skrz.cz na Symfony

a ElasticsearchPHP<live>Ostrava, 3.12.2015

Page 2: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

O mně• Kouzelná Almara

• Skrz.cz

• Liftago

• github.com/jakubkulhan

• twitter.com/jakubkulhan

• medium.com/@jakubkulhan

Page 3: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Co je skrz?

Page 4: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch
Page 5: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch
Page 6: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

??? - květen 2014

Page 7: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch
Page 8: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

“Zabij všechny SELECTy do májeskjůelky!”

SELECT … JOIN … JOIN … JOIN …

Page 9: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

“MySQL spadla… Redis spadnul…”

if (MySQL) { … } else if (Redis) { … }

Page 10: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

“Něco blbě v konfigu…”

Service::Config()->application->… Service::Smarty()->set(“…”, …)

Page 11: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

“Na mym dev portu ty obrázky jsou… #@^**#@, pustils sync

do špatný složky…”

Page 12: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

“Ta změna na letácích rozbila recenze.”

Page 13: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

“… snippety …”

Page 14: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

“Load 100… to ten server dlouho nevydrží…”

Page 15: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

REDESIGN

Page 16: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

lib/, getcomposer.org

Page 17: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

“Hele, chtělo by to použít ňákej framework…”

Page 18: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Nette, Zend, Symfony, …

Page 19: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Nette, Zend, Symfony

Page 20: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Nette, Zend, Symfony

Page 21: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch
Page 22: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Nette, Zend, Symfony

Page 23: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

MySQL, Redis, Elasticsearch

Page 24: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

MySQL, Redis, Elasticsearch

Page 25: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Doctrine, …

Page 26: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Doctrine, …vlastní

Page 27: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch
Page 28: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

github.com/skrz/meta

Page 29: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

map.conf +

ControllerRunner

Page 30: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Symfony Kernel až červen 2015

Page 31: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

DI container

Page 32: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Autowiring!

kutny/autowiring-bundle

Page 33: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

skrz/autowiring-bundle

autowiring + autoscan PSR-4 + @Autowired + @Value

Page 34: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch
Page 35: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Twig, …

Page 36: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Twig, …vlastní

Page 37: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

skrz/templating-engine +

SkrzTemplatingBundle (not released)

Page 38: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch
Page 39: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Breadth-first render

Page 40: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

SecurityBundle, UserService

Page 41: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

SecurityBundle, UserService

Pozor na PHPSESSID!

Page 42: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch
Page 43: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

REDESIGN²

Page 44: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

punk, feature branching + code reviews

SVN, Git

Page 45: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Continuous integration + testy:

jakub.skrz.xyz + dev-ABCD.skrz.xyz

devblog.skrz.cz/post/113170144803/jak-nenásilně-začít-testovat

Page 46: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Deployment:

codeascraft.com/2013/07/01/atomic-deploys-at-etsy/

Page 47: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Shrnutí1. Symfony jako fw byla tehdy jediná volba. Od té doby se rozhodnutí

mnohokrát vrátilo.

1. Flexibilnost, rozšiřitelnost přes bundles.

2. Postupný přechod.

2. Elasticsearch je prostě super!

1. https://www.zdrojak.cz/clanky/jak-skrz-cz-radi-20k-nabidek-podle-real-time-analytiky/

2. Znamenal vytvořit skrz/meta. Čas strávený vytvářením téhle knihovny se taky mnohokrát vrátil.

3. Testy a jednoduchý rollback při deploymentu mnohokát zachránily prdel!

Page 48: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Otázky?

github.com/jakubkulhan twitter.com/jakubkulhan

medium.com/@jakubkulhan

github.com/skrz twitter.com/SkrzCzDev

devblog.skrz.cz

facebook.com/SkrzCirkus

Sledujte Skrz Cirkus a přijďte na další!

Page 49: Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Díky!

github.com/jakubkulhan twitter.com/jakubkulhan

medium.com/@jakubkulhan

github.com/skrz twitter.com/SkrzCzDev

devblog.skrz.cz

facebook.com/SkrzCirkus

Sledujte Skrz Cirkus a přijďte na další!


Recommended