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
how frontend is constructed
Search
Yan | 近藤智哉
February 16, 2024
0
10
how frontend is constructed
Yan | 近藤智哉
February 16, 2024
Tweet
Share
More Decks by Yan | 近藤智哉
See All by Yan | 近藤智哉
why we should go with GraphQL
mtyk_15
0
75
Efficient Feature Implementation Using Type Merging
mtyk_15
0
900
DataloaderのGraphQLを超えた活用を考えてみた
mtyk_15
1
120
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
46
7k
Facilitating Awesome Meetings
lara
50
6.1k
Producing Creativity
orderedlist
PRO
342
39k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Writing Fast Ruby
sferik
628
61k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
YesSQL, Process and Tooling at Scale
rocio
169
14k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
Designing for Performance
lara
604
68k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
170
Speed Design
sergeychernyshev
25
670
Transcript
Frontend を⼤局的に捉える Yan
本⽇の資料は Speaker Deck にて公開しています 撮影等ご⾃由に!
今⽇お話すること 1. ⾃⼰紹介 2. 悩み 3. 分割してみた 4. チームの問題を振り返ってみる
1. ⾃⼰紹介 近藤 智哉 (@mtyk_15) Kondo Motoya GraphQL / React
(バックエンド‧フロン トエンドを担当することが多いです) エン‧ジャパン株式会社 → 株式会社 RevComm → Kalonade 株式会社 → SHE 株式会社 🥰 旅⾏
悩んでいます
フロントエンドで⾃分 (組織) に合う 構成をどう⾒つけたらいいですか
None
トピックが多いよぅ... どう繋がっているか⾒えない...
⼿段が⽬的になってしまう... サーバーコンポーネント導⼊したるで ! E2E やったほうがいんじゃね ? マイクロフロントエンド導⼊しよ。 React Query 導⼊したいなぁぁ。
フロントエンドの「⽬的」を定義して ⼿段を⼤局的にとらえたい !
3. 分割してみた 体系化‧組織化 パフォーマンスの最適化 品質の担保 ユーザー体験‧アクセシビリティ 開発者体験の向上
3. 分割してみた
3. 分割してみた 体系化‧組織化 パフォーマンスの最適化 品質の担保 ユーザー体験‧アクセシビリティ 品質の担保 開発者体験の向上
3. 体系化‧組織化 概要: コードベースの構造を⼤きな意味で体系化する。 ⽬的: 開発者の認知負荷を下げたり、コードベースのメンテナンス性や再利⽤性の向上など。 Keywords: ‧関⼼の分離 (framework の選定,
Design system, headless UI, repo structure, folder structure, State management) ‧可読性 (formatting, naming, coding rules, commenting, review process, modulize) ‧メンテナンスのコスト削減 (documentation) など
3. パフォーマンスの最適化 概要: クライアント側のロード時間の⾼速化、各種リソースの最適化をする。 ⽬的: ユーザー体験の向上 Keywords: ‧クライアントが取得するリソースの最⼩化 (minification, lazy
loading, code splitting) ‧圧縮 (lossy compression, image format) ‧バンドル (webpack) ‧Caching (CDN, State management) など
3. 品質の担保 概要: アプリケーションのバグやエラー、操作上の問題に気付くことができるようにする。 ⽬的: 良いユーザー体験の担保や、アプリケーションの安定性‧信頼性の担保 Keywords: ‧ユニットテスト (Jest, Mocha)
‧ビジュアルテスト (Storybook, Chromatic) ‧E2E テスト (Cypress, Playwright)
3. ユーザー体験‧アクセシビリティ 概要: 直感的な UI の提供や、環境によらずアプリケーションを利⽤できるようにする。 ⽬的: どんな状況にいる⼈にとっても、シームレスなユーザー体験を提供する。 Keywords: ‧⼈間中⼼設計
/ UIUX ‧アクセシビリティガイドライン (WCAG) ‧クロスブラウザ対応 (polyfills, BrowserStack) ‧クロスデバイス対応
3. 開発者体験 概要: プロダクトを作る上での作業やコミュニケーションを最適化する ⽬的: 組織のケミストリーの向上や、プロダクト開発に必要な作業の最⼩化 Keywords: ‧作業⽤ツール (Chrome extension,
Alfred, Arc browser …) ‧チーム間のコラボレーションツール (Chromatic, Figma dev mode) ‧AI の活⽤ (Copilot, CodeRabbit)
3. チームの問題を振り返ってみる 状況: これからプロダクトを作るスタートアップ。toC & B で開発者は少数精鋭。 ⾼速でプロダクトを作って市場に当てたい。 Pick Up
(1) 体系化‧組織化 ‧フォルダ構造の検討 ‧再利⽤性の⾼いコード (2) ユーザー体験‧アクセシビリティ ‧デザインシステム / Headless UI の導⼊ (3) 開発者体験の向上
3. チームの問題を振り返ってみる 状況: メイン事業からスピンアウトして新しい事業を始めた。コードベースは同じだったが専属の チームができてこれからガンガン開発していくフェーズ。 Pick Up (1) 品質の担保 ‧Autify
‧Praywright (3) 体系化‧組織化 ‧フォルダ構造の⾒直し ‧State 管理ライブラリの⾒直し
⽬的を意識して ⽇頃のインプットをしたい!