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
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
740
process.nextTick differences between node-v0.8 and node-v0.11
wagyu298
1
1.8k
Other Decks in Programming
See All in Programming
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
1.9k
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
120
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
520
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
5.2k
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.3k
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
230
A2UI という光を覗いてみる
satohjohn
1
120
Claspは野良GASの夢をみるか
takter00
0
180
Contextとはなにか
chiroruxx
0
280
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
780
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
3.6k
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
3.5k
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Making Projects Easy
brettharned
120
6.7k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
300
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
600
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
730
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
380
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
390
Mobile First: as difficult as doing things right
swwweet
225
10k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
210
It's Worth the Effort
3n
188
29k
GraphQLとの向き合い方2022年版
quramy
50
15k
Paper Plane
katiecoart
PRO
1
51k
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
͓ΘΓ