Upgrade to Pro — share decks privately, control downloads, hide ads and more …

『Python → TypeScript』オンボーディング奮闘記

『Python → TypeScript』オンボーディング奮闘記

2025年5月23日(金) TSKaigi 2025 登壇資料です。
これからもイベントには参加していきたいと思いますので、ぜひお声がけください!!
もしよろしければ..., 「⭐️ Star 」 もいただければ励みになります! > 🐉🐉🐉

トグルホールディングスではTypeScriptを中心にプロダクト開発を行っています。私はメンターとして、Pythonエンジニアのオンボーディングを担当しました。動的型付けに慣れたエンジニアが静的型付けを前提とした環境に移行する際、型定義の方法やコンパイルエラーへの対応に苦労するケースが少なくありません。本セッションでは、メンター経験を通じて頻繁に直面した課題や具体的なトラブル事例を挙げ、それらを解決に導く効果的な指導法やアドバイスをお伝えします。異なる言語間のギャップを埋め、スムーズに新たな開発環境へ適応するための実践的なノウハウを紹介します。

Avatar for takumi_tatsuno

takumi_tatsuno

May 23, 2025
Tweet

More Decks by takumi_tatsuno

Other Decks in Programming

Transcript

  1. 7
 © toggle holdings inc. ⼤きな障壁にならなかった理由 動的⾔語 → 静的⾔語 •

    汎⽤的なコーディング規範    命名規則 , 単⼀責務 , 層の分離 など • 型の思想を補完∕代替する設計規約    Design by Contract , 値オブジェクト化 など 規約で型思考を習得済
  2. 8
 © toggle holdings inc. 題材:Full-Stack TS の API通信 動的⾔語

    → 静的⾔語 クライアント処理 APIハンドラ バックエンド処理 共通化した型
  3. 12
 © toggle holdings inc. 異なる体験 即時フィードバックの体験を得たい! • REPLで⼩さなコードを書いて即座に実⾏結果の確認 •

    セルごとに実⾏して結果確認 • 「書く→実⾏→確認」のサイクルが⾮常に短い 短いフィードバックループという開発体験は維持したい
  4. 15
 © toggle holdings inc. 似ているけど異なる概念 Python と TypeScript の知識が相互に理解を偏らせる

    • Optional[T] ⇄ T | undefined : None を許容 vs 未定義を許容 • None ⇄ undefined / null : 単⼀⽋損値 vs ⼆重⽋損値 • Any ⇄ any : 緩い“逃げ道” vs 型崩壊スイッチ • tuple ⇄ [T, U] タプル型 : 実体イミュータブル vs 型レベル固定⻑ • enum.Enum ⇄ enum : オブジェクト保持 vs 数値∕⽂字列化
  5. 16
 © toggle holdings inc. 例:型アノテーション と 型 Python と

    TypeScript の知識が相互に理解を偏らせる TypeScript 警告される
  6. 17
 © toggle holdings inc. 例:型アノテーション と 型 Python と

    TypeScript の知識が相互に理解を偏らせる • Python インタプリタ単体 では警告されない 実⾏できてしまう
  7. 18
 © toggle holdings inc. 例:型アノテーション と 型 Python と

    TypeScript の知識が相互に理解を偏らせる ‧同列視すれば設計の期待値がズレる 両⾔語の落とし⽳を共通認識として持つ
  8. 19
 © toggle holdings inc. • 動的言語 ↔ 静的言語ギャップは意外と小さい ◦

    既存の コーディング規範・設計規約 を理解することが重要 • 即時フィードバックに近い開発体験 • 言語知識の相互理解が偏らないように注意しよう まとめ