Whimlog

文体が安定しませんが、ご了承ください。

【課外学習 I】Gopher道場 に行ってきました

行ってきました

先日、卒業した Gopher 道場繋がりで、卒業生向けのイベントが開催されましたので参加しました。 Gopher 道場については以下の記事にまとめてあります。

asuforce.hatenablog.com

イベントの詳細はこちらです。 @pospome san による DDD についてのお話を聞きます。

mercari.connpass.com

当日の様子

merpay さんのケータリングはいつもおしゃれ! 以下はミートパイですかね?美味しかったです。

感想

DDD については、エリック・エヴァンスの本があること。またその本が鈍器本の一種であること、ドメインを使って設計をすること以外の情報は持ち合わせていませんでした。 なので、「ドメイン」駆動とはどういうことなのかを聞きたくて参加しました。

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

発表を聞いてみて超簡単にまとめると、DDD とは問題領域、業務・関心ごとを分析し、設計、そして実装を行い成果物を生み出す設計手法になると思います。

普段行っている開発手法は DOA/data oriented approach(データ中心のアプローチ)で、データの格納先に合わせて設計しています。 DAO のデメリットとしましては、データ構造をそのままコードで扱う必要が出てきます。そうすると、あるコードに手を加える時に、業務(解決したいこと、問題)を理解 => コードを理解 => DBの構造を理解というステップが必要になります。これに対してDDD ではデータ構造は DB に合わせるものの、コードは業務に合わせます。こうすることで、業務を理解すれば、コードを理解できるようになります。

概念の話なので、非常に難しいですが、自分の中での理解はいまのところこんな感じです。

「既存の何かが抱えている問題を解決するアプローチ」というのがポイントで、エリック・エヴァンスの本ではシステム化されてないものを課題としているそうです。ですが、Web の開発においてはシステム化されていない問題だけでなく、新しい概念など(Twitter の呟きなど)を扱う性質上、本の内容をそのまま実行できるわけではないというのが「なるほど」となったポイントでした。機会があれば、本と現実の web 開発の差分の共有についての発表もあるかもとのことでしたので、ぜひ聞きたいです。

今回の発表で、DDD はなんか凄そうというボヤけた認識から1つステップアップできました。 エリック・エヴァンスの本は読んでみたいとは思っていたので、近いうちに読みたいなと思いました。

以下は今回のメモです。

Gopher 道場の卒業生向けになりますが、次の課外活動は GCP についてです。 こちらも参加予定で楽しみにしております。

mercari.connpass.com