ݺߣ

ݺߣShare a Scribd company logo
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=/slideshow/jak-probhal-vvoj-platformy-pro-vvoje/72655651/”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 (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
Nuril anwar
DST 251 Chapter Expert Peters 6
DST 251 Chapter Expert Peters 6DST 251 Chapter Expert Peters 6
DST 251 Chapter Expert Peters 6
Kaylee Teixeira
Propuesta para la inversion del sector publicoPropuesta para la inversion del sector publico
Propuesta para la inversion del sector publico
Sandra Magdalena Perez Hernandez
Abp sessió 7
Abp sessió 7Abp sessió 7
Abp sessió 7
eesther_chups
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
jose julian gonzalez lopez
5. pre production(2)
5. pre production(2)5. pre production(2)
5. pre production(2)
Jordannekay99
1. initial plans(2)
1. initial plans(2)1. initial plans(2)
1. initial plans(2)
Jordannekay99
7. evaluation(3)
7. evaluation(3)7. evaluation(3)
7. evaluation(3)
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 partagesChoisir ses réseaux sociaux et ses sites de partages
Choisir ses réseaux sociaux et ses sites de partages
REALIZ
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
Natasha Murashev
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
Nuril anwar
DST 251 Chapter Expert Peters 6
DST 251 Chapter Expert Peters 6DST 251 Chapter Expert Peters 6
DST 251 Chapter Expert Peters 6
Kaylee Teixeira
Propuesta para la inversion del sector publicoPropuesta para la inversion del sector publico
Propuesta para la inversion del sector publico
Sandra Magdalena Perez Hernandez
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
jose julian gonzalez lopez
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 partagesChoisir ses réseaux sociaux et ses sites de partages
Choisir ses réseaux sociaux et ses sites de partages
REALIZ

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
BESTETO
Používejte Google Analytics chytře
Používejte Google Analytics chytřePoužívejte Google Analytics chytře
Používejte Google Analytics chytře
پDZý-±.
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
Vladimí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átora
Michal 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ýra
Jiří Mareš
Jak na Smartlook, nejen pro Shoptet
Jak na Smartlook, nejen pro ShoptetJak na Smartlook, nejen pro Shoptet
Jak na Smartlook, nejen pro Shoptet
Marek Čech
Enhanced Ecommerce
Enhanced EcommerceEnhanced Ecommerce
Enhanced Ecommerce
Taste 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 webu
Akce 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 analytika
Taste 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. 2015
Sun Marketing
Rizika použití WordPressu
Rizika použití WordPressuRizika použití WordPressu
Rizika použití WordPressu
SUPERKODERS
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
Michal Janík
Google Ads API vs. skripty
Google Ads API vs. skriptyGoogle Ads API vs. skripty
Google Ads API vs. skripty
Taste 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. 2015
Sun Marketing
Rozdíl mezi webovou analytikou a počítadlem návštěvnosti
Rozdíl mezi webovou analytikou a počítadlem návštěvnostiRozdíl mezi webovou analytikou a počítadlem návštěvnosti
Rozdíl mezi webovou analytikou a počítadlem návštěvnosti
Jakub Kašparů
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
BESTETO
Používejte Google Analytics chytře
Používejte Google Analytics chytřePoužívejte Google Analytics chytře
Používejte Google Analytics chytře
پDZý-±.
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
Vladimír Smitka
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
Michal 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ýra
Jiří Mareš
Jak na Smartlook, nejen pro Shoptet
Jak na Smartlook, nejen pro ShoptetJak na Smartlook, nejen pro Shoptet
Jak na Smartlook, nejen pro Shoptet
Marek Čech
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 webu
Akce 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 analytika
Taste 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. 2015
Sun Marketing
Rizika použití WordPressu
Rizika použití WordPressuRizika použití WordPressu
Rizika použití WordPressu
SUPERKODERS
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
Michal Janík
Google Ads API vs. skripty
Google Ads API vs. skriptyGoogle Ads API vs. skripty
Google Ads API vs. skripty
Taste 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. 2015
Sun Marketing
Rozdíl mezi webovou analytikou a počítadlem návštěvnosti
Rozdíl mezi webovou analytikou a počítadlem návštěvnostiRozdíl mezi webovou analytikou a počítadlem návštěvnosti
Rozdíl mezi webovou analytikou a počítadlem návštěvnosti
Jakub Kašparů

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=/slideshow/jak-probhal-vvoj-platformy-pro-vvoje/72655651/”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í.