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
Docコメントで始める簡単ガードレール
Search
Keisuke Ikeda
February 24, 2026
Programming
170
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Docコメントで始める簡単ガードレール
https://typescript-jpc.connpass.com/event/382128/
Keisuke Ikeda
February 24, 2026
More Decks by Keisuke Ikeda
See All by Keisuke Ikeda
JavaScript実装の自作プログラミング言語をTypeScript実装に移行した話
keisukeikeda
1
180
技術検証結果の整理と解析をAIに任せよう!
keisukeikeda
0
160
初めてのLisp自作譚
keisukeikeda
0
38
tsconfigのオプションで変わる型世界
keisukeikeda
2
230
Other Decks in Programming
See All in Programming
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
340
OSもどきOS
arkw
0
560
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
130
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
780
AIだと陥りがちなJakarta EE最新技術への移行時の落とし穴と解決策
tnagao7
0
100
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
2k
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
250
ふつうのFeature Flag実践入門
irof
7
3.8k
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
260
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
150
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
0
230
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
560
The Invisible Side of Design
smashingmag
302
52k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Producing Creativity
orderedlist
PRO
348
40k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
Prompt Engineering for Job Search
mfonobong
0
340
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Transcript
%PDίϝϯτͰ࢝ΊΔ ؆୯ΨʔυϨʔϧ ,FJTVLF*LFEB 54,BJHJ.BTIVQ,BOTBJ !JLF@LFJDIBO
自己紹介 02/21 ,FJTVLF*LFEB ɾ౦ژͱؔʢେࡕژʣͷڌੜ׆த ɾ54,BJHJ ϑϩϯτΤϯυΧϯϑΝϨϯεؔ ɹ3FBDU5PLZPϑΣεͷελοϑ ɾษڧձେ͖Ϛϯ ษڧձதͷπΠʔτ͕͏Δ͍͞
ɾ࠷ۙɺ໑ͱै໑͕࢈·ΕͨͷͰྑ͍॑ˍै॑ʹͳΓ͍ͨ !JLF@LFJDIBO
03/21 օ͞Μ%PDίϝϯτॻ͖·͔͢ʁ Docコメントについて !JLF@LFJDIBO
04/21 ɾ ͱ!Ͱॻ͘ߏతͳίϝϯτه๏ ɾ௨ৗͷίϝϯτͷҧ͍ ɹ*%&ΛؚΉଟ͘ͷπʔϧͷػೳΛิॿ ɹπʔϧΛར༻ͯ͠υΩϡϝϯτΛੜՄೳ ɹ ɾجຊతʹϝδϟʔͳݴޠʹఆΊΒΕͨඪ४ه๏͕ଘࡏ ɹ+BWBEPD
%PDTUSJOH +4%PD 54%PD (P%PD %PYZHFO %PDίϝϯτͱʁ Docコメントについて !JLF@LFJDIBO
05/21 ɾ+BWBEPD͕ىݯ ɹ!QBSBNT!SFUVSOTͷΑ͏ʹ!Ͱλάه๏ ɹ*%&ͳͲ͕+BWBEPDίϝϯτΛαϙʔτ࢝͠ΊΔ ɹίϝϯτ͔ΒυΩϡϝϯτੜՄೳ ɹίϝϯτͷॻ͖ํͷඪ४ʹ ɾଞݴޠͷීٴ ɹ+BWBEPDͷॻ͖ํ͕ଞݴޠͰ༻͞ΕΔ ɹݴޠͷҧ͍Λٵऩ͢ΔͨΊʹɺ֤ݴޠ͝ͱͷඪ४͕ੜʢ+4%PDͳͲʣ %PDͷྺ࢙
Docコメントについて !JLF@LFJDIBO
06/21 ɾ։ൃεϐʔυΛ༏ઌͨ͠ࡍʹɺ༏ઌ͕͘ͳΔɻ ɾίϝϯτʹϝϯςφϯείετ͕͋Γɺݹ͍%PDίϝϯτ͕ٯʹϊΠζ ɹʹͳΔɻ ɾ*%&ΛؚΉଟ͘ͷπʔϧͷิਪ͕ڧྗʹͳΓɺ%PDίϝϯτͰิ ɹ͢Δҙຯ͕ബ͘ͳΔɻ %PDίϝϯτॻ͘ඞཁ͕͋Δͷ͔ʁʢʣ Docコメントについて !JLF@LFJDIBO
07/21 ɾςετ͕υΩϡϝϯτΘΓʹͳͬͨɻ ɾΫϦʔϯͳίʔυͰ͋Εɺίʔυͦͷͷ͕υΩϡϝϯτʹͳΓ͏Δɻ ɾͦͦաʹίϝϯτΛॻ͖͘Ͱͳ͍ɻίʔυͰѲͰ͖Δ͜ͱΛ ɹίϝϯτͰॻ͖͘Ͱͳ͍ͱ͍͏ߟ͕͑ීٴɻ ɾ5ZQF4DSJQUʹؔͯ͠ݴ͑ɺܕใΛίϝϯτͰิ͏ඞཁ͕ͳ͘ͳͬͨɻ %PDίϝϯτॻ͘ඞཁ͕͋Δͷ͔ʁʢʣ Docコメントについて !JLF@LFJDIBO
08/21 Docコメントを書く理由 !JLF@LFJDIBO ੜ"*͕ͨΓલͷ࣌ʹ %PDίϝϯτॻ͘ඞཁ͕͋Δͷ͔ʁ
09/21 Docコメントを書く理由 "*ʮ࣮ʯ͔Δ͕ʮҙਤʯ͔Βͳ͍ const sendInvitation = async (inviterId: string, email:
string): Promise<void> => { const inviter = await getUser(inviterId); if (inviter.invitationCount >= 5) return; await sendEmail(email, '招待', inviteUrl(inviterId)); await incrementInvitationCount(inviterId); }; !JLF@LFJDIBO
11/21 Docコメントを書く理由 ͦΕͧΕͷπʔϧͰ͔Δ͜ͱ !JLF@LFJDIBO
10/21 Docコメントを書く理由 %PDίϝϯτͰʮҙਤʯ͕͔Δ /** * 招待メールを送信する。 * 招待上限は不正利用防止のため5件に制限(仕様#123参照)。 * 上限超過時はエラーにしない仕様。呼び出し元でチェック不要。
* @param email 未登録アドレスであることは呼び出し元で検証すること。 */ const sendInvitation = async (inviterId: string, email: string): Promise<void> => { const inviter = await getUser(inviterId); if (inviter.invitationCount >= 5) return; await sendEmail(email, '招待', inviteUrl(inviterId)); await incrementInvitationCount(inviterId); }; !JLF@LFJDIBO
12/21 Docコメントを書く理由 ී௨ͷίϝϯτͰͩΊͳͷ͔ʁ ɾνʔϜͰॻ͖ํΛڞ௨ԽͰ͖Δɻ ɹී௨ͷίϝϯτͩͱॻ͖ํ͕όϥόϥʹͳΓ͍͢ɻ ɹ"*ʹίϝϯτΛॻ͍ͯΒ͏߹Ͱจମ͕ἧ͍͍͢ɻ ɾ*%&ΛؚΉଟ͘ͷπʔϧͷԸܙड͚ΒΕΔɻ ɾ"*͕ߏԽ͞Εͨใͱͯ͠ಡΈऔΓ͍͢ɻ !JLF@LFJDIBO
13/21 Docコメントを書く理由 %PDίϝϯτίʔυͷྡʹ͋Δϓϩϯϓτ ɾׂͷ ɹ$-"6%&NEͳͲͷϓϩϯϓτϑΝΠϧநతͳϧʔϧΛॻ͘ॴͰ ɹ͋ΓɺݸʑͷίʔυͷҙਤΛॻ͘ʹద͍ͯ͠ͳ͍ɻ ɾίʔυͱͷڑ ɹϓϩϯϓτϑΝΠϧ"*͕ࢀরͷͨΊʹผ్ϑΝΠϧಡΈࠐΈ͕ඞཁɻ ɹ%PDίϝϯτίʔυͱಉ͡ϑΝΠϧʹ͋ΔͨΊɺ"*͕ίʔυΛಡΉࡍ
ɹʹࣗવʹҰॹʹಡΈऔΒΕΔɻ !JLF@LFJDIBO
14/21 Docコメントを書く理由 ಋೖίετθϩ ɾڥߏஙઃఆϑΝΠϧͷมߋෆཁ ɾΤϥʔ͕ग़ͳ͍ͨΊطଘͷ։ൃϑϩʔΛյ͞ͳ͍ ɾطଘͷίʔυϕʔεʹޙ͔ΒՃՄೳ ɾ͔ؔΒ։࢝Մೳ !JLF@LFJDIBO
運用方法 15/21 %PDίϝϯτॻ͘ͷେมͱ͍͏Λ Ε͍ͯͳ͍ʁ !JLF@LFJDIBO
運用方法 16/21 %PDίϝϯτ"*ʹॻ͔ͤΑ͏ʂ !JLF@LFJDIBO
運用方法 17/21 %PDίϝϯτΛॻ͘ίετ"*ʹͤΔ !JLF@LFJDIBO
Docコメントは書くべき? 18/21 ͜͜·ͰͷΛ౿·͑ͯɺ %PDίϝϯτॻ͖͘ͳͷ͔ʁ !JLF@LFJDIBO
Docコメントは書くべき? 19/21 %PDίϝϯτॻ͖͔͘ʁ ɾ"*ʹରͯ͠Ͳ͜·ͰΨʔυϨʔϧΛඋ͠ɺίϯτϩʔϧ͍͔ͨ͠ ɾϦϯλʔɾςετɾܕఆ͕ٛेʹඋ͞Ε͍ͯΔͳΒԸܙগͳ͍ ɹٯʹͦΕΒͷඋ͕ෆेͳ߹Ըܙ͋Γ ɹಋೖίετθϩͰɺΤϥʔग़ͳ͍ͨΊ։ൃͷअຐʹͳΒͳ͍ ɾ"*༻લఏͰνʔϜશһͰ%PDίϝϯτΛϝϯςφϯεͰ͖Δ͔ʁ
!JLF@LFJDIBO
まとめ 20/21 ·ͱΊʢʣ ɾܕɾϦϯλʔɾςετ"*ͷϓϩϯϓτʹͳΔ͕ɺʮҙਤʯ%PDίϝ ɹϯτͷํ͕ΘΓ͍͢ ɾ%PDίϝϯτίʔυͷྡʹ͋Δہॴతͳϓϩϯϓτͱͯ͠ͷػೳ ɾ։ൃϑϩʔΛյ͞ͳ͍ಋೖίετθϩͷΨʔυϨʔϧ !JLF@LFJDIBO
まとめ 21/21 ·ͱΊʢʣ ɾ"*ʹ%PDίϝϯτΛॻ͔ͤΔ͜ͱͰɺίετͳҙਤͷ͢Γ߹Θͤͱ1MBO ɹϞʔυతͳӡ༻͕Մೳ ɾ%PDίϝϯτ͕༗ޮ͔νʔϜϓϩδΣΫτ࣍ୈɻ"*ͷΨʔυϨʔϧ ɹΛͲ͜·Ͱඋ͍͔ͨ͠Ͱஅ ɾ·ͣʮҙਤ͕ΘΓʹ͍͘ʯͱײͨؔ͡ͷ%PDίϝϯτ͔Β !JLF@LFJDIBO