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
The Best Library I Ever Designed
Search
Andrea Leopardi
May 04, 2017
Programming
1
240
The Best Library I Ever Designed
Andrea Leopardi
May 04, 2017
Tweet
Share
More Decks by Andrea Leopardi
See All by Andrea Leopardi
The World is a Network (and We Are Just Nodes)
whatyouhide
0
190
BEAM: The Perfect Fit for Networks
whatyouhide
1
170
Update from the Elixir team - 2022
whatyouhide
0
380
Testing Asynchronous OTP
whatyouhide
0
490
Elixir Sightseeing Tour
whatyouhide
0
400
Mint - Disrupting HTTP clients
whatyouhide
0
230
BEAM Architecture Handbook
whatyouhide
7
2.7k
The Evolution of a Language
whatyouhide
0
140
Elixir - functional, concurrent, distributed programming for the rest of us
whatyouhide
2
310
Other Decks in Programming
See All in Programming
もう僕は OpenAPI を書きたくない
sgash708
6
1.9k
Honoをフロントエンドで使う 3つのやり方
yusukebe
7
3.6k
SwiftUI Viewの責務分離
elmetal
PRO
2
280
ファインディLT_ポケモン対戦の定量的分析
fufufukakaka
0
940
Kotlinの開発でも AIをいい感じに使いたい / Making the Most of AI in Kotlin Development
kohii00
5
1.4k
Djangoにおける複数ユーザー種別認証の設計アプローチ@DjangoCongress JP 2025
delhi09
PRO
4
500
AWS Step Functions は CDK で書こう!
konokenj
4
600
Boos Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
460
ML.NETで始める機械学習
ymd65536
0
230
機能が複雑化しても 頼りになる FactoryBotの話
tamikof
1
220
CloudNativePGを布教したい
nnaka2992
0
120
苦しいTiDBへの移行を乗り越えて快適な運用を目指す
leveragestech
0
1.1k
Featured
See All Featured
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
4 Signs Your Business is Dying
shpigford
183
22k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
430
Building a Scalable Design System with Sketch
lauravandoore
461
33k
Raft: Consensus for Rubyists
vanstee
137
6.8k
Done Done
chrislema
182
16k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Designing for humans not robots
tammielis
250
25k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
Transcript
LIbRarY DEsiGnED tHe bESt I evER
WhAT HOw
@wHatYOuhIDe
FORZA FOOTBALL
None
WhAT HOw
WhAT
abStRacT
abStRacT COmPleX cODe
abStRacT PAtTerNs/IDeAs
TwO TyPEs OF liBrARiEs
"leT mE HanDlE ThiS fOR yoU"
{:ok, conn} = Redix.start_link() Redix.command(conn, ["GET", "my_key"]) #=> {:ok, "my_value"}
"HEre'S hOW yoU HanDlE ThiS"
Saul.validate( some_data, one_of([&is_ref/1, &is_pid/1]) )
leT mE HanDlE ThiS fOR yoU heRE's How YOu hANdLe
tHIs
HOw
EXteNsIBle
buILt-iN 80 exTEnSibLE 20
Mix.Shell Mix.Shell.IO Mix.Shell.Process Mix.Shell.Quiet
geT Out OF poINtS
LAw oF ABsTrACtiONs LEakY
fragment( "lower(?)", post.title )
COmPosABle
LAnGuAge FEatURes USe
sTreAMs
Xandra.stream_pages!(query) |> Task.async_stream(mapper) |> Enum.reduce(acc, fun)
EXisTInG cONveNtIoNs KnOW
{:ok, term} {:error, term}
FOcuSEd coMpOSabLE <3
EaSy USe TO
coNsISteNt pRinCIpLe Of LeAsT asTOniShMEnT
TrANsParENt ThIN enOuGh ThAT yoU Can SEe ThROugH
{:ok, socket} = :gen_tcp.connect GrEaT ErRorS
DOcuME nTatIoN
WrITe dOCs FOr YoUr FutURe sELf
WhAT HOw
@wHatYOuhIDe