SlideShare a Scribd company logo
1 of 20
Download to read offline
Jak probíhal vývoj
platformy pro vývojáře
Pavel Dedík
CTO v Mergadu
Nástroj pro e-shopy.
Pomáhá navyšovat tržby z
vyhledávačů zboží.
Co je to Mergado?
Jak Mergado
manipuluje s
produkty?
S pomocí pravidel a výběrů.
Vstupní XML feed
Výstupní XML feed
<product>
Pravidlo:
CPC = 2 Kč
<product>
<product>
<product>
<product>
<product>
<product>
<product>
<product>
CPC = 2 Kč
<product>
PRICE_VAT
> 100 Kč
Další funkce Mergada a výzvy pro vývojáře
● Převody mezi formáty XML, napojení na reklamní systémy
■ Heureka, Zboží.cz, Sklik, Google, Facebook, CJ.com, …
■ Celkově přes 50 různých formátů
● Parsování nevalidních XML
■ Vlastní parser XML
● Vlastní dotazovací jazyk
■ Mergado Query Language (MQL)
■ Deklarativní jazyk
● Real-Time analytika
■ Terabajty dat
● Audit XML
Kde vzít nové
funkce?
Bohužel nerostou na stromě.
Bidding
PředvyplnitEAN
AuditURL
Monitoring
Kontrola
pravopisu
Vyžaduje to
● Nápad
● Vývojáře
● Refaktoring
● Spoustu času
Co kdybychom tvorbu nových funkcí
zpřístupnili i externím vývojářům?
● Nové funkce by přibývaly ve formě aplikací
■ zcela oddělené od jádra Mergada
● Výhody
■ Outsourcing nových funkcí
■ Jádro se neznečišťuje novým kódem
■ Nižší nároky na údržbu a vývoj
■ Lepší použitelnost rozhraní
● Nevýhody
■ Menší dohled nad novými funkcemi
■ Vysoká počáteční investice
■ Horší použitelnost rozhraní
Mergado jako
webová aplikace
Jádro
Pravidla
Výběry
Audit
XML
Analytika
Mergado jako
platforma
Jádro
Store
Developers
Aplikace
Ale kde vlastně
začít?
● Jak budou aplikace
komunikovat s jádrem?
● Jak bude fungovat
autentizace?
● Co správa oprávnění?
● Jak vývojářům platformu
zpřístupnit?
● Jaké bude jejich workflow?
● Kde aplikace poběží?
● Jaké technologie budou mít
vývojáři k dispozici?
OAuth 2.0 v Mergadu (online režim)
Koncový
uživatel
Chráněné
API zdroje
Autorizační
server
Aplikace
1. autorizační požadavek
2. autorizační kód
3. autorizační kód
4. access token
5. access token
6. chráněný zdroj
OAuth 2.0 v Mergadu (offline režim)
Chráněné
API zdroje
Autorizační
server
Aplikace
1. refresh token
2. access token
3. access token
4. chráněný zdroj
● Během povolení aplikace uživatelem si autorizační
server uloží refresh token
● Ten pak aplikace použije k vyžádání access tokenu
Mergado API v0.3.1
● Aplikace se autorizují přes OAuth 2.0
● Komunikace probíhá přes HTTP JSON API
● Oprávnění aplikace stanovují OAuth scopy
■ Uživatel uděluje práva (scopy) při zapnutí aplikace
GET /api/users/42
Je token
validní?
403 Forbidden
NE
Má aplikace
práva číst tato
data?
ANO
NE
Má uživatel
práva číst tato
data?
ANO
200 OK
NE
ANO
401 Unauthorized
Nad rámec standardních API
● Uživatel může zapnout aplikaci pro e-shop
■ A více uživatelů může v Mergadu přistupovat k jednomu e-shopu
■ ⇒ access token se váže na entitu (na uživatele, e-shop nebo export)
● Mergado někdy komunikuje i s aplikací
■ ⇒ Aplikace potřebují mít vlastní API/webhook
● Aplikace někdy potřebují komunikovat s API periodicky
■ Zatímco uživatel není přihlášen v Mergadu
Developers
● https://developers.mergado.com
● Centrum pro vývojáře
● K registraci a správě aplikací
App Cloud
● Hosting pro aplikace
● MySQL, Redis, Apache, PHP
● V budoucnu Python a další jazyky
App Cloud
App 1
Mergado API
App 2
App N App M
Statistiky Analytika
Pravidla Výběry
Audit Elementy
ProměnnéNotifikace
Jak se aplikace zobrazuje v Mergadu?
● Primárně jako samostatná HTML stránka
■ IFRAME, kde src=”https://appcloud.mergado.com/...”
MERGADO
<IFRAME
src=“https://appcloud...”/>
<HTML>
...
</HTML>
</IFRAME>
App: Logbook
Logbook
content-type:
text/html
App Cloud
● Sekundárně jako widget v přehledu zapnutých aplikací
■ Opět pouze HTML dokument v IFRAME
Servis pro vývojáře aplikací
● Hosting pro aplikace zajišťuje App Cloud
○ Technologicky je však možné použít vlastní hosting
● 70 % z částky zaplacené zákazníky se vyplatí vývojáři
○ 30 % je na provoz a další vývoj platformy
● Mergado dále pomáhá vývojářům marketingově
○ Prostřednictvím blogu, e-mailingem, atd.
Jaký je stav po
roce vývoje?
73 API endpointů, rosáhlá
dokumentace platformy v angličtině,
14 aplikací na produkci a 3 ve vývoji.
● Bidding Fox
● Feed Image Editor
● Pricing Rank
● Data Owl
● Weekday Bidding Booster
● … a další v Mergado Store
Závěrem: Pár poučení a návrhů na vylepšení
● Porozumění architektury
○ návrh HTTP API má smysl teprve až
v pozdějších fázích vývoje
● Neomezovat vývojáře příliš
○ začnou vymýšlet “hacky”
● Aplikace v docker kontejneru
○ jednodušší správa oprávnění,
○ jednodušší řízení zdrojů,
○ aplikace si navzájem nekradou zdroje,
○ aplikace si mohou v rámci kontejneru
nainstalovat co potřebují.
Otázky?
@paveldedik

More Related Content

Viewers also liked

Glosarium card teks biografi heni dan lailatul a.x tkj 2 vocsten malang
Glosarium card teks biografi heni dan lailatul a.x tkj 2 vocsten malangGlosarium card teks biografi heni dan lailatul a.x tkj 2 vocsten malang
Glosarium card teks biografi heni dan lailatul a.x tkj 2 vocsten malangNuril anwar
 
DST 251 Chapter Expert Peters 6
DST 251 Chapter Expert Peters 6DST 251 Chapter Expert Peters 6
DST 251 Chapter Expert Peters 6Kaylee Teixeira
 
Relación entre la genética y el comportamiento
Relación entre la genética y el comportamientoRelación entre la genética y el comportamiento
Relación entre la genética y el comportamientojose julian gonzalez lopez
 
5. pre production(2)
5. pre production(2)5. pre production(2)
5. pre production(2)Jordannekay99
 
1. communication methods pro forma(1)
1. communication methods pro forma(1)1. communication methods pro forma(1)
1. communication methods pro forma(1)Jordannekay99
 
Choisir ses réseaux sociaux et ses sites de partages
Choisir ses réseaux sociaux et ses sites de partagesChoisir ses réseaux sociaux et ses sites de partages
Choisir ses réseaux sociaux et ses sites de partagesREALIZ
 

Viewers also liked (11)

Glosarium card teks biografi heni dan lailatul a.x tkj 2 vocsten malang
Glosarium card teks biografi heni dan lailatul a.x tkj 2 vocsten malangGlosarium card teks biografi heni dan lailatul a.x tkj 2 vocsten malang
Glosarium card teks biografi heni dan lailatul a.x tkj 2 vocsten malang
 
DST 251 Chapter Expert Peters 6
DST 251 Chapter Expert Peters 6DST 251 Chapter Expert Peters 6
DST 251 Chapter Expert Peters 6
 
Propuesta para la inversion del sector publico
Propuesta para la inversion del sector publicoPropuesta para la inversion del sector publico
Propuesta para la inversion del sector publico
 
Abp sessió 7
Abp sessió 7Abp sessió 7
Abp sessió 7
 
Relación entre la genética y el comportamiento
Relación entre la genética y el comportamientoRelación entre la genética y el comportamiento
Relación entre la genética y el comportamiento
 
5. pre production(2)
5. pre production(2)5. pre production(2)
5. pre production(2)
 
1. initial plans(2)
1. initial plans(2)1. initial plans(2)
1. initial plans(2)
 
7. evaluation(3)
7. evaluation(3)7. evaluation(3)
7. evaluation(3)
 
1. communication methods pro forma(1)
1. communication methods pro forma(1)1. communication methods pro forma(1)
1. communication methods pro forma(1)
 
Choisir ses réseaux sociaux et ses sites de partages
Choisir ses réseaux sociaux et ses sites de partagesChoisir ses réseaux sociaux et ses sites de partages
Choisir ses réseaux sociaux et ses sites de partages
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 

Similar to Jak probíhal vývoj platformy pro vývojáře

Nekonference 2017: Mergado - Luděk Volejník
Nekonference 2017: Mergado - Luděk VolejníkNekonference 2017: Mergado - Luděk Volejník
Nekonference 2017: Mergado - Luděk VolejníkBESTETO
 
Google Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPressGoogle Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPressVladimír Smitka
 
Od nastavení po analýzu dynamického přeceňování
Od nastavení po analýzu dynamického přeceňováníOd nastavení po analýzu dynamického přeceňování
Od nastavení po analýzu dynamického přeceňováníMergado technologies s. r. o.
 
Jak může PPCéčkař zastoupit programátora
Jak může PPCéčkař zastoupit programátoraJak může PPCéčkař zastoupit programátora
Jak může PPCéčkař zastoupit programátoraMichal Blažek
 
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ýraJiří Mareš
 
Jak na Smartlook, nejen pro Shoptet
Jak na Smartlook, nejen pro ShoptetJak na Smartlook, nejen pro Shoptet
Jak na Smartlook, nejen pro ShoptetMarek Čech
 
Enhanced Ecommerce
Enhanced EcommerceEnhanced Ecommerce
Enhanced EcommerceTaste Medio
 
PPC na stojáka #4, fotky a prezentace Jirky Homoly, 30 tipů pro správu PPC re...
PPC na stojáka #4, fotky a prezentace Jirky Homoly, 30 tipů pro správu PPC re...PPC na stojáka #4, fotky a prezentace Jirky Homoly, 30 tipů pro správu PPC re...
PPC na stojáka #4, fotky a prezentace Jirky Homoly, 30 tipů pro správu PPC re...BESTETO
 
Co sledovat a jak měřit u mobilního webu
Co sledovat a jak měřit u mobilního webuCo sledovat a jak měřit u mobilního webu
Co sledovat a jak měřit u mobilního webuAkce Dobrého webu
 
Jakub Drahokoupil: Pokládání základů pro obchodní rozhodování
Jakub Drahokoupil: Pokládání základů pro obchodní rozhodováníJakub Drahokoupil: Pokládání základů pro obchodní rozhodování
Jakub Drahokoupil: Pokládání základů pro obchodní rozhodováníH1.cz
 
Click it - Jak a co měřit pomocí nástroje Google Analytics - workshop 22. 10....
Click it - Jak a co měřit pomocí nástroje Google Analytics - workshop 22. 10....Click it - Jak a co měřit pomocí nástroje Google Analytics - workshop 22. 10....
Click it - Jak a co měřit pomocí nástroje Google Analytics - workshop 22. 10....Sun Marketing
 
Pricemania academy - jak vytěžit maximum z vyhledávačů zboží za pomoci pana m...
Pricemania academy - jak vytěžit maximum z vyhledávačů zboží za pomoci pana m...Pricemania academy - jak vytěžit maximum z vyhledávačů zboží za pomoci pana m...
Pricemania academy - jak vytěžit maximum z vyhledávačů zboží za pomoci pana m...BESTETO
 
SEO pohledem datového analytika
SEO pohledem datového analytikaSEO pohledem datového analytika
SEO pohledem datového analytikaTaste Medio
 
Digisemestr - Webová analytika chytře s Google Analytics - workshop 16. 11. 2015
Digisemestr - Webová analytika chytře s Google Analytics - workshop 16. 11. 2015Digisemestr - Webová analytika chytře s Google Analytics - workshop 16. 11. 2015
Digisemestr - Webová analytika chytře s Google Analytics - workshop 16. 11. 2015Sun Marketing
 
Rizika použití WordPressu
Rizika použití WordPressuRizika použití WordPressu
Rizika použití WordPressuSUPERKODERS
 
Mergado na Vyhledávače zboží 2012
Mergado na Vyhledávače zboží 2012Mergado na Vyhledávače zboží 2012
Mergado na Vyhledávače zboží 2012Michal Janík
 
Google Ads API vs. skripty
Google Ads API vs. skriptyGoogle Ads API vs. skripty
Google Ads API vs. skriptyTaste Medio
 
Click it - Webová analytika chytře s Google Analytics - workshop 23. 4. 2015
Click it - Webová analytika chytře s Google Analytics - workshop 23. 4. 2015Click it - Webová analytika chytře s Google Analytics - workshop 23. 4. 2015
Click it - Webová analytika chytře s Google Analytics - workshop 23. 4. 2015Sun Marketing
 

Similar to Jak probíhal vývoj platformy pro vývojáře (20)

Nekonference 2017: Mergado - Luděk Volejník
Nekonference 2017: Mergado - Luděk VolejníkNekonference 2017: Mergado - Luděk Volejník
Nekonference 2017: Mergado - Luděk Volejník
 
Používejte Google Analytics chytře
Používejte Google Analytics chytřePoužívejte Google Analytics chytře
Používejte Google Analytics chytře
 
Google Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPressGoogle Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPress
 
Od nastavení po analýzu dynamického přeceňování
Od nastavení po analýzu dynamického přeceňováníOd nastavení po analýzu dynamického přeceňování
Od nastavení po analýzu dynamického přeceňování
 
Jak může PPCéčkař zastoupit programátora
Jak může PPCéčkař zastoupit programátoraJak může PPCéčkař zastoupit programátora
Jak může PPCéčkař zastoupit programátora
 
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
 
Jak na Smartlook, nejen pro Shoptet
Jak na Smartlook, nejen pro ShoptetJak na Smartlook, nejen pro Shoptet
Jak na Smartlook, nejen pro Shoptet
 
Enhanced Ecommerce
Enhanced EcommerceEnhanced Ecommerce
Enhanced Ecommerce
 
PPC na stojáka #4, fotky a prezentace Jirky Homoly, 30 tipů pro správu PPC re...
PPC na stojáka #4, fotky a prezentace Jirky Homoly, 30 tipů pro správu PPC re...PPC na stojáka #4, fotky a prezentace Jirky Homoly, 30 tipů pro správu PPC re...
PPC na stojáka #4, fotky a prezentace Jirky Homoly, 30 tipů pro správu PPC re...
 
Co sledovat a jak měřit u mobilního webu
Co sledovat a jak měřit u mobilního webuCo sledovat a jak měřit u mobilního webu
Co sledovat a jak měřit u mobilního webu
 
Jakub Drahokoupil: Pokládání základů pro obchodní rozhodování
Jakub Drahokoupil: Pokládání základů pro obchodní rozhodováníJakub Drahokoupil: Pokládání základů pro obchodní rozhodování
Jakub Drahokoupil: Pokládání základů pro obchodní rozhodování
 
Click it - Jak a co měřit pomocí nástroje Google Analytics - workshop 22. 10....
Click it - Jak a co měřit pomocí nástroje Google Analytics - workshop 22. 10....Click it - Jak a co měřit pomocí nástroje Google Analytics - workshop 22. 10....
Click it - Jak a co měřit pomocí nástroje Google Analytics - workshop 22. 10....
 
Pricemania Academy Kickoff VIII.
Pricemania Academy Kickoff VIII.Pricemania Academy Kickoff VIII.
Pricemania Academy Kickoff VIII.
 
Pricemania academy - jak vytěžit maximum z vyhledávačů zboží za pomoci pana m...
Pricemania academy - jak vytěžit maximum z vyhledávačů zboží za pomoci pana m...Pricemania academy - jak vytěžit maximum z vyhledávačů zboží za pomoci pana m...
Pricemania academy - jak vytěžit maximum z vyhledávačů zboží za pomoci pana m...
 
SEO pohledem datového analytika
SEO pohledem datového analytikaSEO pohledem datového analytika
SEO pohledem datového analytika
 
Digisemestr - Webová analytika chytře s Google Analytics - workshop 16. 11. 2015
Digisemestr - Webová analytika chytře s Google Analytics - workshop 16. 11. 2015Digisemestr - Webová analytika chytře s Google Analytics - workshop 16. 11. 2015
Digisemestr - Webová analytika chytře s Google Analytics - workshop 16. 11. 2015
 
Rizika použití WordPressu
Rizika použití WordPressuRizika použití WordPressu
Rizika použití WordPressu
 
Mergado na Vyhledávače zboží 2012
Mergado na Vyhledávače zboží 2012Mergado na Vyhledávače zboží 2012
Mergado na Vyhledávače zboží 2012
 
Google Ads API vs. skripty
Google Ads API vs. skriptyGoogle Ads API vs. skripty
Google Ads API vs. skripty
 
Click it - Webová analytika chytře s Google Analytics - workshop 23. 4. 2015
Click it - Webová analytika chytře s Google Analytics - workshop 23. 4. 2015Click it - Webová analytika chytře s Google Analytics - workshop 23. 4. 2015
Click it - Webová analytika chytře s Google Analytics - workshop 23. 4. 2015
 

Jak probíhal vývoj platformy pro vývojáře

  • 1. Jak probíhal vývoj platformy pro vývojáře Pavel Dedík CTO v Mergadu
  • 2. Nástroj pro e-shopy. Pomáhá navyšovat tržby z vyhledávačů zboží. Co je to Mergado?
  • 3. Jak Mergado manipuluje s produkty? S pomocí pravidel a výběrů. Vstupní XML feed Výstupní XML feed <product> Pravidlo: CPC = 2 Kč <product> <product> <product> <product> <product> <product> <product> <product> CPC = 2 Kč <product> PRICE_VAT > 100 Kč
  • 4. Další funkce Mergada a výzvy pro vývojáře ● Převody mezi formáty XML, napojení na reklamní systémy ■ Heureka, Zboží.cz, Sklik, Google, Facebook, CJ.com, … ■ Celkově přes 50 různých formátů ● Parsování nevalidních XML ■ Vlastní parser XML ● Vlastní dotazovací jazyk ■ Mergado Query Language (MQL) ■ Deklarativní jazyk ● Real-Time analytika ■ Terabajty dat ● Audit XML
  • 5. Kde vzít nové funkce? Bohužel nerostou na stromě. Bidding PředvyplnitEAN AuditURL Monitoring Kontrola pravopisu Vyžaduje to ● Nápad ● Vývojáře ● Refaktoring ● Spoustu času
  • 6. Co kdybychom tvorbu nových funkcí zpřístupnili i externím vývojářům? ● Nové funkce by přibývaly ve formě aplikací ■ zcela oddělené od jádra Mergada ● Výhody ■ Outsourcing nových funkcí ■ Jádro se neznečišťuje novým kódem ■ Nižší nároky na údržbu a vývoj ■ Lepší použitelnost rozhraní ● Nevýhody ■ Menší dohled nad novými funkcemi ■ Vysoká počáteční investice ■ Horší použitelnost rozhraní
  • 9. Ale kde vlastně začít? ● Jak budou aplikace komunikovat s jádrem? ● Jak bude fungovat autentizace? ● Co správa oprávnění? ● Jak vývojářům platformu zpřístupnit? ● Jaké bude jejich workflow? ● Kde aplikace poběží? ● Jaké technologie budou mít vývojáři k dispozici?
  • 10. OAuth 2.0 v Mergadu (online režim) Koncový uživatel Chráněné API zdroje Autorizační server Aplikace 1. autorizační požadavek 2. autorizační kód 3. autorizační kód 4. access token 5. access token 6. chráněný zdroj
  • 11. OAuth 2.0 v Mergadu (offline režim) Chráněné API zdroje Autorizační server Aplikace 1. refresh token 2. access token 3. access token 4. chráněný zdroj ● Během povolení aplikace uživatelem si autorizační server uloží refresh token ● Ten pak aplikace použije k vyžádání access tokenu
  • 12. Mergado API v0.3.1 ● Aplikace se autorizují přes OAuth 2.0 ● Komunikace probíhá přes HTTP JSON API ● Oprávnění aplikace stanovují OAuth scopy ■ Uživatel uděluje práva (scopy) při zapnutí aplikace GET /api/users/42 Je token validní? 403 Forbidden NE Má aplikace práva číst tato data? ANO NE Má uživatel práva číst tato data? ANO 200 OK NE ANO 401 Unauthorized
  • 13. Nad rámec standardních API ● Uživatel může zapnout aplikaci pro e-shop ■ A více uživatelů může v Mergadu přistupovat k jednomu e-shopu ■ ⇒ access token se váže na entitu (na uživatele, e-shop nebo export) ● Mergado někdy komunikuje i s aplikací ■ ⇒ Aplikace potřebují mít vlastní API/webhook ● Aplikace někdy potřebují komunikovat s API periodicky ■ Zatímco uživatel není přihlášen v Mergadu
  • 14. Developers ● https://developers.mergado.com ● Centrum pro vývojáře ● K registraci a správě aplikací
  • 15. App Cloud ● Hosting pro aplikace ● MySQL, Redis, Apache, PHP ● V budoucnu Python a další jazyky App Cloud App 1 Mergado API App 2 App N App M Statistiky Analytika Pravidla Výběry Audit Elementy ProměnnéNotifikace
  • 16. Jak se aplikace zobrazuje v Mergadu? ● Primárně jako samostatná HTML stránka ■ IFRAME, kde src=”https://appcloud.mergado.com/...” MERGADO <IFRAME src=“https://appcloud...”/> <HTML> ... </HTML> </IFRAME> App: Logbook Logbook content-type: text/html App Cloud ● Sekundárně jako widget v přehledu zapnutých aplikací ■ Opět pouze HTML dokument v IFRAME
  • 17. Servis pro vývojáře aplikací ● Hosting pro aplikace zajišťuje App Cloud ○ Technologicky je však možné použít vlastní hosting ● 70 % z částky zaplacené zákazníky se vyplatí vývojáři ○ 30 % je na provoz a další vývoj platformy ● Mergado dále pomáhá vývojářům marketingově ○ Prostřednictvím blogu, e-mailingem, atd.
  • 18. Jaký je stav po roce vývoje? 73 API endpointů, rosáhlá dokumentace platformy v angličtině, 14 aplikací na produkci a 3 ve vývoji. ● Bidding Fox ● Feed Image Editor ● Pricing Rank ● Data Owl ● Weekday Bidding Booster ● … a další v Mergado Store
  • 19. Závěrem: Pár poučení a návrhů na vylepšení ● Porozumění architektury ○ návrh HTTP API má smysl teprve až v pozdějších fázích vývoje ● Neomezovat vývojáře příliš ○ začnou vymýšlet “hacky” ● Aplikace v docker kontejneru ○ jednodušší správa oprávnění, ○ jednodušší řízení zdrojů, ○ aplikace si navzájem nekradou zdroje, ○ aplikace si mohou v rámci kontejneru nainstalovat co potřebují.