$30 off During Our Annual Pro Sale. View Details »

L'architettura di Stack Overflow, {codemotion} Milano 2014

L'architettura di Stack Overflow, {codemotion} Milano 2014

L'architettura di Stack Overflow, presentata a {codemotion} Milano in Novembre 2014.

Marco Cecconi

November 29, 2014
Tweet

More Decks by Marco Cecconi

Other Decks in Programming

Transcript

  1. Marco Cecconi
    @sklivvz
    http://sklivvz.com

    View Slide

  2. ARCHITETTURA?
    CHE E’?

    View Slide

  3. View Slide

  4. View Slide

  5. Cresciuti a 130 siti (+20%)
    Da 56º a 44º network più visitato al mondo (-12)

    View Slide

  6. View Slide

  7. *source: Quantcast, Alexa
    ~50º  network  per  traffico*  
    (fra imdb.com e t.co)

    View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. View Slide

  12. View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. View Slide

  18. View Slide

  19. View Slide

  20. View Slide

  21. http://stackexchange.com/performance

    View Slide

  22. Agile  

    View Slide

  23. BAT!CAVERNA
    Ciclo scrivi-compila-testa
    sul computer di casa
    Richieste feature

    View Slide

  24. DEV.SO
    Test su server di produzione
    git push
    BAT!CAVERNA

    View Slide

  25. BAT!CAVE DEV.SO
    META.SE
    Utenti testano su
    meta.stackexchange.com
    (“baking”)
    git push
    BAT!CAVERNA
    1-click deploy

    View Slide

  26. DEV.SO
    META.SE
    AZZ!
    git revert
    git push
    BAT!CAVERNA
    1-click deploy

    View Slide

  27. DEV.SO
    NETWORK META.SE
    1-click deploy
    git push
    1-click
    deploy
    In produzione!
    Tonnellate di utenti lo usano…
    BAT!CAVERNA

    View Slide

  28. BAT!CAVE DEV.SO
    NETWORK META.SE
    1-click deploy
    git push
    1-click
    deploy
    …e richiedono
    nuove feature!
    BAT!CAVERNA

    View Slide

  29. Vai  veloce  e  scassa  le  cose*  
    * Non la home page o pagine domande :-)

    View Slide

  30. Vai  veloce  e  scassa  le  cose*  
    * Non la home page o pagine domande :-)

    View Slide

  31. Abuso  dell’uso  della  cache  

    View Slide

  32. View Slide

  33. View Slide

  34. View Slide

  35. Il  nostro  amico/nemico:  
    Il  Garbage  Collector  
    (“spazzin”)  

    View Slide

  36. View Slide

  37. View Slide

  38. View Slide

  39. View Slide

  40. View Slide

  41. View Slide

  42. Abusiamo della cache per aiutare il GC

    View Slide

  43. View Slide

  44. View Slide

  45. Abusiamo del compilatore per aiutare il GC

    View Slide

  46. View Slide

  47. View Slide

  48. View Slide

  49. View Slide

  50. IRepository  orderRepository  =    
           container.Resolve>();  
     
    Order  order  =  orderRepository.Get(35);
    La buona, vecchia dependency injection

    View Slide

  51. View Slide

  52. IRepository  repository  =  
       new  ValidatingOrderRepository  (  
           new  SecurityRepository  (  
               new  LoggingRepository  (  
                   new  CachingRepository  (  
                       new  NHibernateRepository  ()  
                   )  
               )  
           )  
       );  
         
    Order  order  =  repository.Get(35);

    View Slide

  53. Il  nostro  sorgente  

    View Slide

  54. View Slide

  55. View Slide

  56. View Slide

  57. View Slide

  58. View Slide

  59. View Slide

  60. YAGNI*  
    * You Ain’t Gonna Need It!

    View Slide

  61. Librerie  e  open  source  

    View Slide

  62. View Slide

  63. View Slide

  64. View Slide

  65. Wrap  code  in  libraries    
    and  open  source  it  

    View Slide

  66. View Slide

  67. View Slide

  68. PROGRAMMAZIONE DA
    “SUPEREROI”

    View Slide

  69. View Slide

  70. LIVELLO STRUMENTI:
    HATTORI HANZŌ

    View Slide

  71. •     La  performance  è  una  feature  
    •     Always.  Be.  Shipping.  
    •     Usate  le  vostre  circostanze.  
    •     Rilasciate  O/S  le  vostre  librerie  
    •     3  monitor  grandi  da  far  schifo.    
    MORALE DELLA FAVOLA

    View Slide

  72. View Slide

  73. Marco Cecconi
    @sklivvz
    http://sklivvz.com
    Stiamo assumendo nuovi ninja da ovunque nel mondo!

    View Slide