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
型がない世界に生まれ落ちて 〜TypeScript運用進化の歴史〜
Search
Narihara
May 24, 2025
Technology
1
240
型がない世界に生まれ落ちて 〜TypeScript運用進化の歴史〜
TSKaigi2025での登壇資料です。
Narihara
May 24, 2025
Tweet
Share
More Decks by Narihara
See All by Narihara
余白のフラクタル・デザイン ~ 個人・チーム・組織の連鎖的成長戦略 ~
narihara
0
79
5つのアンチパターンから学ぶLT設計
narihara
1
220
Road To「全員リクルーター」 ~新卒採用編~
narihara
0
170
LeSSをはじめて1年 我々はどこから来たのか 我々は何者か 我々はどこへ行くのか
narihara
0
69
組織をドライブさせる「評価」方針 at 20240129_ROSCAFEミートアップ.pdf
narihara
0
78
エンジニアドリブンで事業KPIから着想を得たプロダクトカイゼンを行っている話
narihara
0
280
キャリアにキく目標設定
narihara
0
150
Other Decks in Technology
See All in Technology
実践アプリケーション設計 ②トランザクションスクリプトへの対応
recruitengineers
PRO
3
310
そのコンポーネント、サーバー?クライアント?App Router開発のモヤモヤを可視化する補助輪
makotot
4
600
TypeScript入門
recruitengineers
PRO
21
7.1k
見てわかるテスト駆動開発
recruitengineers
PRO
5
470
kintone開発チームの紹介
cybozuinsideout
PRO
0
73k
コスト削減の基本の「キ」~ コスト消費3大リソースへの対策 ~
smt7174
2
170
Amazon Bedrock AgentCore でプロモーション用動画生成エージェントを開発する
nasuvitz
6
440
あなたの知らない OneDrive
murachiakira
0
240
JuniorからSeniorまで: DevOpsエンジニアの成長ロードマップ
yuriemori
0
230
Goss: New Production-Ready Go Binding for Faiss #coefl_go_jp
bengo4com
0
1.1k
ABEMAにおける 生成AI活用の現在地 / The Current Status of Generative AI at ABEMA
dekatotoro
0
670
Understanding Go GC #coefl_go_jp
bengo4com
0
1.1k
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Building Applications with DynamoDB
mza
96
6.6k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
How GitHub (no longer) Works
holman
315
140k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Automating Front-end Workflow
addyosmani
1370
200k
GitHub's CSS Performance
jonrohan
1031
460k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Embracing the Ebb and Flow
colly
87
4.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
型がない世界に生まれ落ちて 〜TypeScript運用進化の歴史〜 2025/05/24 at TSKaigi
2 自己紹介 株式会社スペースマーケット VPoE / 採用担当 成原 聡一朗 Narihara Soichiro
Webpack設定などが得意だったFEエンジニア出身 モヒカン歴17年 趣味は筋トレ、SF小説読書、オリジナルTシャツ作 成 (右の写真はカスタムした57キロのダンベル)
3
4 マーケットプレイスの紹介 掲載スペースは全国40,000件以上! あらゆるスペースを簡単に貸し借り できる国内最大級のスペースシェア プラットフォーム
5 多様なスペースと利用用途の掛け算で拡がる可能性
6 Spacepadの紹介
7 Spacepadの導入事例
8 質問
9 型安全な世界は好きですか?
型安全な世界は好きですか? 本日のイベントは「TSKaigi」 このイベントに来ているなら「好き」という方が多いと思います。 しかし、開発の現場では「好き」という言葉と付随する技術だけでは動きません。 開発の現場ではそれ以外の「もう一つの壁」があります。 10
型安全な世界は好きですか? 今日のLTでは、弊社スペースマーケットがどうやってその壁を超えてきたか。 どうやって「型安全」な世界にたどり着いたか。 その5年間の軌跡をお話します。 11
12 5年前と現在の比較
5年前と現在の比較 13 5年前 現在 言語 JavaScript / Flow TypeScript(一部設定ファイルを除く) UTテスト状況
テスト未整備 テストカバレッジ90%前後 型付け状況 プロダクト側コードでany or ts-ignoreが許容されている lintの制限の元、一部例外を除きany or ts-ignoreは撲滅 フロントエンド側の主要リポジトリで状況を比較。 しっかりとTS Wayに乗り、プロダクト開発が行えている状況に。 またBEでもRuby -> TSリプレース進行中。
14 どうやってこの世界に たどり着いたか?
型警察が出動した👮 15
…ではない 16
型警察が出動した訳ではない もちろん型安全を追求するのは大事。 しかし、いくら正しい事柄でも、相手に伝わらなければ意味がない。 なので、安易に型警察的な「べき論」で進めず、 状況そのものを変えることに。 17
18 状況を変えるために 取り組んだこと
① 型安全になった時に 訪れる世界の提示と体現 19
① 型安全になった時に訪れる世界の提示と体現 人は正しさだけでは動かない。 便利そう、自分に得がある。と思うことが大事。 なので、TSがフルパワーで使える = 型安全に使える魅力をコードベースで提示。 また自身がその世界にフルコミット・体現しないと 結局は理想論で終わる。 20
メンバーが自発的に型安全志向になるように 提示と体現を行いました。
② 採用&育成による チーム力向上 21
② 採用&育成によるチーム力向上 物事を進める際には「踊る2人目」が重要。 幸いタイミングよく前職の同僚がコミットしてくれ、大きく力を貸してくれてる。 また専用のカリキュラムを業務外で作成するなど、チーム力向上にもコミット。 チームが型安全を受け入れられる土壌を構築した。 22
③ 質問できる 環境の構築 23
③ 質問できる環境の構築 人が成長するには自分より優れた人間から知見をもらうのが一番。 アドバイスを聞くのに心理的障壁がある = 時間がかかる状況だとトータルリードタイムが向上する。 結果生産性が下がる... なのでマサカリNG、かつ議論する組織環境構築を行った。 24
25 未来の話 ~ Marketplace-X ~
未来の話 ~ Marketplace-X ~ 現在スペースマーケット マーケットプレイスを「再定義する」 Marketplace-X計画が進行中(通称PJ_MX)。 こちらも勿論TypeScriptパワーをフル活用しながら進めている。 これも静的型付けによる安全性が理解され、メンバーがコミットする状況があってこそ。 そして、経営層もこの移行によるメリットは理解し、推進が進行中。
26
27 まとめ
まとめ:型安全な世界を構築するためのインフラ整備 型安全な世界は素晴らしい...! しかし、型安全な世界を運用するためには、組織インフラの整備こそが重要。 組織インフラ整備のためにも推進者がメリットをしっかり提示。 内的動機付けで推進される環境を構築していくことが求められる。 28
29 最後に宣伝
最後に宣伝 スペースマーケットにおけるTS運用をもっと聞きたい! マサカリがなく、かつ議論できる環境ってどんな環境?? こんな疑問がある方、ぜひお話させてくださいー! カジュアル面談ではなく 同じエンジニア同士交流を持たせていただきたいです! 30
最後に宣伝 また06/18に現場目線でのTypeScript活用というテーマを主軸にした MeetUpを開催します! ぜひ遊びにきてください! 31
ご清聴いただき ありがとうございました