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
420
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
280
Honoの3+1のルーターとそこにつながるPRがプロジェクトにもたらしたもの
usualoma
1
3.4k
JSのウェブフレームワークで高速なルーターを実装する方法
usualoma
3
3.3k
Other Decks in Technology
See All in Technology
AWSではじめる Web APIテスト実践ガイド / A practical guide to testing Web APIs on AWS
yokawasa
7
560
実は強い 非ViTな画像認識モデル
tattaka
2
1.1k
Potential EM 制度を始めた理由、そして2年後にやめた理由 - EMConf JP 2025
hoyo
2
2.3k
Reading Code Is Harder Than Writing It
trishagee
2
120
内製化を加速させるlaC活用術
nrinetcom
PRO
2
130
MIMEと文字コードの闇
hirachan
2
1.4k
コンテナサプライチェーンセキュリティ
kyohmizu
1
130
AI Agent時代なのでAWSのLLMs.txtが欲しい!
watany
2
190
Perlの生きのこり - エンジニアがこの先生きのこるためのカンファレンス2025
kfly8
2
260
アジャイルな開発チームでテスト戦略の話は誰がする? / Who Talks About Test Strategy?
ak1210
1
400
クラウドサービス事業者におけるOSS
tagomoris
4
990
AIエージェント元年@日本生成AIユーザ会
shukob
1
150
Featured
See All Featured
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
Why Our Code Smells
bkeepers
PRO
336
57k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Producing Creativity
orderedlist
PRO
344
40k
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"ͷԼͰϥΠηϯε͞Ε͓ͯΓɺΦϦδφϧγοΫεɾΞύʔτͷΣϒαΠτͰೖखՄೳͰ͢ɻ —