L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

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

Transcript of L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

Page 1: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

Marco Cecconi @sklivvz

http://sklivvz.com

Page 2: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

ARCHITETTURA?

CHE E’?

Page 3: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 4: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 5: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

Cresciuti a 130 siti (+20%)

Da 56º a 44º network più visitato al mondo (-12)

Page 6: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 7: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

*source: Quantcast, Alexa

~50º  network  per  traffico*  

(fra imdb.com e t.co)

Page 8: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 9: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 10: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 11: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 12: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 13: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 14: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 15: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 16: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 17: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 18: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 19: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 20: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 21: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

http://stackexchange.com/performance

Page 22: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

Agile  

Page 23: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

BAT!CAVERNA

Ciclo scrivi-compila-testa sul computer di casa

Richieste feature

Page 24: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

DEV.SO

Test su server di produzione

git push

BAT!CAVERNA

Page 25: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

BAT!CAVE DEV.SO

META.SE

Utenti testano su meta.stackexchange.com

(“baking”)

git push

BAT!CAVERNA

1-click deploy

Page 26: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

DEV.SO

META.SE

AZZ!

git revert

git push

BAT!CAVERNA

1-click deploy

Page 27: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

DEV.SO

NETWORK META.SE

1-click deploy

git push

1-click deploy

In produzione! Tonnellate di utenti lo usano…

BAT!CAVERNA

Page 28: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

BAT!CAVE DEV.SO

NETWORK META.SE

1-click deploy

git push

1-click deploy

…e richiedono nuove feature!

BAT!CAVERNA

Page 29: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

Vai  veloce  e  scassa  le  cose*  

* Non la home page o pagine domande :-)

Page 30: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

Vai  veloce  e  scassa  le  cose*  

* Non la home page o pagine domande :-)

Page 31: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

Abuso  dell’uso  della  cache  

Page 32: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 33: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 34: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 35: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

Il  nostro  amico/nemico:  Il  Garbage  Collector  

(“spazzin”)  

Page 36: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 37: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 38: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 39: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 40: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 41: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 42: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

Abusiamo della cache per aiutare il GC

Page 43: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 44: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 45: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

Abusiamo del compilatore per aiutare il GC

Page 46: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 47: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 48: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 49: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 50: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

IRepository<Order>  orderRepository  =            container.Resolve<IRepository<Order>>();    Order  order  =  orderRepository.Get(35);

La buona, vecchia dependency injection

Page 51: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 52: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

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

Page 53: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

Il  nostro  sorgente  

Page 54: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 55: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 56: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 57: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 58: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 59: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 60: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

YAGNI*  

* You Ain’t Gonna Need It!

Page 61: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

Librerie  e  open  source  

Page 62: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 63: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 64: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 65: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

Wrap  code  in  libraries    and  open  source  it  

Page 66: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 67: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 68: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

PROGRAMMAZIONE DA “SUPEREROI”

Page 69: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 70: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

LIVELLO STRUMENTI: HATTORI HANZŌ

Page 71: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

•     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

Page 72: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
Page 73: L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

Marco Cecconi @sklivvz

http://sklivvz.com

Stiamo assumendo nuovi ninja da ovunque nel mondo!