Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TS未経験から 3ヶ月で 新機能開発した話
Search
Hayato Kinoshita
April 23, 2025
Programming
0
68
TS未経験から 3ヶ月で 新機能開発した話
Hayato Kinoshita
April 23, 2025
Tweet
Share
Other Decks in Programming
See All in Programming
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
390
AIコーディングエージェント(Manus)
kondai24
0
220
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
200
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
140
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
160
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
6
800
ゲームの物理 剛体編
fadis
0
380
AIエージェントの設計で注意するべきポイント6選
har1101
5
2.4k
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
150
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
170
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
280
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
170
Featured
See All Featured
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
0
310
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
230
Building Applications with DynamoDB
mza
96
6.8k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
Designing for humans not robots
tammielis
254
26k
The Invisible Side of Design
smashingmag
302
51k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
71
Discover your Explorer Soul
emna__ayadi
2
1k
Scaling GitHub
holman
464
140k
Being A Developer After 40
akosma
91
590k
Site-Speed That Sticks
csswizardry
13
1k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
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 ご清聴ありがとうございました