Skip to content

Instantly share code, notes, and snippets.

@diegoeis
Created August 25, 2014 13:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save diegoeis/f0bdfcbb53aad7dfb32f to your computer and use it in GitHub Desktop.
Save diegoeis/f0bdfcbb53aad7dfb32f to your computer and use it in GitHub Desktop.
Frontend at Scale - The Tumblr Story

Frontend at Scale - The Tumblr Story

Chris Miller

BrazilJS 2014

  • O Tumblr é uma maneira de se expressar
  • você pode fazer blogs, sites, o que quiser para expressar sua opinião, seus gostos etc.
  • Tres maneiras de entrar em contato com seu conteúdo: Dashbaord. Search. BLog Network.
  • O Blog é seu espaço. Você pode fazer seu próprio design, código e até javascript.
  • Front-end Stack: Backbone (+iodash, underscore), SASS (+boubon), Jquey, Gulp, VelocityJS
  • Back-end Stack: PHP, Serviços especificos em Scala, C, etc. MySQL, Redis, memcache, HDFS
  • O Tumblr tem mais de 1000 servidores.
  • Deploy várias vezes ao dia. (Coisa linda.)
  • Times pequenos.
  • 2 Code reviews OKs para estar ok e subir um PULL REQUEST.
  • Testes de features funcionam quando se segregam usuários para features específicas
  • Eles controlam quem e quando cada usuário poderá ver uma determinada feature.
  • O teste A/B deles também é interessante, porque o importante é saber ONDE colocar um determinado botão, por exemplo? Logo eles colocam um detemrinado botão em diversas posições para vários usuários e medem qual está trazendo mais resultados. Se a posição 2 traz mais resultados que a posição 5, ela fica e a outra sai.
  • Novas features do dashboard são deploiadas para os admins "staff" primeiro, depois para 1% dos usuários, depois 5%, 10%, 25% e assim por diante.
  • Suba com cuidado features que dependem de outras features e misturam as suas experiências.
  • Novas features tem bugs, normalmente... Erros Server-side são simples de identificar, mas o problema são os erros no client-side.
  • Na verdade erros client-side são fáceis de achar, mas tem muitas variantes, browsers, dispositivos, sistemas operacionais etc...
  • Eles construíram um exceptions.js, que usa o window.onerror, que avisa toda vez quando uma página quebra.
  • Este exceptions.js precisa ser livre de dependencias, logo, sem JQuery.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment