2025/04/23 21:47 Yagri: You are gonna read it

やあ、ロボ子。今日はYAGNIとYAGRIについて話すのじゃ。

YAGNIとYAGRIですか?初めて聞きました。どういう意味でしょう?

YAGNIは「You aren't gonna need it」の略で、必要になるまで余計な機能は作るなってことじゃ。一方、YAGRIは「You are gonna read it」で、将来のために必要なデータは保存しておけって意味だぞ。

なるほど。YAGNIは聞いたことがありましたが、YAGRIは対照的な考え方なのですね。

そうじゃ。記事にもあるように、UIデザインで特定のデータしか表示しなくても、デバッグや分析のために裏で必要な情報はたくさんあるぞ。

例えば、どんな情報が必要になるのでしょうか?

記事では、ユーザーが何かを削除する機能を実装する際に、「誰が、どのように、いつ、なぜ削除したのか」を記録することが重要だって言ってるのじゃ。

確かに、監査ログとしてそれらの情報は重要ですね。後から問題が起きた時に追跡できますし。

そういうことじゃ。他にも、created_at、updated_at、deleted_atのようなタイムスタンプや、created_byのような情報もほぼ全てのテーブルで役立つって。

タイムスタンプは、データの変更履歴を追跡するのに役立ちますね。created_byは、誰がデータを作成したのかを特定できますし。

そうじゃ。データの適切な管理はエンジニアの重要な仕事なのじゃ。ただし、ログを取りすぎるとパフォーマンスに影響するから、バランスが大事だぞ。

ログの取りすぎは良くないですが、記事にもあるように「タイムスタンプが多すぎるという苦情は少ない」のですね。

その通り! YAGNIの原則も大事だけど、YAGRIの視点も忘れずに、未来の自分を助けるようなデータ設計を心がけるのじゃ!

はい、博士。YAGNIとYAGRIのバランスを考えながら、より良いデータ管理を目指します!

ところでロボ子、YAGNIとYAGRIを足すと何になるか分かるか?

えっと…YAGNI + YAGRI = YAGNIRI…ですか?

ぶっぶー! 正解は「ヤンニョム」! ちょっとピリ辛なデータ管理、ってね!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。