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
DRY原則を誤った結果生まれた技術的負債
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Tech Leverages
June 30, 2023
Technology
0
6.6k
DRY原則を誤った結果生まれた技術的負債
DRY原則を誤った結果生まれた技術的負債
Tech Leverages
June 30, 2023
Tweet
Share
More Decks by Tech Leverages
See All by Tech Leverages
Google ADKのSub Agentを Agentic Workflowに移行し、 遷移成功率を改善した話
leveragestech
0
96
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
2.2k
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
2.4k
ディメンショナルモデリングを採用してない組織がモデリング本を通じて得られたこと
leveragestech
0
2.2k
レバレジーズのLangfuse活用事例
leveragestech
0
2.2k
CloudComposerによる大規模ETL 「制御と実行の分離」の実践
leveragestech
0
2.5k
「ELT職人」から卒業!Fivetranでデータパイプラインの構築・運用から解放され、 本来の価値創造に集中できる ようになった事例
leveragestech
0
2.1k
SpecKitでどこまでできる? コストはどれくらい?
leveragestech
2
5k
未来を拓くAI技術〜エージェント開発とAI駆動開発〜
leveragestech
2
340
Other Decks in Technology
See All in Technology
CyberAgentの生成AI戦略 〜変わるものと変わらないもの〜
katayan
0
240
[JAWSDAYS2026][D8]その起票、愛が足りてますか?AWSサポートを味方につける、技術的「ラブレター」の書き方
hirosys_
3
190
頼れる Agentic AI を支える Datadog のオブザーバビリティ / Powering Reliable Agentic AI with Datadog Observability
aoto
PRO
0
170
進化するBits AI SREと私と組織
nulabinc
PRO
0
200
JAWS DAYS 2026 楽しく学ぼう!ストレージ 入門
yoshiki0705
2
190
わからなくて良いなら、わからなきゃだめなの?
kotaoue
1
370
"作る"から"使われる"へ:Backstage 活用の現在地
sbtechnight
0
150
Keycloak を使った SSO で CockroachDB にログインする / CockroachDB SSO with Keycloak
kota2and3kan
0
130
PMとしての意思決定とAI活用状況について
lycorptech_jp
PRO
0
130
コンテキスト・ハーネスエンジニアリングの現在
hirosatogamo
PRO
1
120
Claude Code のコード品質がばらつくので AI に品質保証させる仕組みを作った話 / A story about building a mechanism to have AI ensure quality, because the code quality from Claude Code was inconsistent
nrslib
13
8.4k
脳内メモリ、思ったより揮発性だった
koutorino
0
370
Featured
See All Featured
What does AI have to do with Human Rights?
axbom
PRO
1
2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Un-Boring Meetings
codingconduct
0
230
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
240
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
770
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
100
Paper Plane
katiecoart
PRO
0
48k
Paper Plane (Part 1)
katiecoart
PRO
0
5.6k
Fireside Chat
paigeccino
42
3.8k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Navigating Weather and Climate Data
rabernat
0
140
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.5k
Transcript
DRY原則を誤った結果 生まれた技術的負債
TL;DR DRYかどうかの前に単一責務かどうか考えて
これは本当にあった怖い話です
teratailにはこんなコンポーネントが存在します
teratailにはこんなコンポーネントが存在します 違い、分かりますか?
<a>タグ <button>タグ
HTMLタグの種類が違うだけなのに 同じスタイルを都度定義するの、面倒だな ...
そうだ!propsにhrefがあるかどうかで 出し分けるように実装しよう! DRY原則の適用だ!
None
None
最初はこれでも問題なかった 最初だけね...
- 内部コンポーネントを制御するためのPropsが際限なく追加される - 内部で利用しているコンポーネントの機能を制御する必要が出てきた - 制御変数が多くなりすぎて内部実装が複雑になる - 他のライブラリ(ReactHookForm等)との組み込みがしづらくなる - 誰も手をつけられない神ボタンコンポーネントの☆完☆成☆
生まれた問題点
None
結局何がいけなかったの? - DRY(Don’t Repeat Yourself) 原則の適用を間違えた - 似て非なるものを同一視してしまった - SRP(Single
Responsibility Principle)に違反した
どうすればよかったの? - 各コンポーネントを責務という観点で独立させる - <a>タグはHTMLにおいて他のリソースへの参照を示す - <button>は文書上のフォームのコントロールや単純なボタンとしての機 能を提供する
TL;DR DRYかどうかの前に単一責務かどうか考えて