$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TypeScript100%で作るMovable Typeプラグイン
Search
Taku Amano
November 23, 2024
Technology
3
620
TypeScript100%で作るMovable Typeプラグイン
Taku Amano
November 23, 2024
Tweet
Share
More Decks by Taku Amano
See All by Taku Amano
The Journey of the Node.js Adapter through Performance and Portability
usualoma
0
110
We can develop a framework
usualoma
1
360
Honoの3+1のルーターとそこにつながるPRがプロジェクトにもたらしたもの
usualoma
3
3.7k
JSのウェブフレームワークで高速なルーターを実装する方法
usualoma
4
3.5k
Other Decks in Technology
See All in Technology
Data Hubグループ 紹介資料
sansan33
PRO
0
2.3k
adk-samples に学ぶデータ分析 LLM エージェント開発
na0
3
1.1k
Introduction to Bill One Development Engineer
sansan33
PRO
0
320
Design System Documentation Tooling 2025
takanorip
0
810
AI エージェント活用のベストプラクティスと今後の課題
asei
2
430
AI/MLのマルチテナント基盤を支えるコンテナ技術
pfn
PRO
4
520
OpenShiftのBGPサポート - MetalLB+FRR-k8s編
orimanabu
0
120
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
9.8k
AI駆動開発によるDDDの実践
dip_tech
PRO
0
160
生成AIシステムとAIエージェントに関する性能や安全性の評価
shibuiwilliam
2
300
レガシーシステム刷新における TypeSpec スキーマ駆動開発のすゝめ
tsukuha
4
890
"なるべくスケジューリングしない" を実現する "PreferNoSchedule" taint
superbrothers
0
130
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Scaling GitHub
holman
464
140k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
How STYLIGHT went responsive
nonsquared
100
5.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
690
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
Transcript
5BLV"NBOP!.5%%$.FFUVQ50,:0 5ZQF4DSJQUͰ࡞Δ .PWBCMF5ZQFϓϥάΠϯ τϑγοΫεɾΞύʔτͷެࣜΩϟϥΫλʔͰ͢ɻ $$#:/$4"ͷԼͰϥΠηϯε͞Ε͓ͯΓɺΦϦδφϧγοΫεɾΞύʔτͷΣϒαΠτͰೖखՄೳͰ͢ɻ —
શεϥΠυɺ4/4ͳͲͰͷڞ༗0,Ͱ͢ɻ
None
None
୭Λରʹ͔ͨ͠ʁ w ͜Ε͔Β.5ͷϓϥάΠϯΛ࡞Ζ͏ͱࢥ͍ͬͯΔਓ w ϓϥάΠϯΛ࡞Δ͜ͱͰ͖Δ͚Ͳɺ1FSMͷ͜ͱΛࢥ͏ͱগ͠ؾ͕ॏ͘ͳΔਓ w ϓϥάΠϯ͢Β͢Β࡞ΕΔ͚Ͳɺผͷॻ͖ํʹڵຯ͕͋Δਓ
ຊͷΰʔϧ w 5ZQF4DSJQUΛͬͯ.5ͷϓϥάΠϯΛ࡞ΕΔΑ͏ʹͳΔ͜ͱ w 1FSMͬͯΈΑ͏ͱ͍͏ؾ࣋ͪʹͳΔ͜ͱ
ཧը໘ΛϑϩϯτΤϯυͷΈͰ֦ு
ཧը໘ΛϑϩϯτΤϯυͷΈͰ֦ு w ελΠϧඞͣ͠.5ʹ߹Θͤͳͯ͘Α͍ w ͩ͜ΘΓ͗͢ͳ͍ɻಠࣗͰ0,ɻ w ཧը໘༻ͷ+4ͳΒɺڊେͰͳ͍ w .5ͷϥΠϒϥϦʢK2VFSZͳͲʣͷόʔδϣϯؾʹ͠ͳͯ͘Α͍ w
όϯυϧͯ͠͠·͑Εͦͷํ͕.5ଆͷมߋΛؾʹ͠ͳͯ͘Α͍ ·ͣؾָʹߟ͑Δ
ཧը໘ΛϑϩϯτΤϯυͷΈͰ֦ு w ΫϥΠΞϯταΠυͰͰ͖Δ͜ͱ૿͍͑ͯΔ w $034 w OQN w 8FC"TTFNCMZ w
5ZQF4DSJQUͷΫϥΠΞϯταΠυΞϓϦ"*Ͱੜ͍͢͠ w ʮ"*Ͱੜ͢Δ͜ͱʯʹؔͯ͠ؾʹ͠ͳ͚ΕͳΒͳ͍͜ͱͪΖΜ͋ Δ͕ɺཧը໘༻ͷΞϓϦͳΒൺֱతར༻͍͢͠ Ͱ͖Δ͜ͱͨ͘͞Μ͋Δ
ϓϥάΠϯͷྫ NFNCFSMJTUJOQVU
None
͔ͯ͠͠ࠓɺ ʮ.5"QQK2VFSZͷ࡞Γํʯ ͷΛ͍ͯ͠·͔͢ʁ
.5"QQK2VFSZ w ೖྗཝͷΧελϚΠζΛ؆୯ʹߦ͑ΔϓϥάΠϯ w ߴͳίϯϙʔωϯτ͕༻ҙ͞Ε͍ͯΔͷͰΈ߹ΘͤΔ͚ͩͰͰ͖Δ w ೖྗཝ͚ͩͰͳ͘ɺཧը໘ͷ6*શൠͷϢʔςΟϦςΟἧ͍ͬͯΔ ؆୯ʹಋೖͰ͖ͯ ϝϯςφϯε҆৺ w
.PWBCMF5ZQFͷόʔδϣϯΞοϓʹ߹Θ͙ͤͯ͢ʹߋ৽͞ΕΔ w ϥΠηϯεͷߪೖ͕ඞཁ͕ͩɺखް͍αϙʔτ͋Δ
͜ͷηογϣϯͰڵຯΛ࣋ͬͯɺ τϥΠͯ͠ΈΑ͏͔ͱࢥͬͨํɺ .5"QQK2VFSZཁݕ౼Ͱ͢ɻ ͜ͷηογϣϯͷΞΠσΞͷଟ͘ɺ .5"QQK2VFSZͰ͑·͢ɻ IUUQTCJUQBSUOFUQSPEVDUTNUBQQKRVFSZ
Λ͠·͢ NFNCFSMJTUJOQVU
4WFMUF 6*ϑΝΠϧͰఆٛ
4WFMUF $44ϑΝΠϧʹຒΊࠐΈ
OQN OQNϞδϡʔϧΛར༻ͯ͠ػೳΛՃ IUUQTDEOTIFFUKTDPN
Ͳ͏ͬͯཧը໘ʹૠೖ͢Δ͔🤔
!VTVBMPNBNUQMVHJOCVJMEFSΛ࡞ͬͨ
!VTVBMPNBNUQMVHJOCVJMEFS 5ZQF4DSJQUͷϓϩδΣΫτ͔Β.5ͷϓϥάΠϯΛੜ NUQMVHJODPO fi HUTΛ࡞Δ AOQY!VTVBMPNBNUQMVHJOCVJMEFSA Λ࣮ߦ͢Δ
.5ͷϓϥάΠϯ͕࡞͞ΕΔ w EJTUҎԼ͕NUTUBUJDͷԼʹίϐʔ͞ΕΔ w NBJOKT͕ཧը໘ʹಡΈࠐ·ΕΔ Πϯετʔϧ͢Δͱ
ཧը໘ʹಡΈࠐ·ΕΔͱ͜Ζ·ͰͰ͖Ε ͋ͱͳΜͱ͔Ͱ͖Δ
!VTVBMPNB NUQMVHJOCVJMEFS🤔🤔🤔 (FUUJOHTUBSUFE
None
ʮຒΊࠐΈςΩετʯΛ୳ͯ͠6*Λૠೖ ʮຒΊࠐΈςΩετʯૉͷUFYUBSFBཁૉ
΄΅5ZQF4DSJQUͰ͋Δ͜ͱͷϝϦοτ
΄΅5ZQF4DSJQUͰ͋Δ͜ͱͷϝϦοτ w ։ൃπʔϧ5ZQF4DSJQUͷ։ൃ༻ͷͷΛͦͷ··ར༻Ͱ͖Δ w Ϣχοτςετ5ZQF4DSJQUͰ݁ͤ͞ΒΕΔ w $*ͰϓϥάΠϯͷύοέʔδΛ࡞͢Δ͜ͱ༰қʹͰ͖Δ w AOQYNUQMVHJOCVJMEFSAͷ࣮ߦ͚ͩͰϓϥάΠϯΛ࡞Ͱ͖Δ
😀Θ͘Θ͖ͯ͘͠·͔ͨ͠ʁ
ଞʹͰ͖ͦ͏ͳ͜ͱ
֎෦ͷ"QQͱ࿈ܞ͢Δ w .5Ͱ݁ͤ͞Δ͜ͱΛࢦ͞ͳͯ͘0, w ֎෦ͷڥͰಠࣗͷ"QQΛ5ZQF4DSJQUͰՔಇͤ͞Δ w 5ZQF4DSJQUͷαʔόʔαΠυΞϓϦΛಈ͔ͤΔڥଟ͍ w .5ͷՔಇ͢Δαʔόʔڥʹґଘ͠ͳ͍ w
5ZQF4DSJQUͷαʔόʔαΠυΞϓϦ"*Ͱੜ͍͢͠ w ʮ"*Ͱੜ͢Δ͜ͱʯͷੋඇʹ͍ͭͯݸผʹஅ͢Δඞཁ͕͋Δ
ϓϥάΠϯͷྫ TUJDLZOPUF
None
σʔλετΞผΞϓϦ )POP!$MPVE fl BSF8PSLFST
σʔλετΞผΞϓϦ $034 KXUͰϢʔβʔΛೝূͯ͠ɺϑϩϯτΤϯυ͔ΒΞΫηε
ϓϥάΠϯͷྫ UTBTTJTUBOUʢ"*Ͱίϯςϯπੜʣ
None
ϑϩϯτΤϯυͷίʔυ͚ͩ $034Ͱ0QFO"*ͷαʔόʔʹϦΫΤετ
ϑϩϯτΤϯυͷίʔυ͚ͩ $034Ͱ0QFO"*ͷαʔόʔʹϦΫΤετ
ࡉ͔͍ڍಈ0QFO"*Ͱཧ ֘ͷαΠτͷใΛϑΝΠϧͰొ͓͍ͯͨ͠Γͱ͔Ͱ͖Δ
ϓϥάΠϯͷྫ UTBTTJTUBOUʢ"*Ͱίϯςϯπੜʣ
ϑϩϯτΤϯυ͜͜·Ͱ 5ZQF4DSJQUͱݴ͚ͬͨͲɺϑϩϯτΤϯυͱݴ͍ͬͯͳ͍
.UDHJࣗମͷಈ࡞ ֦ுͰ͖Δ͔͠Εͳ͍😼
1FSMͰॻ͍ͨϓϥάΠϯͰͰ͖Δ͜ͱ w .5λάΛՃ͢Δ w NUDHJʹ༻ҙ͞ΕͨίʔϧόοΫʹॲཧΛՃ͢Δ w %#ͷอଘ࣌ͷίʔϧόοΫɺ࠶ߏங࣌ͷίʔϧόοΫ w σʔλϕʔεͷεΩʔϚͷ֦ு w
ಠࣗͷΦϒδΣΫτͷఆٛɺଞͷΦϒδΣΫτͱͷؔ࿈ͷఆٛ w ཧը໘ͷݖݶͷఆٛ ͜ΕͰ͖Δ͜ͱͷҰ෦Ͱ͢ɻશମͨ͘͘͢͝͞Μ͋Γ·͢ɻ
ΣϒϑοΫͰॲཧͰ͖ͦ͏ͳͷ w .5λάΛՃ͢Δ w NUDHJʹ༻ҙ͞ΕͨίʔϧόοΫʹॲཧΛՃ͢Δ w %#ͷอଘ࣌ͷίʔϧόοΫɺ࠶ߏங࣌ͷίʔϧόοΫ
ΣϒϑοΫͰͬͯΈΑ͏
ϓϥάΠϯͷྫ XFCIPPLUBH w #MPH$BSE w .JOJGZ w HGN
NUQMVHJODPOGJHUT
NU#MPH$BSE
NU.JOJGZ
HGN HJUIVC fl BWPSFE NBSLEPXO
ΣϒϑοΫ👍
ϓϥάΠϯͷྫ WFDUPSDPTJOFTJNJSBMJUJFT w "*ʹهࣄͷྨࣅΛܭࢉͤͯ͞ɺࣅ͍ͯΔॱʹऔΓग़͢
NUQMVHJODPOGJHUT
.5&OUSZQPTU@TBWF
NU7FDUPS$PTJOF4JNJMBSJUZ
ϓϥάΠϯͷྫ TJNJMBSFOUSJFT
1FSM͕ඞཁʹͳΔͱ͖ w ಠࣗͷΦϒδΣΫτͷఆٛɺଞͷΦϒδΣΫτͱͷؔ࿈ͷఆ͕ٛͰ͖Δ w 3%#্Ͱਖ਼ؔ͘͠࿈͚ΒΕΔ w όοΫΞοϓ෮ݩͷରʹͰ͖Δ w 1FSMͰ݁͢Δ߹ʹߴ w
ͨͩ͠ɺ߹ʹΑͬͯϝϞϦͷফඅྔଟ͍͔ w 1FSMͰ݁͢Δํ͕୯Ұো͕গͳ͍ʢ͜ͱ͕ଟ͍ʣ ͋Δ͍1FSMΛ͏ϝϦοτ
1FSM͕ඞཁʹͳΔͱ͖ w ݖݶͷఆ͕ٛͰ͖Δ w Ұཡը໘ͷΧελϚΠζ͕Ͱ͖Δ ͋Δ͍1FSMΛ͏ϝϦοτ
ࢀߟใ w .PWBCMF5ZQF։ൃऀ͚ΨΠυ w ϓϥάΠϯͷॻ͖ํ͕ৄ͘͠આ໌͞Ε͍ͯΔ w IUUQTHJUIVCDPNNPWBCMFUZQF%PDVNFOUBUJPOXJLJ+BQBOFTFEFWFMPQFSHVJEF w .PWBCMF5ZQF1MVHJOT"OE5IFNFT%JSFDUPSZ w
ΦʔϓϯιʔεͷϥΠηϯεͰιʔείʔυ͕ެ։͞Ε͍ͯΔͷଟ͍ w IUUQTQMVHJOTNPWBCMFUZQFKQ
ϦϙδτϦύοέʔδ w NUQMVHJO5ZQF4DSJQU&YBNQMF w ࠓհͨ͠ϓϥάΠϯͷྫ w IUUQTHJUIVCDPNVTVBMPNBNUQMVHJO5ZQF4DSJQU&YBNQMF w NUQMVHJOCVJMEFSDSFBUFNUQMVHJOCVJMEFS w
ϓϥάΠϯͷϏϧυπʔϧ w IUUQTHJUIVCDPNVTVBMPNBNUQMVHJOCVJMEFS w IUUQTXXXOQNKTDPNQBDLBHF!VTVBMPNBNUQMVHJOCVJMEFS
5ZQF4DSJQU ͔ΒͰ࢝ΊΒΕΔ .PWBCMF5ZQFϓϥάΠϯ τϑγοΫεɾΞύʔτͷެࣜΩϟϥΫλʔͰ͢ɻ $$#:/$4"ͷԼͰϥΠηϯε͞Ε͓ͯΓɺΦϦδφϧγοΫεɾΞύʔτͷΣϒαΠτͰೖखՄೳͰ͢ɻ —