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
9
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
72
Efficient Feature Implementation Using Type Merging
mtyk_15
0
880
DataloaderのGraphQLを超えた活用を考えてみた
mtyk_15
1
120
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Automating Front-end Workflow
addyosmani
1366
200k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
Fireside Chat
paigeccino
34
3k
Done Done
chrislema
181
16k
Why Our Code Smells
bkeepers
PRO
334
57k
Building Adaptive Systems
keathley
38
2.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
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 管理ライブラリの⾒直し
⽬的を意識して ⽇頃のインプットをしたい!