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
730
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Stack Overflow - it's all about performance
Slides of the presentation given in November 2014 at Øredev
Marco Cecconi
November 07, 2014
More Decks by Marco Cecconi
See All by Marco Cecconi
Stack Overflow - It's all about performance - Codemotion Rome 2015
sklivvz
0
910
L'architettura di Stack Overflow, {codemotion} Milano 2014
sklivvz
0
710
Guerrilla Programming - code.talks 2014
sklivvz
0
720
The Architecture of Stack Overflow - Merge Lisbon 2014
sklivvz
4
430
The Architecture of Stack Overflow - Info Share 2014
sklivvz
3
680
The Architecture of Stack Overflow - Dev Sum 2014
sklivvz
2
700
The Architecture of Stack Overflow - QCon Japan 2014
sklivvz
2
260
The Architecture of StackOverflow - QCon China 2014
sklivvz
1
280
The Localization of Stack Overflow- QCon China 2014
sklivvz
1
440
Other Decks in Programming
See All in Programming
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
670
Cloudflare is Agents
chimame
0
150
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
310
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
140
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.6k
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
210
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
190
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
450
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
260
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
150
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
340
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
150
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
250
Why Our Code Smells
bkeepers
PRO
340
58k
Tell your own story through comics
letsgokoyo
1
1k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
450
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
630
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
270
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1.1k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
400
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
240
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!