Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
TS未経験から 3ヶ月で 新機能開発した話
Search
Hayato Kinoshita
April 23, 2025
Programming
97
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TS未経験から 3ヶ月で 新機能開発した話
Hayato Kinoshita
April 23, 2025
Other Decks in Programming
See All in Programming
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
730
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
2
550
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
220
ChromeでローカルLLM
ryu1013
0
140
パスワード再設定メールのURLについて知っておこう
uyuki234
0
160
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
Agents on Rails - Rails at Scale 2026
irinanazarova
0
570
Next.js: The final boss of Web Performance
guaca
0
280
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
280
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
1
220
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
3
680
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
520
Featured
See All Featured
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Leo the Paperboy
mayatellez
10
2.4k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
780
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
The SEO identity crisis: Don't let AI make you average
varn
0
590
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Designing for Timeless Needs
cassininazir
1
530
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
570
Paper Plane (Part 1)
katiecoart
PRO
2
12k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
460
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
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 ご清聴ありがとうございました