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
TypeScript100%で作るMovable Typeプラグイン
Search
Taku Amano
November 23, 2024
Technology
2
500
TypeScript100%で作るMovable Typeプラグイン
Taku Amano
November 23, 2024
Tweet
Share
More Decks by Taku Amano
See All by Taku Amano
We can develop a framework
usualoma
1
310
Honoの3+1のルーターとそこにつながるPRがプロジェクトにもたらしたもの
usualoma
1
3.6k
JSのウェブフレームワークで高速なルーターを実装する方法
usualoma
3
3.4k
Other Decks in Technology
See All in Technology
新卒3年目の後悔〜機械学習モデルジョブの運用を頑張った話〜
kameitomohiro
0
240
TerraformをSaaSで使うとAzureの運用がこんなに楽ちん!HCP Terraformって何?
mnakabayashi
0
130
上長や社内ステークホルダーに対する解像度を上げて、より良い補完関係を築く方法 / How-to-increase-resolution-and-build-better-complementary-relationships-with-your-bosses-and-internal-stakeholders
madoxten
13
7.6k
開発効率と信頼性を両立する Ubieのプラットフォームエンジニアリング
teru0x1
0
140
型システムを知りたい人のための型検査器作成入門
mame
15
3.8k
堅牢な認証基盤の実現 TypeScriptで代数的データ型を活用する
kakehashi
PRO
2
220
CI/CDとタスク共有で加速するVibe Coding
tnbe21
0
150
Kotlinで学ぶ 代数的データ型
ysknsid25
5
1.1k
本部長の代わりに提案書レビュー! KDDI営業が毎日使うAIエージェント「A-BOSS」開発秘話
minorun365
PRO
14
1.7k
成立するElixirの再束縛(再代入)可という選択
kubell_hr
0
260
What's new in OpenShift 4.19
redhatlivestreaming
1
230
Securing your Lambda 101
chillzprezi
0
280
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
It's Worth the Effort
3n
184
28k
Documentation Writing (for coders)
carmenintech
71
4.9k
Designing for humans not robots
tammielis
253
25k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
900
Balancing Empowerment & Direction
lara
1
290
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
A Tale of Four Properties
chriscoyier
159
23k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
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"ͷԼͰϥΠηϯε͞Ε͓ͯΓɺΦϦδφϧγοΫεɾΞύʔτͷΣϒαΠτͰೖखՄೳͰ͢ɻ —