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
23
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
1.2k
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
1.4k
ディメンショナルモデリングを採用してない組織がモデリング本を通じて得られたこと
leveragestech
0
1.2k
レバレジーズのLangfuse活用事例
leveragestech
0
1.2k
CloudComposerによる大規模ETL 「制御と実行の分離」の実践
leveragestech
0
1.5k
「ELT職人」から卒業!Fivetranでデータパイプラインの構築・運用から解放され、 本来の価値創造に集中できる ようになった事例
leveragestech
0
1.1k
SpecKitでどこまでできる? コストはどれくらい?
leveragestech
2
4.5k
未来を拓くAI技術〜エージェント開発とAI駆動開発〜
leveragestech
2
320
Other Decks in Technology
See All in Technology
【インシデント入門】サイバー攻撃を受けた現場って何してるの?
shumei_ito
0
1.4k
Context Engineeringの取り組み
nutslove
0
250
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
0
130
GitLab Duo Agent Platform × AGENTS.md で実現するSpec-Driven Development / GitLab Duo Agent Platform × AGENTS.md
n11sh1
0
110
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
290
toCプロダクトにおけるAI機能開発のしくじりと学び / ai-product-failures-and-learnings
rince
6
5.5k
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
1.4k
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
130
セキュリティ はじめの一歩
nikinusu
0
1.5k
0205_Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した__.pdf
riku_423
0
140
2人で作ったAIダッシュボードが、開発組織の次の一手を照らした話― Cursor × SpecKit × 可視化の実践 ― Qiita AI Summit
noalisaai
1
370
Amazon Bedrock AgentCore 認証・認可入門
hironobuiga
2
500
Featured
See All Featured
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
How to build a perfect <img>
jonoalderson
1
4.9k
What does AI have to do with Human Rights?
axbom
PRO
0
2k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
230
Facilitating Awesome Meetings
lara
57
6.7k
Code Review Best Practice
trishagee
74
20k
So, you think you're a good person
axbom
PRO
2
1.9k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
240
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
910
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
170
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かどうかの前に単一責務かどうか考えて