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} ...
Search
Marco Cecconi
November 29, 2014
Programming
0
640
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
880
Stack Overflow - it's all about performance
sklivvz
2
700
Guerrilla Programming - code.talks 2014
sklivvz
0
630
The Architecture of Stack Overflow - Merge Lisbon 2014
sklivvz
4
410
The Architecture of Stack Overflow - Info Share 2014
sklivvz
3
640
The Architecture of Stack Overflow - Dev Sum 2014
sklivvz
2
600
The Architecture of Stack Overflow - QCon Japan 2014
sklivvz
2
230
The Architecture of StackOverflow - QCon China 2014
sklivvz
1
250
The Localization of Stack Overflow- QCon China 2014
sklivvz
1
370
Other Decks in Programming
See All in Programming
Qiita Bash
mercury_dev0517
1
190
エンジニア未経験が最短で戦力になるためのTips
gokana
0
260
Enterprise Web App. Development (1): Build Tool Training Ver. 5
knakagawa
1
110
Develop Faster With FrankenPHP
dunglas
2
3.2k
Kubernetesで実現できるPlatform Engineering の現在地
nwiizo
3
1.9k
AWS で実現する安全な AI エージェントの作り方 〜 Bedrock Engineer の実装例を添えて 〜 / how-to-build-secure-ai-agents
gawa
8
710
Firebase Dynamic Linksの代替手段を自作する / Create your own Firebase Dynamic Links alternative
kubode
0
230
AHC045_解説
shun_pi
0
470
[NG India] Event-Based State Management with NgRx SignalStore
markostanimirovic
1
110
Youtube Lofier - Chrome拡張開発
ninikoko
0
2.4k
サービスレベルを管理してアジャイルを加速しよう!! / slm-accelerate-agility
tomoyakitaura
1
170
Agentic Applications with Symfony
el_stoffel
2
270
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
119
51k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
GraphQLの誤解/rethinking-graphql
sonatard
71
10k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
[RailsConf 2023] Rails as a piece of cake
palkan
54
5.4k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.5k
The Cost Of JavaScript in 2023
addyosmani
49
7.7k
Thoughts on Productivity
jonyablonski
69
4.6k
Statistics for Hackers
jakevdp
798
220k
GitHub's CSS Performance
jonrohan
1030
460k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
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!