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
TS未経験から 3ヶ月で 新機能開発した話
Search
Hayato Kinoshita
April 23, 2025
Programming
0
69
TS未経験から 3ヶ月で 新機能開発した話
Hayato Kinoshita
April 23, 2025
Tweet
Share
Other Decks in Programming
See All in Programming
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
390
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
150
SourceGeneratorのススメ
htkym
0
200
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
高速開発のためのコード整理術
sutetotanuki
1
410
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
310
CSC307 Lecture 06
javiergs
PRO
0
690
CSC307 Lecture 03
javiergs
PRO
1
490
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
200
AtCoder Conference 2025
shindannin
0
1.1k
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
150
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
160
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
65
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Speed Design
sergeychernyshev
33
1.5k
Faster Mobile Websites
deanohume
310
31k
Paper Plane
katiecoart
PRO
0
46k
Abbi's Birthday
coloredviolet
1
4.8k
First, design no harm
axbom
PRO
2
1.1k
WENDY [Excerpt]
tessaabrams
9
36k
The untapped power of vector embeddings
frankvandijk
1
1.6k
Design in an AI World
tapps
0
150
Transcript
本資料は、トグルホールディングス株式会社に許可なく複製・転載をしないようお願いします。 TS未経験から 3ヶ⽉で 新機能開発した話
© toggle holdings inc. 2 ⽊下 隼 所属 2024/09〜2025/3 インターン
2025/04〜現在 トグルホールディングス 株式会社 趣味 競⾺、アニメ鑑賞、料理 X @hk10_it
© toggle holdings inc. 3 タイトル 本⽇話す内容 • インターンで新機能開発まで⾏った体験談 •
フルスタックTSのメリット ◦ 学びやすい! ◦ 全体像の把握がしやすい! ◦ 型定義が怖くない!
© toggle holdings inc. 4 学びやすい!
© toggle holdings inc. 5 学びやすい! 私の経験(インターン前のスキルセット) プログラミング経験:9年 • ⼤学/修⼠:Python(6年)
• ⾼校⽣以前:Unity(C#)、その他基礎レベル • Web系 ◦ フロントエンド(HTML/CSS/JS):授業/独学レベル ◦ TypeScript:未経験 ▪ React, Hono, Prisma, Zod … ?
© toggle holdings inc. 6 学びやすい! インターンでの稼働時間 • 稼働時間:3 h/⽇(15
h/週) • 限られた時間の中で技術的なキャッチアップをしな がら開発を進める必要
© toggle holdings inc. 7 学びやすい! 最初のタスク フロントエンドの簡単な改修 (ボタンのデザイン変更)
© toggle holdings inc. 8 学びやすい! 1営業⽇でプルリクを作成 🚀わずか 1 営業⽇で
🎉 初めてのPull Requestを作成! 🎉
© toggle holdings inc. 9 学びやすい! なぜ、1営業⽇で出せたのか? 1/3 環境構築がとても早く終了した •
GitHub Codespaceの起動 • セットアップ⽤のコマンドを実⾏
© toggle holdings inc. 10 学びやすい! なぜ、1営業⽇で出せたのか? 2/3 TypeScriptのキャッチアップがしやすかった •
似ている機能のコードを参考に編集 • TypeScriptの構⽂をスムーズに理解 • HTML/CSS/JSを少し知っていてReactが 理解しやすい
© toggle holdings inc. 11 学びやすい! なぜ、1営業⽇で出せたのか? 3/3 ホットリローディングによる試してみるができる ➔
この処理をコメントアウトしたら、どうなるか?
© toggle holdings inc. 12 学びやすい! 2つ⽬のタスク バックエンドの改修 「タグ更新時に更新⽇時が変更されない」 タグとは?
→物件の管理で物件毎に設定できるもの
© toggle holdings inc. 13 学びやすい! 2つ⽬のタスク バックエンドの改修 「タグ更新時に更新⽇時が変更されない」 更新されていないとは?
→タグを編集しても更新⽇時が作成⽇のままになっている
© toggle holdings inc. 14 学びやすい! バックエンドの経験ゼロでも壁は低かった 最⼤の要因:⾔語が同じTypeScript! • 構⽂の学習コストが、実質ゼロ
• Hono、Prismaの学習に集中できた ❏ Hono:TypeScriptのバックエンドのフレームワー ク ❏ Prisma:TypeScriptでデータベースの操作を型安 全に⾏う
© toggle holdings inc. 15 学びやすい! フルスタックTypeScriptが学びやすいと感じた部分! • 環境構築が早い •
Web開発の基礎知識があればすぐに キャッチアップ可能 • ホットリローディングによるお試しができる • フロントエンドとバックエンドの スイッチングコストが低い
© toggle holdings inc. 16 全体像の把握がしやすい!
© toggle holdings inc. 17 全体像の把握がしやすい! 1-2⽉の開発タスク:こんな課題に取り組みました • PDF出⼒時の記載事項が間違っているバグ •
権限のチェック漏れでタグを削除できるバグ • タグ削除時のエラー表⽰が2つ出現する • ボタンが初期状態で活性化された状態になっている • 道路幅の変更によってバリデーションエラーが発⽣
© toggle holdings inc. 18 全体像の把握がしやすい! 課題全体を通じて意識したこと 解決にはどこにバグが潜んでい るかの特定が必要 ➔
レイヤードアーキテクチャを 意識 ➔ 全てTypeScriptで確認ができ るため、特定がしやすい
© toggle holdings inc. 19 全体像の把握がしやすい! 1-2⽉の開発タスク:こんな課題に取り組みました • PDF出⼒時の記載事項が間違っているバグ •
権限のチェック漏れでタグを削除できるバグ • タグ削除時のエラー表⽰が2つ出現する • ボタンが初期状態で活性化された状態になっている • 道路幅の変更によってバリデーションエラーが発⽣
© toggle holdings inc. 20 全体像の把握がしやすい! 「PDF出⼒時の記載事項が間違っているバグ」の場合(1/2) • フロントエンドのボタンコンポーネントから、呼び 出し関数などを追っていき、バックエンドの処理へ
‧‧‧ バック エンド
© toggle holdings inc. 21 全体像の把握がしやすい! 「PDF出⼒時の記載事項が間違っているバグ」の場合(2/2) • バックエンド部分も、TypeScriptのままなので、そ のまま概要部分を少し編集するだけで修正完了
➔ 全てTypeScriptで書かれていると、全体を⾒通せる ためバグ修正までが早い
© toggle holdings inc. 22 全体像の把握がしやすい! 「権限のチェック漏れでタグを削除できるバグ」の場合 バグ再現→原因の仮説→修正の検証までのやりやすさ • ⼀部の条件下で権限チェックが漏れてタグが削除できてしまう
• 仮説から、バグ原因の特定、修正までが早く、ミニマム ➔ 全てTypeScriptで書かれていると、全体を⾒通せる ためバグ修正までが早い
© toggle holdings inc. 23 型定義が怖くない!
© toggle holdings inc. 24 型定義が怖くない! 3ヶ⽉⽬の挑戦:新機能開発 🌟集⼤成タスク:ユーザー利⽤状況の集計‧表⽰機能 担当範囲: •
要件理解 • バックエンドの実装 • フロントエンドの実装 • 中間ブランチへのマージ
© toggle holdings inc. 25 型定義が怖くない どんな機能か? ユーザの利⽤状況(物件登録数‧VC実⾏数)を集計
© toggle holdings inc. 26 型定義が怖くない! どんな機能か? ユーザの利⽤状況(物件登録数‧VC実⾏数)を集計 VC実⾏数とは? ➔
VC(ボリュームチェック) を実⾏した回数
© toggle holdings inc. 27 型定義が怖くない! タスクをサブタスクに分割 • 物件登録数取得のバックエンド実装 •
VC実⾏数を取得するバックエンド実装 • 画⾯の実装 • 年度‧部⾨での絞り込み機能実装
© toggle holdings inc. 28 型定義が怖くない! バックエンドの実装 できるだけservice層には処理を 追加しない •
変更場所が少ない⽅が良いと判断 ➔ transaction層に既存処理を 使ってデータ取得処理を記述
© toggle holdings inc. 29 型定義が怖くない! API境界が怖く無く開発が進む Zodによるスキーマ定義と、型推論 • serviceから渡されるデータの型がちゃんと決まっている
• 持っているプロパティが分かるので、使えるメソッドが分かる ➔ transactionに⼀つのメソッドを追加するだけで 済む実装ができた
© toggle holdings inc. 30 型定義が怖くない! 最終課題の結果... 🎉最後まで実装完了!🎉
© toggle holdings inc. 31 まとめ
© toggle holdings inc. 32 まとめ 私の3ヶ⽉とフルスタックTSの可能性 体験して分かった! フルスタックTSは... •
学びやすい! ◦ FE、BEで同じ⾔語のため学習コストが低い • 全体の把握がしやすい! ◦ バグなどの箇所でどこが問題かを発⾒しやすい • 型定義が⼀貫していて怖くない! ◦ API境界でもzodによる型推論によって怖くない
© toggle holdings inc. 33 ご清聴ありがとうございました