Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

3fd9e5b2c59170ec3d74dde30d233fa4?s=128

Marco Cecconi

March 28, 2015
Tweet

Transcript

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

  2. ARCHITETTURA? CHE E’?

  3. Oratorio

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

  6. None
  7. None
  8. 650!

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

  12. None
  13. None
  14. None
  15. None
  16. None
  17. None
  18. None
  19. None
  20. None
  21. None
  22. None
  23. http://stackexchange.com/performance

  24. Agile  

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

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

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

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

  29. DEV.SO NETWORK META.SE 1-click deploy git push 1-click deploy In

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

    …e richiedono nuove feature! BAT!CAVERNA
  31. Vai  veloce  e  scassa  le  cose*   * Non la

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

    home page o pagine domande :-)
  33. Abuso  dell’uso  della  cache  

  34. None
  35. None
  36. None
  37. Il  nostro  amico/nemico:   Il  Garbage  Collector  

  38. None
  39. None
  40. None
  41. None
  42. None
  43. None
  44. Abusiamo della cache per aiutare il GC

  45. None
  46. None
  47. Abusiamo del compilatore per aiutare il GC

  48. None
  49. None
  50. None
  51. None
  52. IRepository<Order>  orderRepository  =            container.Resolve<IRepository<Order>>();  

      Order  order  =  orderRepository.Get(35); La buona, vecchia dependency injection
  53. None
  54. IRepository<Order>  repository  =      new  ValidatingOrderRepository  (    

         new  SecurityRepository<Order>  (              new  LoggingRepository<Order>  (                  new  CachingRepository<Order>  (                      new  NHibernateRepository<Order>  ()                  )              )          )      );         Order  order  =  repository.Get(35);
  55. Il  nostro  sorgente  

  56. None
  57. None
  58. None
  59. None
  60. None
  61. None
  62. YAGNI*   * You Ain’t Gonna Need It!

  63. Librerie  e  open  source  

  64. None
  65. None
  66. None
  67. Create  librerie  di  codice   Rilasciatele  in  Open  Source  

  68. None
  69. None
  70. PROGRAMMAZIONE DA “SUPEREROI”

  71. None
  72. LIVELLO STRUMENTI: HATTORI HANZŌ

  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
  74. None
  75. Marco Cecconi @sklivvz http://sklivvz.com Stiamo assumendo 10 nuovi sviluppatori da

    ovunque nel mondo!