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
Bulletproof Reactで始める!ESLintで強化する! 効果的なプロダクト開発
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
naro143
November 14, 2023
Technology
700
0
Share
Bulletproof Reactで始める!ESLintで強化する! 効果的なプロダクト開発
# 参考資料
https://github.com/alan2207/bulletproof-react
naro143
November 14, 2023
More Decks by naro143
See All by naro143
プロポーザルのコツ ~ Kaigi on Rails 2025 初参加で3名の登壇を実現 ~
naro143
1
690
「技術負債にならない・間違えない」 権限管理の設計と実装
naro143
41
21k
Other Decks in Technology
See All in Technology
食べログのサーキットブレーカー導入を振り返って
atpons
1
160
インフラが苦手でも大丈夫! 紙芝居 Kubernetes -WWGT 10周年編-
aoi1
1
310
AIプラットフォームを運用し続けるための可観測性
tanimuyk
4
830
GoとSIMDとWasmの今。
askua
1
350
JEP 522 Deep Dive - G1 GC同期コスト削減によるスループット向上を徹底検証&解説
tabatad
1
500
Kiro CLI v2.0.0がやってきた!
kentapapa
0
250
脅威をエンジニアリングの糧にして:恐怖を乗り越えた先にあったもの / Turn threats into fuel for engineering: what lay beyond overcoming fear
nrslib
1
360
自称宇宙最速で不合格となったAIP-C01にリベンジを果たすべくAIで問題集アプリを作ってみた。
yama3133
0
250
React、まだ楽しくて草
uhyo
7
3.1k
Spring AI × MCP 入門〜AIエージェントへのツール公開、境界設計から始める最小構成 〜
yuyamiyamoto
0
190
AIガバナンス実践 - 生成AIコネクタのデータ漏洩リスクと実務対策
knishioka
0
150
関西に縁あるMicrosoft MVPsが語るCopilotの未来
kasada
0
850
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
97
6.6k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
420
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Documentation Writing (for coders)
carmenintech
77
5.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
380
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
AI: The stuff that nobody shows you
jnunemaker
PRO
7
670
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
710
WENDY [Excerpt]
tessaabrams
11
38k
Transcript
Bulletproof Reactで始める!ESLintで強化する! 効果的なプロダクト開発
Yusuke Ishimi 株式会社プレックス SaaS事業の立ち上げやっています X : @naro143 🐱: @naro143
時間が足りない
関心事を分けると開発は早くなる
Bulletproof React
React Appのアーキテクチャ 説明と具体例があり非常に良い。 https://github.com/alan2207/bulletproof-react
Project Structure
大事な箇所だけ、さくっと見ます
features
大事な箇所だけ、さくっと見ます
導入してみた
前提 • SaaS事業の立ち上げ期 • 正式リリースに向けてデザインリニューアルをするタイミングで導入 • Next.js 13のプロジェクトに導入 特性 •
市場・顧客の知識が複雑 • 機能の正解がわからない • 副業メンバー多数での開発
シンプルな方針 1つのroutingに対して1つのfeaturesとした。理由は後述。 • src/app/projects • src/features/projects • src/app/projects/[projectId] • src/features/project-detail
こんな感じ ▼page.tsx features/ ▶
良かったこと • 「どこに実装するか?汎用的に実装するか?」で悩む時間が少なくなった。 ◦ プロダクト初期では「同じ UIだけど、同じ責務か?」の判断が難しい。(◀ 方針の理由) ◦ 個人的には「不毛な実装しているな」と感じるまでは共通化はしなくて良いと考えている。 •
影響範囲がfeatures内に閉じるため、考慮事項が少なくなった。 ◦ 副業メンバーなど深く事業に関わらないメンバーがより成果を出せるようになった。 ◦ 挑戦とフィードバックの質が上がり、メンバーの成長が早くなった。 • 構成の指針があることで、自然と責務の分離がされるようになった。
featuresの導入によって、 関心事が分かれて開発が早くなった✨
ESLint
依存関係を制限する • features/ は他のfeaturesを参照しない • components/ はfeaturesを参照しない • lib/ はfeaturesを参照しない
• providers/ はfeaturesを参照しない
index.tsでexportしたものだけ許可する features内は ../ で参照できる。
まだ語りたいけど...!
ここまで!
参考 • https://github.com/alan2207/bulletproof-react