Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Bulletproof Reactで始める!ESLintで強化する! 効果的なプロダクト開発
Search
naro143
November 14, 2023
Technology
0
600
Bulletproof Reactで始める!ESLintで強化する! 効果的なプロダクト開発
# 参考資料
https://github.com/alan2207/bulletproof-react
naro143
November 14, 2023
Tweet
Share
More Decks by naro143
See All by naro143
プロポーザルのコツ ~ Kaigi on Rails 2025 初参加で3名の登壇を実現 ~
naro143
1
500
「技術負債にならない・間違えない」 権限管理の設計と実装
naro143
38
16k
Other Decks in Technology
See All in Technology
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
0
120
オープンデータの内製化から分かったGISデータを巡る行政の課題
naokim84
2
1.3k
なぜフロントエンド技術を追うのか?なぜカンファレンスに参加するのか?
sakito
9
2k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
980
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
Uncertainty in the LLM era - Science, more than scale
gaelvaroquaux
0
520
AI/MLのマルチテナント基盤を支えるコンテナ技術
pfn
PRO
5
720
こがヘンだよ!Snowflake?サービス名称へのこだわり
tarotaro0129
0
110
Master Dataグループ紹介資料
sansan33
PRO
1
4k
知っていると得する!Movable Type 9 の新機能を徹底解説
masakah
0
210
How native lazy objects will change Doctrine and Symfony forever
beberlei
1
380
「え?!それ今ではHTMLだけでできるの!?」驚きの進化を遂げたモダンHTML
riyaamemiya
10
4.4k
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
960
Designing for humans not robots
tammielis
254
26k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Become a Pro
speakerdeck
PRO
30
5.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
It's Worth the Effort
3n
187
29k
Rails Girls Zürich Keynote
gr2m
95
14k
Balancing Empowerment & Direction
lara
5
780
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
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