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
550
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
570
The Architecture of Stack Overflow - Merge Lisbon 2014
sklivvz
4
390
The Architecture of Stack Overflow - Info Share 2014
sklivvz
3
620
The Architecture of Stack Overflow - Dev Sum 2014
sklivvz
2
520
The Architecture of Stack Overflow - QCon Japan 2014
sklivvz
2
210
The Architecture of StackOverflow - QCon China 2014
sklivvz
1
230
The Localization of Stack Overflow- QCon China 2014
sklivvz
1
260
Other Decks in Programming
See All in Programming
デザインシステムで Tailwind CSSとCSS in JSに分散投資をしたら良かった話
fsubal
14
3.4k
PHPerKaigi 2024〜10年以上動いているレガシーなバッチシステムを Kubernetes(Amazon EKS) に移行する取り組み〜
tshinowpub
1
220
クソコード動画『カプセル化 Mk-II』 で考える 上手くカプセル化できない理由 / encapsulation2
minodriven
11
8k
オブジェクト指向コードレビューの新しいアプローチ
akkie76
3
1.5k
Data Contracts In Practice With Debezium and Apache Flink (Kafka Summit London)
gunnarmorling
2
280
MySQL のインデックスの種類をおさらいしよう! / overviewing indexes in MySQL
okashoi
0
170
Honoとhtmx
yusukebe
6
1.2k
Deep Dive 大規模システムアーキテクチャ/開発組織エンジニアリング / Deep Dive Large-Scale System Architecture, Development Organization Engineering
nrslib
15
2.9k
Why 1 + 1 = 2 in Swift?
1plus4
1
250
Material 3で Material 2ぽい見た目にする
numeroanddev
2
250
DDD, necessary but insufficient: physical design principles for microservices
cer
PRO
0
2.2k
コミュニティに参加したことで起きた変化
ohmori_yusuke
3
130
Featured
See All Featured
Ruby is Unlike a Banana
tanoku
95
10k
Scaling GitHub
holman
456
140k
Imperfection Machines: The Place of Print at Facebook
scottboms
257
12k
The Art of Programming - Codeland 2020
erikaheidi
40
12k
Unsuck your backbone
ammeep
661
56k
No one is an island. Learnings from fostering a developers community.
thoeni
14
2k
Automating Front-end Workflow
addyosmani
1353
200k
Done Done
chrislema
178
15k
Fireside Chat
paigeccino
19
2.6k
Code Review Best Practice
trishagee
54
15k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.2k
Optimizing for Happiness
mojombo
369
69k
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!