Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
L'architettura di Stack Overflow, {codemotion} Milano 2014
Search
Marco Cecconi
November 29, 2014
Programming
0
570
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
Share
More Decks by Marco Cecconi
See All by Marco Cecconi
Stack Overflow - It's all about performance - Codemotion Rome 2015
sklivvz
0
870
Stack Overflow - it's all about performance
sklivvz
2
680
Guerrilla Programming - code.talks 2014
sklivvz
0
580
The Architecture of Stack Overflow - Merge Lisbon 2014
sklivvz
4
400
The Architecture of Stack Overflow - Info Share 2014
sklivvz
3
620
The Architecture of Stack Overflow - Dev Sum 2014
sklivvz
2
530
The Architecture of Stack Overflow - QCon Japan 2014
sklivvz
2
210
The Architecture of StackOverflow - QCon China 2014
sklivvz
1
240
The Localization of Stack Overflow- QCon China 2014
sklivvz
1
270
Other Decks in Programming
See All in Programming
Good first issues of TypeProf
mame
3
500
Ruby on Fails - effective error handling with Rails conventions
talyssonoc
0
290
freeeのエンジニアが 就活で出そうな コーディングテストを 解説してみる
freee
1
160
Deep Dive into React Stream/Serialize
mugi_uno
4
860
酒飲んでたらテックリードになった話
spbaya0141
0
210
Fragment Composition of GraphQL
quramy
14
1.7k
TypeScriptのパフォーマンス改善
yajihum
14
5k
The grand strategy of Ruby Parser
yui_knk
4
270
Balkan Ruby 2024 — How and why to run SQLite on Rails in production
fractaledmind
0
110
Documentation testsの恩恵 / Documentation testing benefits
ssssota
1
550
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
10
1.9k
mb_trim関数を作りました
youkidearitai
PRO
1
190
Featured
See All Featured
Thoughts on Productivity
jonyablonski
60
3.9k
GitHub's CSS Performance
jonrohan
1025
450k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
Designing the Hi-DPI Web
ddemaree
276
33k
jQuery: Nuts, Bolts and Bling
dougneiner
60
7.2k
Rebuilding a faster, lazier Slack
samanthasiow
74
8.3k
Building an army of robots
kneath
300
41k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
A Modern Web Designer's Workflow
chriscoyier
689
190k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
34
6.1k
Transcript
Marco Cecconi @sklivvz http://sklivvz.com
ARCHITETTURA? CHE E’?
None
None
Cresciuti a 130 siti (+20%) Da 56º a 44º network
più visitato al mondo (-12)
None
*source: Quantcast, Alexa ~50º network per traffico* (fra imdb.com
e t.co)
None
None
None
None
None
None
None
None
None
None
None
None
None
http://stackexchange.com/performance
Agile
BAT!CAVERNA Ciclo scrivi-compila-testa sul computer di casa Richieste feature
DEV.SO Test su server di produzione git push BAT!CAVERNA
BAT!CAVE DEV.SO META.SE Utenti testano su meta.stackexchange.com (“baking”) git push
BAT!CAVERNA 1-click deploy
DEV.SO META.SE AZZ! git revert git push BAT!CAVERNA 1-click deploy
DEV.SO NETWORK META.SE 1-click deploy git push 1-click deploy In
produzione! Tonnellate di utenti lo usano… BAT!CAVERNA
BAT!CAVE DEV.SO NETWORK META.SE 1-click deploy git push 1-click deploy
…e richiedono nuove feature! BAT!CAVERNA
Vai veloce e scassa le cose* * Non la
home page o pagine domande :-)
Vai veloce e scassa le cose* * Non la
home page o pagine domande :-)
Abuso dell’uso della cache
None
None
None
Il nostro amico/nemico: Il Garbage Collector (“spazzin”)
None
None
None
None
None
None
Abusiamo della cache per aiutare il GC
None
None
Abusiamo del compilatore per aiutare il GC
None
None
None
None
IRepository<Order> orderRepository = container.Resolve<IRepository<Order>>();
Order order = orderRepository.Get(35); La buona, vecchia dependency injection
None
IRepository<Order> repository = new ValidatingOrderRepository (
new SecurityRepository<Order> ( new LoggingRepository<Order> ( new CachingRepository<Order> ( new NHibernateRepository<Order> () ) ) ) ); Order order = repository.Get(35);
Il nostro sorgente
None
None
None
None
None
None
YAGNI* * You Ain’t Gonna Need It!
Librerie e open source
None
None
None
Wrap code in libraries and open source it
None
None
PROGRAMMAZIONE DA “SUPEREROI”
None
LIVELLO STRUMENTI: HATTORI HANZŌ
• 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
None
Marco Cecconi @sklivvz http://sklivvz.com Stiamo assumendo nuovi ninja da ovunque
nel mondo!