Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Tales from the dark side: Eight lessons from th...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Michael Brodhead
March 13, 2012
Programming
36
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Tales from the dark side: Eight lessons from the Java world
A short talk given privately to engineers at work. Perhaps later I'll expand it.
Michael Brodhead
March 13, 2012
More Decks by Michael Brodhead
See All by Michael Brodhead
Getting started with Riak in the cloud
mkb
0
75
Other Decks in Programming
See All in Programming
phperだってパンチカードでコーディングしたい
o0h
PRO
0
330
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.1k
R8 の設定見直しでアプリサイズ削減
andpad
0
220
SREの越境 / SRE Collaboration
y0hgi
2
310
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
790
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.2k
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
160
気持ちぃ〜角丸 Squircle
ryu1013
0
310
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
380
Domain-Driven Transformation
hschwentner
2
2.3k
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
300
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
0
1.2k
Featured
See All Featured
Believing is Seeing
oripsolob
1
240
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
410
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
870
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
4 Signs Your Business is Dying
shpigford
187
23k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
600
Code Review Best Practice
trishagee
74
20k
Docker and Python
trallard
47
4.2k
Transcript
None
Tales from the dark side Eight lessons from the Java
world
• • • • • • • • Think big.
• • • • • • • • The client
is inherently untrusted.
• • • • • • • • The client
is inherently untrusted. account = Account(params[:account])
• • • • • • • • Standardize libraries.
• • • • • • • • Use concrete
interfaces.
• • • • • • • • Isolate dependencies.
• • • • • • • • Isolate dependencies.
bundle install --path vendor/bundle
• • • • • • • • Hierarchy is
your friend.
• • • • • • • • Don’t be
afraid of threads.
• • • • • • • • Use real
singletons.
• • • • • • • • Use real
singletons. Logger.debug(“OHAI”)
• • • • • • • • Use real
singletons. class MyLogger include Singleton def debug(*args) # stuff end end class BokBok def initialize(logger) @logger = logger end def eat_corn @logger.debug("NOM") # do stuff end end logger = MyLogger.instance bokbok = BokBok.new(logger)
fin
Thanks!
None
None
None
• • • • • • • • Profile your
code
• • • • • • • • Concurrency Threads,
dammit!
• • • • • • • • You can
get a long way with single inheritance
• • • • • • • • Stop putting
code in your HTML