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
Stack Overflow - it's all about performance
Search
Marco Cecconi
November 07, 2014
Programming
2
700
Stack Overflow - it's all about performance
Slides of the presentation given in November 2014 at Øredev
Marco Cecconi
November 07, 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
L'architettura di Stack Overflow, {codemotion} Milano 2014
sklivvz
0
630
Guerrilla Programming - code.talks 2014
sklivvz
0
620
The Architecture of Stack Overflow - Merge Lisbon 2014
sklivvz
4
400
The Architecture of Stack Overflow - Info Share 2014
sklivvz
3
640
The Architecture of Stack Overflow - Dev Sum 2014
sklivvz
2
590
The Architecture of Stack Overflow - QCon Japan 2014
sklivvz
2
220
The Architecture of StackOverflow - QCon China 2014
sklivvz
1
240
The Localization of Stack Overflow- QCon China 2014
sklivvz
1
350
Other Decks in Programming
See All in Programming
Bedrock Agentsレスポンス解析によるAgentのOps
licux
3
900
Honoとフロントエンドの 型安全性について
yodaka
7
1.4k
AIの力でお手軽Chrome拡張機能作り
taiseiue
0
190
Datadog DBMでなにができる? JDDUG Meetup#7
nealle
0
130
昭和の職場からアジャイルの世界へ
kumagoro95
1
420
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
120
Flutter × Firebase Genkit で加速する生成 AI アプリ開発
coborinai
0
170
DROBEの生成AI活用事例 with AWS
ippey
0
140
Formの複雑さに立ち向かう
bmthd
1
910
.NET Frameworkでも汎用ホストが使いたい!
tomokusaba
0
190
Honoをフロントエンドで使う 3つのやり方
yusukebe
7
3.5k
PHP ステートレス VS ステートフル 状態管理と並行性 / php-stateless-stateful
ytake
0
110
Featured
See All Featured
Making Projects Easy
brettharned
116
6k
Practical Orchestrator
shlominoach
186
10k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
The Invisible Side of Design
smashingmag
299
50k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Code Reviewing Like a Champion
maltzj
521
39k
Rails Girls Zürich Keynote
gr2m
94
13k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
133
33k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
250
A Philosophy of Restraint
colly
203
16k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
GraphQLとの向き合い方2022年版
quramy
44
13k
Transcript
Marco Cecconi @sklivvz http://sklivvz.com
ARCHITECTURE? WHAT THE HECK IS THAT?
None
None
Grew to 130 sites (+20%) Global site rank went from
#56 to #44 (-12)
None
*source: Quantcast, Alexa #50-‐ish network for traffic* (between imdb.com
and t.co)
None
None
None
None
None
None
None
None
None
None
None
None
None
http://stackexchange.com/performance
Agile
BAT!CAVE Code-build-test cycle running on home machine feature requests
BAT!CAVE DEV.SO Test on the real servers git push
BAT!CAVE DEV.SO META.SE 1-click deploy Users test on meta.stackexchange.com (“baking”)
git push
BAT!CAVE DEV.SO META.SE 1-click deploy HALP! git revert git push
BAT!CAVE DEV.SO NETWORK META.SE 1-click deploy git push 1-click deploy
It’s live! Tons of users use it…
BAT!CAVE DEV.SO NETWORK META.SE 1-click deploy git push 1-click deploy
…and provide new feature requests
Move fast and break things* * Not the home
page or question page :-)
Move fast and break things* * Not the home
page or question page :-)
Abusing caching
None
None
None
Our frienemy: The Garbage Collector
None
None
None
None
None
None
Cache abuse to help GC
None
None
Compiler abuse to help GC
None
None
None
None
IRepository<Order> orderRepository = container.Resolve<IRepository<Order>>();
Order order = orderRepository.Get(35); Ye olde 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);
Our source code
None
None
None
None
None
None
YAGNI* * You Ain’t Gonna Need It!
Libraries and open source
None
None
None
Wrap code in libraries and open source it
None
None
“SUPERHERO” CODING
None
TOOLS LEVEL: “NINJA”
• Performance is a feature • Always.
Be. Shipping. • Use your circumstances. • Open source your libraries • 3 obscenely big monitors. KEY TAKEAWAYS
None
Marco Cecconi @sklivvz http://sklivvz.com we are hiring new ninjas from
anywhere in the world!