「DDDを言葉だけ知って満足している」過去の自分への警告:知った気になるな、深掘りしろ

私はこれまで、DDD(ドメイン駆動設計)について、「ユーザーインターフェース・アプリケーション・ドメイン・インフラがある」「ビジネスロジックはドメインに置こう」といった基本概念は理解しているつもりでした。

しかし、それは完全に「言葉だけ知って満足している」状態でした。

AIのコードをレビューできない「ハリボテの知識」

その事実を突きつけられたのは、AIが実装したコードをレビューした時です。

AIが自動生成したコードに対して、
「モデルのバリデーションは本当にここに置くべきか?」
「ここはValueObjectにするべきか?それともEntityにするべきか?」
といった判断を迫られた時、私は瞬時に決断できませんでした。ましてや、脳内で明確な回答を出すことなど不可能です。

さらに、「インフラ層」と一言で言っても、そこにExcelやファイルのテンプレートを置くべきなのかどうかすら悩んでしまう始末。悩んでいる時点で、概念を咀嚼して自分のものに出来ていない証拠です。

結果として、AIが書いたコードを数週間後にAIの支援なしでリーディングしたり修正したりする際、調査に膨大な時間がかかってしまいました。

AIの支援が切れた途端に「ポンコツ」になった自分

もっと絶望的だったのは、GitHub Copilotの制限の都合でAIの支援が一時的になくなった時のことです。

それまで月に10万行以上コードを書いていたのに、一気に生産性が落ち、1日1000行も書けなくなりました。AIの支援がないと、さも「ちゃんとしたDDDの設計原則に従っている」はずの自分のコードに対して、書き方にまったく自信が持てないのです。
調査にばかり時間が掛かり、文字通り「ポンコツ」になりました。

言葉を知っているだけで、本質的な設計原則が身についていなければ、AIという補助輪が外れた瞬間に立ち転けします。

もっと調べに調べろ、深掘りしろ

この強烈な挫折を経て、私は「もっとAIの支援がなくても自分で判断できるようになりたい」と強く思いました。
ドメインやインフラといった概念を、ただのバズワードとしてではなく、実務のコードの中でどう振る舞うべきなのか、改めて深掘りしていきます。
自分の言葉とコードで説明できるようになるまで咀嚼しなければならないと、強烈に痛感した出来事でした。

コメント

タイトルとURLをコピーしました