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
TypeScriptで統一したアーキテクチャ
Search
iseki
November 19, 2021
Technology
90
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TypeScriptで統一したアーキテクチャ
https://increments.connpass.com/event/229358/
「次世代フロントエンドに向き合ったバックエンドアーキテクチャの話」での発表資料です。
iseki
November 19, 2021
More Decks by iseki
See All by iseki
TypeScriptで統一したアーキテクチャ
masayaiseki
0
1.9k
QUICの安全性解析と証明
masayaiseki
0
32
WebRTCの安全性証明をしたい
masayaiseki
0
42
Precise study on a SOA-PSA based optical signal regenerator with numerical analysis
masayaiseki
0
53
Other Decks in Technology
See All in Technology
Metadata - Section 2: Simple Metadata & Meta Tags
mohab1
0
120
DevelopersIO2026 -バックアップは“消されないこと”が9割-
yoshida0129
0
300
Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
1
1.1k
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
380
Persisting Massive Data with Rails ~Designing for 60 billion rows, and fighting the bottlenecks~ Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
0
780
CloudWatch Logsのコスト最適化:どこまでAIに任せてどこから人間が承認すべきか
yama3133
0
160
小規模OSSモデルは サイバーセキュリティ業務に どこまで使えるか
bbrbbq
0
190
freeeにおける AI を用いた ブラウザ動作確認の自動化の取り組み
freee
PRO
0
140
こんにちは!SORACOM です & IoT とは【SORACOM UG 東北 in 八戸】
soracom
PRO
0
170
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
510
契約で守るコンパウンドプロダクトのデザインシステム
yug1224
1
100
AWS DevOps Agentはどこまで任せられるか 〜機能の現在地と、機能拡張の実践〜
nyankotaro
0
120
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Making Projects Easy
brettharned
120
6.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
370
Typedesign – Prime Four
hannesfritz
42
3.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
740
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
580
The Language of Interfaces
destraynor
162
27k
Transcript
EventHub All Rights Reserved. TypeScriptで統一したアーキテクチャ 2021年11月19日
EventHub All Rights Reserved. 自己紹介 • 井関 正也(@iskmsy) • 株式会社EventHub
取締役CTO • 2016年2月に代表の山本と一緒に EventHubを創業 • 開発組織、技術、プロダクトをみてます Chromium、Geckoのコミッターでした。 2
EventHub All Rights Reserved. 3 All-in-One Event Management Platform EventHubはデータを一元管理・分析する事により
イベントの成果を最大化するプラットフォームです オンライン・ハイブリッド・オフラインを問わず イベントの準備・開催・管理を効率化します
EventHub All Rights Reserved. メンバーの推移と沿革 2020年からの1年間で 11名から49名 に拡大しています。 4 2016
2017 2018 2019 2020 2021 新オフィス (神田) 会社設立 オンライン版 リリース EventHub リリース 資金調達 (Salesforce) 資金調達 (Sansan) 新オフィス (馬喰横山) 2名 2名 4名 6名 11名 49名
EventHub All Rights Reserved. 今日お話すること 少人数のエンジニアからスタートしたEventHubでどういった 理由で選定した技術なのかをお話します 5
EventHub All Rights Reserved. 技術選定の判断軸 6 組織 技術 製品 市場に受け入れられる製品であり続けるために、技術と組織を変化させていく
EventHub All Rights Reserved. 製品-フェーズによって求められる要件 7 PSF(Problem Solution Fit)到達前 顧客課題の発見・解決策の模索。できるだけコードは書かずに検証できるのが理想。
PMF(Product Market Fit) 到達前 最適な顧客体験・プランの構築。将来の拡張性を考慮しつつ個人あたりの開発効率を向上さ せていく。 PMF(Product Market Fit)到達後 更なる顧客拡大のために組織も拡大していきたい。個人あたりの開発効率も維持しつつ組織 拡大させていく。 1 2 3
EventHub All Rights Reserved. 製品-フェーズによって求められる要件 8 PSF(Problem Solution Fit)到達前 顧客課題の発見・解決策の模索。できるだけコードは書かずに検証できるのが理想。
PMF(Product Market Fit) 到達前 最適な顧客体験・プランの構築。将来の拡張性を考慮しつつ個人あたりの開発効率を向上さ せていく。 PMF(Product Market Fit)到達後 更なる顧客拡大のために組織も拡大していきたい。個人あたりの開発効率も維持しつつ組織 拡大させていく。 1 2 3
EventHub All Rights Reserved. 組織-開発スタイル 9 • EventHubは、スクラムによる開発を推進しており、 フルサイクルを前提としています •
一部のスペシャリストを除いて、エンジニアは原則、 設計から開発・テスト、QA、リリース、O&M、 サポートの全ての工程に携わります Design Develop QA Deploy O&M Support Fullcycle Developer
EventHub All Rights Reserved. 技術スタック 10 フロントエンド Typescript、React、styled-component バックエンド Typescript、Node.js、NestJS、TypeORM
データベース MySQL インフラ AWS(Fargate、Elastic Beanstalk) CI CircleCI モニタリング Sentry、AWS CloudWatch
EventHub All Rights Reserved. 選定技術 11 TypeScriptでの統一 フロントエンド・バックエンドを同一リポジトリで管理 NestJSの採用 1
2 3
EventHub All Rights Reserved. TypeScriptでの統一 12 選定理由 • 言語スイッチによる認知負荷の低減できる •
フロントエンド・バックエンドでコードを共通化できる デメリット • プロダクト要件に合わせたバックエンドの選定ができない。
EventHub All Rights Reserved. Validationの統一 13 • class-validatorを利用して、フロントエンド・バックエンドにおいて処理を統一 ◦ 共通のクラスファイルを作成
◦ フロントエンドでリクエストする際にvalidationを実行 ◦ バックエンドでリクエスト内容をvalidationを実行 共通クラス NestJSでのバリデーション フロントエンドでのバリデーション
EventHub All Rights Reserved. フロントエンド・バックエンドを同一リポジトリで管理 14 選定理由 • モジュールを横断した編集がしやすい(管理がしやすい) •
環境構築やビルドなどのプロセスを統一しやすい デメリット • コードベース・組織が大きくになるにつれて影響範囲が分かりづらくなる
EventHub All Rights Reserved. NestJSの採用 15 選定理由 • 実装方法の指針がある •
TypeScript との親和性が高い デメリット • 学習コストがかかる
EventHub All Rights Reserved. 選定技術(まとめ) 16 TypeScriptでの統一 フロントエンド・バックエンドを同一リポジトリで管理 NestJSの採用 1
2 3 • 認知負荷を低減できる • コード共通化できる • モジュールを横断した編集がしやすい • 環境構築やビルドなどのプロセスを統一しやすい • 実装方法の指針がある • TypeScript との親和性
EventHub All Rights Reserved. エンジニア積極採用中です!!! 17 https://jobs.eventhub.co.jp/ • Webエンジニア •
セキュリティエンジニア • QAエンジニア • インフラエンジニア • エンジニアリングマネージャ • コーポレートエンジニア