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
addObserver: から考える API インタフェース
Search
KAMEDAkyosuke
December 18, 2017
Programming
1
470
addObserver: から考える API インタフェース
NSNotificationCenter の addObserver が iOS9 から removeObserver しなくて良くなったので API の対称性から外れてしまったお話です
KAMEDAkyosuke
December 18, 2017
Tweet
Share
Other Decks in Programming
See All in Programming
大規模FlutterプロジェクトのCI実行時間を約8割削減した話
teamlab
PRO
0
490
LLMOpsのパフォーマンスを支える技術と現場で実践した改善
po3rin
8
980
MCPで実現するAIエージェント駆動のNext.jsアプリデバッグ手法
nyatinte
6
770
「リーダーは意思決定する人」って本当?~ 学びを現場で活かす、リーダー4ヶ月目の試行錯誤 ~
marina1017
0
240
Laravel Boost 超入門
fire_arlo
1
110
Claude Codeで実装以外の開発フロー、どこまで自動化できるか?失敗と成功
ndadayo
2
1k
コンテキストエンジニアリング Cursor編
kinopeee
1
700
#QiitaBash TDDで(自分の)開発がどう変わったか
ryosukedtomita
1
380
KessokuでDIでもgoroutineを活用する / Go Connect #6
mazrean
0
110
なぜ今、Terraformの本を書いたのか? - 著者陣に聞く!『Terraformではじめる実践IaC』登壇資料
fufuhu
4
650
Oracle Database Technology Night 92 Database Connection control FAN-AC
oracle4engineer
PRO
1
100
Honoアップデート 2025年夏
yusukebe
1
840
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.8k
The Art of Programming - Codeland 2020
erikaheidi
55
13k
Rails Girls Zürich Keynote
gr2m
95
14k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
820
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
890
Speed Design
sergeychernyshev
32
1.1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
KATA
mclloyd
32
14k
Transcript
BEE0CTFSWFS͔Βߟ͑ Δ"1*ΠϯλϑΣʔε ,":"$ٕज़෦ ُాژհ
ࣗݾհ w ,".&%"LZPTVLF w UXJUUFS!(FNNCV w UXJUDI!,".&%"LZPTVLF w J04"OESPJE&OHJOFFS w
ࠇຐज़ಘҙ
J04͔Β/4/PUJpDBUJPO$FOUFSͷ SFNPWF0CTFSWFS͠ͳͯ͘ྑ͘ͳͬ ͨͬͯฉ͍ͨ͜ͱ͋Γ·͢ΑͶʁ BOESPJEͷํ#SPBEDBTUͷSFHJTUFS3FDFJWFSͨ͠ޙʹVOSFHJTUFS3FDFJWFS͠ͳͯ͘ྑ ͘ͳͬͨͱࢥ͍͚ͬͯͨͩΕେৎͰ͢ɻ
υΩϡϝϯτ BEE0CTFSWFSTFMFDUPSOBNFPCKFDU %JTDVTTJPO *GZPVSBQQUBSHFUTJ04BOEMBUFSPSNBD04 BOEMBUFS ZPVEPOUOFFEUPVOSFHJTUFSBOPCTFSWFSJO JUTEFBMMPDNFUIPE SFGTIUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOGPVOEBUJPOOTOPUJpDBUJPODFOUFS BEEPCTFSWFS MBOHVBHFPCKD
ϦϦʔεϊʔτ /4/PUJpDBUJPO$FOUFS *O049BOEJ04/4/PUJpDBUJPO$FOUFSBOE /4%JTUSJCVUFE/PUJpDBUJPO$FOUFSXJMMOPMPOHFSTFOE OPUJpDBUJPOTUPSFHJTUFSFEPCTFSWFSTUIBUNBZCF EFBMMPDBUFE CMBICMBICMBI SFGTIUUQTEFWFMPQFSBQQMFDPNMJCSBSZDPOUFOUSFMFBTFOPUFT'PVOEBUJPO3/ 'PVOEBUJPO0MEFS/PUFTJOEFYIUNM9@/PUFT
ϦϦʔεϊʔτ CMBICMBICMBI #MPDLCBTFEPCTFSWFSTWJBUIF</4/PUJpDBUJPO$FOUFS BEE0CTFSWFS'PS/BNFPCKFDURVFVFVTJOH#MPDL> NFUIPETUJMMOFFEUPCFVOSFHJTUFSFEXIFOOPMPOHFS JOVTFTJODFUIFTZTUFNTUJMMIPMETBTUSPOHSFGFSFODF UPUIFTFPCTFSWFST SFGTIUUQTEFWFMPQFSBQQMFDPNMJCSBSZDPOUFOUSFMFBTFOPUFT'PVOEBUJPO3/ 'PVOEBUJPO0MEFS/PUFTJOEFYIUNM9@/PUFT
͋Εʁ
#MPDLCBTFEPCTFSWFSTWJBUIF</4/PUJpDBUJPO$FOUFS BEE0CTFSWFS'PS/BNFPCKFDURVFVFVTJOH#MPDL> NFUIPETUJMMOFFEUPCFVOSFHJTUFSFEXIFOOPMPOHFS JOVTFTJODFUIFTZTUFNTUJMMIPMETBTUSPOHSFGFSFODF UPUIFTFPCTFSWFST
ͭ·Γ
J04͔Β/4/PUJpDBUJPO$FOUFS ͷSFNPWF0CTFSWFS͠ͳͯ͘ ྑ͘ͳͬͨ
Ͱͳ͘
J04͔Β/4/PUJpDBUJPO$FOUFSͷ BEE0CTFSWFSSFNPWF0CTFSWFS ͠ͳͯ͘ྑ͘ͳͬͨ
͜ΕΛ;·͑ͯ
ͦͦSFNPWF0CTFSWFS ͠ͳͯ͘Α͍ͬͯྑ͍͜ͱʁ
ϓϩάϥϛϯάͷ͓࡞๏ w ϝϞϦΛ֬อͨ͠Β w ϑΝΠϧΛ։͍ͨΒ w τϥϯβΫγϣϯΛ։࢝ͨ͠Β w 5$1ιέοτΛ։͍ͨΒ
ϓϩάϥϛϯάͷ͓࡞๏ w ϝϞϦΛ֬อͨ͠Βղ์͠ͳ͚ΕͳΒͳ͍ w ϑΝΠϧΛ։͍ͨΒด͡ͳ͚ΕͳΒͳ͍ w τϥϯβΫγϣϯΛ։࢝ͨ͠Βऴྃ͠ͳ͚ΕͳΒͳ͍ w 5$1ιέοτΛ։͍ͨΒด͡ͳ͚ΕͳΒͳ͍
BEESFNPWF0CTFSWFS Ͳ͏Ͱ͠ΐ͏͔ʁ
None
͍͔ͭ͘ͷΫϥεΛ֬ ೝͯ͠Έ·͠ΐ͏
8,)551$PPLJF4UPSF %JTDVTTJPO 5IFDPPLJFTUPSFEPFTOPUNBJOUBJOBTUSPOH SFGFSFODFUPUIFPCTFSWFS:PVBSFSFTQPOTJCMFGPS SFNPWJOHUIFPCTFSWFSCFGPSFJUCFDPNFTJOWBMJE SFGTIUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOXFCLJUXLIUUQDPPLJFTUPSF BEEPCTFSWFS
"71MBZFS BEE1FSJPEJD5JNF0CTFSWFS'PS*OUFSWBMRVFVFVTJOH#MPDL %JTDVTTJPO :PVNVTUNBJOUBJOBTUSPOHSFGFSFODFUIFSFUVSOFE WBMVFBTMPOHBTZPVXBOUUIFUJNFPCTFSWFSUPCF JOWPLFECZUIFQMBZFS&BDIJOWPDBUJPOPGUIJTNFUIPE TIPVMECFQBJSFEXJUIBDPSSFTQPOEJOHDBMMUP SFNPWF5JNF0CTFSWFS3FMFBTJOHUIFPCTFSWFSPCKFDU XJUIPVUJOWPLJOHSFNPWF5JNF0CTFSWFSXJMMSFTVMUJO VOEFpOFECFIBWJPS
SFGTIUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOBWGPVOEBUJPOBWQMBZFS BEEQFSJPEJDUJNFPCTFSWFSGPSJOUFSW MBOHVBHFPCKD
ϓϩάϥϛϯάͷ͓࡞๏ w SFHJTUFSͨ͠ΒVOSFHJTUFS͠ͳ͚ΕͳΒͳ͍
ͭ·Γ /4/PUJpDBUJPO$FOUFSͷBEE0CTFSWFS SFNPWF0CTFSWFS͠ͳͯ͘ྑ͘ͳ͚ͬͨͲɺϓϩάϥϛ ϯάͷ͓࡞๏ͱͯ͠ྑ͘ͳ͍ʂʂ
/4/PUJpDBUJPO$FOUFS ͦΕҎ֎ͷΫϥε SFNPWF0CTFSWFS͠ͳ͍ ͳ͠ ͋Γ SFNPWF0CTFSWFS͢Δ ͳ͠ ͳ͠ දʹ͢Δͱ
ࢲͨͪͷνʔϜͰ w SFHJTUFSVOSFHJTUFS BEESFNPWF0CTFSWFS ͓࡞๏ w /4/PUJpDBUJPO$FOUFS͚ͩྫ֎ͷঢ়ଶͰΉ͠ΖଞͷΫ ϥεͰؒҧ͑ΔڪΕ͕͋Δ w ͳͷͰSFNPWF0CTFSWFSΛৗʹॻ͘ํʹͱ͍͏͔
BEE0CTFSWFS'PS/BNFPCKFDURVFVFVTJOH#MPDLΛ ͏͜ͱʹ
·ͱΊ w "1*ͷΠϯλϑΣʔεͦΕ͚ࣗͩͰͳ͘ଞͷΫϥε ϑϨʔϜϫʔΫ͔ΒܾΊΔ͖ w ͳͷͰɺ͋Δ"1*ͷ༻ํ๏͕มΘ͔ͬͨΒͱ͍ͬͯଞ ͷΫϥεͱͷؔ࿈ʹҙ͖͢ w ͦͷ্ͰࣗͷϓϩδΣΫτʹͲ͏औΓΉ͔ܾΊ·͠ΐ ͏