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
68
TS未経験から 3ヶ月で 新機能開発した話
Hayato Kinoshita
April 23, 2025
Tweet
Share
Other Decks in Programming
See All in Programming
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
120
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
600
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
240
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
930
2年のAppleウォレットパス開発の振り返り
muno92
PRO
0
180
Cap'n Webについて
yusukebe
0
160
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
940
ThorVG Viewer In VS Code
nors
0
540
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
300
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.5k
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
430
AIエージェントの設計で注意するべきポイント6選
har1101
6
2.9k
Featured
See All Featured
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
66
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
How STYLIGHT went responsive
nonsquared
100
6k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
100
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.2k
Why Our Code Smells
bkeepers
PRO
340
58k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
2
280
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
115
100k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
410
Balancing Empowerment & Direction
lara
5
840
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
210
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
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 ご清聴ありがとうございました