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
チームで作るフロントエンドの歩き方
Search
Souma Suzuki
December 19, 2019
Programming
3
900
チームで作るフロントエンドの歩き方
2019/12/19 に行われた HRBrain Engineers Meetup の登壇資料です
Souma Suzuki
December 19, 2019
Tweet
Share
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
690
チームをチームにするEM
hitode909
0
440
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
720
Python札幌 LT資料
t3tra
7
1.1k
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
320
CSC307 Lecture 03
javiergs
PRO
1
470
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
1.1k
GoLab2025 Recap
kuro_kurorrr
0
3.7k
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
210
Basic Architectures
denyspoltorak
0
180
Grafana:建立系統全知視角的捷徑
blueswen
0
280
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
140
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.6k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
40
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
52
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.5k
Paper Plane (Part 1)
katiecoart
PRO
0
3k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
290
Designing for Performance
lara
610
70k
Claude Code のすすめ
schroneko
67
210k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
Transcript
チームで作る フロントエンドの歩き⽅
誰? 鈴⽊ 聡真 フロントエンドエンジニア TypeScript を書く仕事をしています 座右の銘 楽しく働く 得意なこと 三⾓⾷べ
弊社のフロントエンド
メインのサービス ⽬標評価管理 React / TypeScript ⼈事データベース React / TypeScript 認証サービス
React / TypeScript
React / TypeScript しかやってない!
そんなことありません LP Nuxt ( Vue ) ヘルプページ Nuxt ( Vue
)
最適な技術選定 メインのサービスではできるだけスケールする技術を LPはマークアップに寄り添ったSSRできる技術を ヘルプはメンテコストが低く静的HTMLを⽣成できる技術を
技術選定のやり直し ⼈事データベースでは、1から技術選定をやり直しました - React - Vue - Angular - Elm
でもやっぱり React いいよね
新しい技術への挑戦 その技術を選定する理由がしっかりしていれば、いつでも歓迎 - ReactHooks - Formik / Yup - GraphQL
( Apollo ) - Protocol Buffer ( Twirp ) - CustomElement ( 検証中 )
楽しく開発しよう
楽しくないこと バグった!サーバーサイドのスキーマが変わってる 機能改修?コードを触ったらすぐバグるから無理 え、このコード誰がSSHでデプロイするんですか?
楽しくしよう スキーマ駆動開発 Reduxを中⼼とした設計 CI/CDですべてデプロイ
スキーマ駆動開発 Reduxを中⼼とした設計 CI/CDですべてデプロイ
gqlgen / protoc スキーマ *.go .d.ts
モックサーバー スキーマ モックサーバー フロントエンド
スキーマ駆動開発 Reduxを中⼼とした設計 CI/CDですべてデプロイ
コード量が多い
⼤事なこと APIの型とReduxの型は別々に作る Redux はできるだけUIに近い形で作る ロジックはUIに書かず Redux に書く
⼤事なこと ロジックはUIに書かずRedux に書く
⼤事なこと ロジックは UIに書かず Redux
re-ducks パターン Redux Selectors Reducer UI Operations API
Domainを中⼼に考える Redux Selectors Reducer UI Operations API Domain
UIはどうしてるの? Redux Selectors Reducer UI Operations API Domain
Atomic Design Pages Templates Organisms Molecules Atoms UI
複数サービスあると… Pages Templates Organisms Molecules Atoms A Pages Templates Organisms
Molecules Atoms B
ここは共通なことが多い Pages Templates Organisms Molecules Atoms A Pages Templates Organisms
Molecules Atoms B
HRBrain UI ライブラリ まだ内緒だよ
実装を楽にする Pages Templates Organisms Pages Templates Organisms UI ライブラリ デザイン
スキーマ駆動開発 Reduxを中⼼とした設計 CI/CDですべてデプロイ
こんな経験ありませんか? 社⻑が書いたPHPのインデント滅茶苦茶!読めないよ テスト間違ってるのにデプロイしちゃったよ あ!SSHしてたら本番のフォルダ消しちゃった
実話です
CI/CD で楽する Eslint / Prettier を⾃動チェック Jest を⾃動実⾏ 必ずCIからデプロイ
CI/CD フロー Github CircleCI Cloud Build Container Registry Kubernates
CI/CD フロー Github CircleCI Cloud Build Container Registry Kubernates
CI/CD で業務フロー効率化 Github CircleCI Netlify ブランチPreview Developer 仕様・デザイン確認 Firebase モックサーバー
まとめ
まとめ ⾊々な技術を使ってるよ 設計をおざなりにしないよ 楽しく開発するために⾊々なものを活⽤してるよ