Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

376 views

Published on

O vývoji platformy Mergado pro vývojáře.

* http://www.mergado.cz/vyvojari-aplikaci-servis
* http://mergado.github.io/docs/

Published in: Software
  • Be the first to comment

  • Be the first to like this

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

  1. 1. Jak probíhal vývoj platformy pro vývojáře Pavel Dedík CTO v Mergadu
  2. 2. Nástroj pro e-shopy. Pomáhá navyšovat tržby z vyhledávačů zboží. Co je to Mergado?
  3. 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. 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. 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. 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í
  7. 7. Mergado jako webová aplikace Jádro Pravidla Výběry Audit XML Analytika
  8. 8. Mergado jako platforma Jádro Store Developers Aplikace
  9. 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. 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. 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. 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. 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. 14. Developers ● https://developers.mergado.com ● Centrum pro vývojáře ● K registraci a správě aplikací
  15. 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. 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. 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. 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. 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í.
  20. 20. Otázky? @paveldedik

×