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
Option Type
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
wagyu298
June 01, 2016
Programming
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Option Type
Swift Option Type pitfalls
wagyu298
June 01, 2016
More Decks by wagyu298
See All by wagyu298
Swagger Codegen
wagyu298
1
2.8k
HTTP/2 Mobile
wagyu298
0
1k
Android VM
wagyu298
0
760
process.nextTick differences between node-v0.8 and node-v0.11
wagyu298
1
1.9k
Other Decks in Programming
See All in Programming
MIZARU@SPAJAM2026 第二回予選
1901drama
0
110
書籍「プロフェッショナルAI駆動開発」紹介スライド
juntaromatsumoto
0
1k
Building an Out-of-Order CPU
latte72
0
710
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
4
1.1k
自分的「カンファレンスの楽しみ方」
syumai
0
190
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
160
高専、大学編入、そして未踏へ〜プロダクト開発とキャリアの歩み - Technical College, University Transfer, and On to “Mitou” / My Journey in Product Development and Career
pkmiya
0
140
AIの中の人になってみる
htkym
0
170
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
440
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
210
バグを直したら useEffect が消えた
colorful12
3
840
AIエージェント時代のコードレビューを設計する
nogu66
6
2.5k
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
67
58k
Claude Code のすすめ
schroneko
67
230k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
310
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
400
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
320
How to make the Groovebox
asonas
2
2.4k
The Curse of the Amulet
leimatthew05
2
14k
Building Applications with DynamoDB
mza
96
7.2k
Transcript
0QUJPO5ZQF !XBHZV
ࠓͷϙΠϯτ w ओʹ4XJGUͷ͠·͢ w ࠷ۙͷ/VMM͕ೖͰ͖ͳ͍ϓϩάϥϛϯάݴޠ͕૿͑ͯΔ w )BTLFMM 4DBMB ' 3VTU
4XJGU ,PUMJO FUD w ࣮ݱ͢ΔΈͷҰ͕ͭ0QUJPO5ZQF w ʢ4XJGUͰ0QUJPOBMɺ,PUMJOͰ/VMMBCMFͱݴ͍·͢ʣ w ࠷ۙͷྲྀߦΓͳͷͰ+BWB4DSJQUͱ͔ʹ͖͡ʹೖΔ͔ w ϥΠϒϥϦϕʔεͩͱOPEFPQUJPOTͱ͔͋ΔΜ͚ͩͲݴޠαϙʔτ͕ͳ͍ ͱ͠ΜͲ͍ w ͬͯΈΔͱͪΐ͍ͪΐ͍τϥοϓ͕͋ΔͷͰͦͷลΛڞ༗
CJMMJPOEPMMBSNJTUBLF w *DBMMJUNZCJMMJPOEPMMBSNJTUBLF*UXBTUIFJOWFOUJPOPGUIFOVMMSFGFSFODFJO"U UIBUUJNF *XBTEFTJHOJOHUIFpSTUDPNQSFIFOTJWFUZQFTZTUFNGPSSFGFSFODFTJOBO PCKFDUPSJFOUFEMBOHVBHF "-(0-8 .ZHPBMXBTUPFOTVSFUIBUBMMVTFPGSFGFSFODFT TIPVMECFBCTPMVUFMZTBGF XJUIDIFDLJOHQFSGPSNFEBVUPNBUJDBMMZCZUIFDPNQJMFS#VU*
DPVMEOUSFTJTUUIFUFNQUBUJPOUPQVUJOBOVMMSFGFSFODF TJNQMZCFDBVTFJUXBTTPFBTZ UPJNQMFNFOU5IJTIBTMFEUPJOOVNFSBCMFFSSPST WVMOFSBCJMJUJFT BOETZTUFNDSBTIFT XIJDIIBWFQSPCBCMZDBVTFEBCJMMJPOEPMMBSTPGQBJOBOEEBNBHFJOUIFMBTUGPSUZZFBST w ͦΕԯυϧʹ૬͢ΔࢲͷޡΓͩɻOVMMࢀরΛൃ໌ͨ͠ͷͷ͜ͱͩͬͨɻ࣌ɺ ࢲΦϒδΣΫτࢦݴޠ "-(0-8 ʹ͓͚ΔࢀরͷͨΊͷแׅతܕγεςϜΛઃܭ͍ͯͨ͠ɻ ඪɺίϯύΠϥͰͷࣗಈνΣοΫͰશͯͷࢀর͕શʹ҆શͰ͋Δ͜ͱΛอূ͢Δ͜ͱͩͬ ͨɻ͔͠͠ɺࢲ୯ʹͦΕ͕༰қͩͱ͍͏͚ͩͰɺແޮͳࢀরΛؚΊΔ༠ʹ߅Ͱ͖ͳ͔ͬͨɻ ͜Εɺޙʹ͑Εͳ͍աͪɺ੬ऑੑɺγεςϜΫϥογϡΛҾ͖ى͜͠ɺաڈؒͰ ԯυϧ૬ͷۤ௧ͱଛΛҾ͖ىͨ͜͠ͱΈΒΕΔɻ w IUUQXXXJOGPRDPNQSFTFOUBUJPOT/VMM3FGFSFODFT5IF#JMMJPO%PMMBS.JTUBLF5POZ )PBSF
4XJGU w 4XJGUJTBHFOFSBMQVSQPTFQSPHSBNNJOH MBOHVBHFCVJMUVTJOHBNPEFSOBQQSPBDIUP TBGFUZ QFSGPSNBODF BOETPGUXBSFEFTJHO QBUUFSOT w IUUQTTXJGUPSHBCPVU
ҎԼɺ4XJGUͷσϞΛ ަ͑ͳ͕Βߦ͖·͢
/VMMFSSPS w 4XJGUͷී௨ OPOPQUJPOBM ͷม/VMMඇڐ༰Ͱ͢ w 4XJGUͰOJM͕/VMMͰ͢ w OJMΛมʹೖ͢ΔͱΤϥʔʹͳΓ·͢ w
దʹ4XJGU৮Δͱଟ࠷ॳʹૺ۰͢ΔίϯύΠϥΤϥʔ w Α͔ͬͯ͘ͳ͍ͱΠϥΠϥ͢Δ w 4XJGUݴޠʹΈࠐ·Ε͍ͯΔػೳͰ͢
/VMMFSSPS WBSTUS4USJOHOJM
ॳظԽ w มඇOJMͰॳظԽ͠·͢ w ʢͪͳΈʹ4XJGUͰWBS͕WBSJBCMFɺMFU͕ DPOTUBOUͳͷͰ͕͢ɺҰൠతͳมʗఆͱ؆୯ ʹଊ͑Δͱ৭ʑ͍͕͋͜͠Γ·͢ͷͰɺWBS MFUΛ۠ผͤͣมͱදه͍ͯ͠·͢ʣ
ॳظԽ WBSTUS4USJOHl999z
0QUJPOBM w OJMͰॳظԽ͍ͨ͠߹0QUJPOBMܕมΛ༻ ͠·͢ w ܕͷޙΖʹ Λ͚Δͱ0QUJPOBMܕมʹͳΓ· ͢
0QUJPOBM WBSTUS4USJOH OJM QSJOU TUS
0QUJPOBM w ඇ0QUJPOBMܕมʹ0QUJPOBMܕมΛೖ͢Δ ͜ͱͰ͖·ͤΜ w 4XJGUΛͬͯదʹίʔσΟϯά͢Δͱଟ࠷ॳ ʹૺ۰͢Δҙຯෆ໌ͳίϯύΠϥΤϥʔ
0QUJPOBM GVODG TUS4USJOH \ QSJOU TUS ^ WBSTUS4USJOH OJM
G TUS
6OXSBQ w 0QUJPOBMܕม͔Βඇ0QUJPOBMܕͷΛऔΓग़ ͢͜ͱΛ4XJGUͰ6OXSBQͱݺͼ·͢ɻ w 6OXSBQ͢Δʹ0QUJPOBMܕมͷޙΖʹΛ ͚·͢ɻ
6OXSBQ GVODG TUS4USJOH \ QSJOU TUS ^ WBSTUS4USJOH """
G TUS
0QUJPOBM$IBJOJOH w 0QUJPOBMܕมͷϝϯό 1SPQFSUZNFUIPE ʹ ҆શʹΞΫηε͢Δํ๏Ͱ͢ɻ w 0QUJPOBMมͷޙΖʹ Λ͚ͯϝϯόʹΞΫη ε͢ΔͱɺOJMඇOJMΘͣϝϯόʹΞΫηεͰ͖
·͢ɻ
0QUJPOBM$IBJOJOH DMBTT5\ WBSTUS4USJOH999 ^ WBSU5 5 WBSTUSU TUS QSJOU
TUS UOJM TUSU TUS QSJOU TUS
0QUJPOBM$IBJOJOH w 0QUJPOBM$IBJOJOH͕ฦ͢0QUJPOBMܕʹͳΓ ·͢ w 0QUJPOBM$IBJOJOHͰऔಘͨ͠Λඇ0QUJPOBMܕ มඇ0QUJPOBMܕҾΛड͚औΔؔʹͦ͏ ͱ͢ΔͱίϯύΠϧΤϥʔ͕ൃੜ͠·͢ w 4XJGU͕͔͖ͬͯͨͱࢥ͏͜Ζʹૺ۰͢Δͱࢥ
͍·͢
0QUJPOBM$IBJOJOH DMBTT5\ WBSTUS4USJOH999 ^ GVODG T4USJOH \ QSJOU T
^ WBSU5 5 G U TUS
0QUJPOBM$IBJOJOH w ༨ஊͰ͕͢ w ͋͘·Ͱ0QUJPOBM$IBJOJOHͳͷͰඌ ʹ͚Ε·ͤΜ w $P⒎FF4DSJQUॻ͍ͯΔͱΑ͔͘Βͳ͘ͳΔ w 6OXSBQͳͷ͚Ε·͢
0QUJPOBM$IBJOJOH DMBTT5\ WBST4USJOH 99 ^ WBSD5 WBSTDT WBSUDT
JGMFUHVBSEFMTF w 0QUJPOBMܕͷม0QUJPOBM$IBJOJOHͨ͠ʹ ҆શʹΞΫηε͍ͨ͠߹JGMFU͔HVBSEFMTF ߏจ͕ศརͰ͢
JGMFU DMBTT5\ WBSTUS4USJOH999 ^ GVODG T4USJOH \ QSJOU T
^ WBSU5 5 JGMFUTU TUS\ G T ^
HVBSEFMTF GVODG T4USJOH \ HVBSEMFUUTFMTF\ SFUVSO ^ QSJOU U
^ G OJM
*NQMJDJUMZ6OXSBQQFE 0QUJPOBM w *NQMJDJUMZ҉త w ͱ͔ Λॻ͔ͳͯ͘ɺ҉తʹ6OXSBQ͞Ε Δ0QUJPOBMܕͷ͜ͱͰ͢
*NQMJDJUMZ6OXSBQQFE 0QUJPOBM WBST4USJOHOJM JGTOJM\ QSJOU T ^
NPOBE w 0QUJPOBMܕʹNBQͱqBU.BQͱ͍͏ϝιου ͕ఆٛ͞Ε͍ͯ·͢ɻ w NBQ0QUJPOBMܕม͕ඇOJMΛ࣋ͭ߹ʹؔ Λద༻͠0QUJPOBMܕͰฦ͠·͢ɻ w qBU.BQ0QUJPOBMܕม͕ඇOJMΛ࣋ͭ߹ʹ ؔΛద༻͠ඇ0QUJPOBMܕͰฦ͠·͢ɻ
NPOBE WBST4USJOH 999 WBSUTNBQ\ """ ^ QSJOU U
UTqBU.BQ\ """ ^ QSJOU U WBSVTNBQ\ 0QUJPOBM4USJOH """ ^ QSJOU V UTqBU.BQ\ 0QUJPOBM4USJOH """ ^ QSJOU U
࣮໘ͷ w 0QUJPOBM*NQMJDJUMZ6OXSBQQFE0QUJPOBMܕม (FOFSJDͰ࣮͞Ε͍ͯ·͢ w ΛΘͣ(FOFSJDߏจͰมఆٛ͢Δ͜ ͱՄೳͰ͢ w 4XJGUʹݶΒͣଞͷݴޠࣅ༷ͨͳײ͡Ͱ͢
࣮໘ͷ WBST0QUJPOBM4USJOH""" WBSU*NQMJDJUMZ6OXSBQQFE0QUJPOBM4USJOH"""
ϓϩάϥϛϯάαϙʔτ w ͜ͷลͰOJMॳظԽΤϥʔͱ͔ग़ͯ͠·͢ w IUUQTHJUIVCDPNBQQMFTXJGUCMPCNBTUFS JODMVEFTXJGU"45 %JBHOPTUJDT4FNBEFG-- w IUUQTHJUIVCDPNBQQMFTXJGUCMPCNBTUFS MJC4FNB$4%JBHDQQ-
0QUJPO5ZQFͷఆٛ w 0QUJPO5ZQF/POF͔4PNF WBMVF Λฦ͢ 5BHHFE6OJPO λά͖ڞ༻ମ Ͱ͢ return: A
! A? = a 7! Just a bind: A? ! ( A ! B? ) ! B? = a 7! f 7! ( Nothing if a = Nothing f a0 if a = Just a0
͓ΘΓ