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

Stack Overflow - It's all about performance - Codemotion Rome 2015

Stack Overflow - It's all about performance - Codemotion Rome 2015

Marco Cecconi

March 28, 2015
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. Oratorio

    View Slide

  4. View Slide

  5. Quasi 150 siti
    ~40º network più visitato al mondo

    View Slide

  6. View Slide

  7. View Slide

  8. 650!

    View Slide

  9. View Slide

  10. View Slide

  11. Altro “server pr0n” qui
    http://imgur.com/a/X1HoY

    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. View Slide

  22. View Slide

  23. http://stackexchange.com/performance

    View Slide

  24. Agile  

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  33. Abuso  dell’uso  della  cache  

    View Slide

  34. View Slide

  35. View Slide

  36. View Slide

  37. Il  nostro  amico/nemico:  
    Il  Garbage  Collector  

    View Slide

  38. View Slide

  39. View Slide

  40. View Slide

  41. View Slide

  42. View Slide

  43. View Slide

  44. Abusiamo della cache per aiutare il GC

    View Slide

  45. View Slide

  46. View Slide

  47. Abusiamo del compilatore per aiutare il GC

    View Slide

  48. View Slide

  49. View Slide

  50. View Slide

  51. View Slide

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

    View Slide

  53. View Slide

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

    View Slide

  55. Il  nostro  sorgente  

    View Slide

  56. View Slide

  57. View Slide

  58. View Slide

  59. View Slide

  60. View Slide

  61. View Slide

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

    View Slide

  63. Librerie  e  open  source  

    View Slide

  64. View Slide

  65. View Slide

  66. View Slide

  67. Create  librerie  di  codice  
    Rilasciatele  in  Open  Source  

    View Slide

  68. View Slide

  69. View Slide

  70. PROGRAMMAZIONE DA
    “SUPEREROI”

    View Slide

  71. View Slide

  72. LIVELLO STRUMENTI:
    HATTORI HANZŌ

    View Slide

  73. •     La  performance  è  una  feature  
    •     Always.  Be.  Shipping.  
    •     Usate  le  vostre  circostanze.  
    •     Rilasciate  O/S  le  vostre  librerie  
    •     3  monitor  grandi  da  far  schifo*.  
    *  I  miei  3  monitor  da  30”  non  fanno  schifo    
    MORALE DELLA FAVOLA

    View Slide

  74. View Slide

  75. Marco Cecconi
    @sklivvz
    http://sklivvz.com
    Stiamo assumendo 10 nuovi sviluppatori da ovunque nel mondo!

    View Slide