安定したフェーズに入ったプロダクトのモデルについて再考する
D d d 安定したフェーズに入ったプロダクトのモデルについて再考する
By YasuhiroKimesawa 20 February 2020

先日こちらの記事にて、安定したフェーズに入ったからこそモデルを変更していこうということを書いたのですが、 ここで改めて、 「モデルとはなにか?」 というテーマについて考えたいと思いました。 特に、 安定したフェーズに入ったプロダクトにとってモデルがどう役に立つのか を再考したいと思います。 モデルの名前を熟考するのは可読性や保守性のためだけではない そもそもモデルとはなにか。 ドメイン駆動設計のエヴァンス本には

read more
安定したフェーズに入ってこそモデルを変更しよう
D d d 安定したフェーズに入ってこそモデルを変更しよう
By YasuhiroKimesawa 12 February 2020

プロダクト初期からリリースまで、ドメイン駆動設計でプロダクトを設計していけば、頻繁にモデルの名前を変更していくでしょうし、チームで議論する機会も多いかと。 これが、プロダクトがうまく行って、運用も安定していくと、モデルの名前が変更される機会が減ってきていないでしょうか? しかし、プロダクト初期に付けた名前や最初につけた名前がずっと正しいとは限りません。 まずはその理由を探ります。 最初に付けた名前が正しいとは限らない 1. 実装時には違和感に気が付かないことがある 実装している人やチームは当然そのモデルの名前をつけた背景やロジックを知っているわけで、それ故、違和感を感じるべき名前でもそのときには気が付かないことが多いです。 後からチームに入ってきた人が見ると、なんでこの名前なんだろう???と思うわけです。 2. 外部連携先に名前を合わせがち 本来、外部連携先というのはコンテキストの外なので、名前を合わせる必要はありません。むしろ、自分のコンテキスト内での業務内容から名前は決められるべきで、外部連携先での名前をそのまま使うと意味がわからなくなることもあります。

read more
なぜ良いソースを書く必要があるのか
D d d なぜ良いソースを書く必要があるのか
By YasuhiroKimesawa 02 February 2020

Webナイト宮崎 Vol.8 ~てげ良いコード書きたい~ に参加しました 宮崎で8回目のLT大会に登壇してきました。 仕事で遅れ、発表順を最後にしてもったあげく、ギリギリの参加となってしまい、他の方のLTが聴けなかったのが残念。 スライドはこちら 良いコードに正解はあるか 制限時間5分のところ、10分喋ってしまいましたが、喋り足りなかったので(!?)、こちら少し補足します。 なぜを考える大切さ 冒頭では、なぜ良いコードを書きたいのか?

read more
ドメイン駆動設計のための静的型付き言語のすすめ
D d d ドメイン駆動設計のための静的型付き言語のすすめ
By YasuhiroKimesawa 10 December 2019

この記事はQiitaに書こうと思っている記事を先行で公開しています。 ドメイン駆動設計も随分と浸透してきたと思うこのごろ。 でも、未だに動的型付き言語で頑張っている(弊社含め)現場も多く、今回は静的型付き言語について語ろうかと。 そもそもWebアプリの業界では単純にPHPやRuby、Pythonなど動的片付け言語で頑張る現場が圧倒的に多いかと思います。 しかし、ドメイン駆動設計を実践していくと、ある事実が襲ってきます。それはドメイン駆動設計は「型」の世界で成り立っているということ。 実践するにあたって、まず最初に乗り越える壁がレイヤアーキテクチャだったりするので、なかなか難しいと思いますが、 本質的な部分は当然モデル。EntityであったValueObjectであるわけです。 もちろん、動的型付きの言語でもモデルは書けます。弊社でもPython3の型ヒントを駆使してモデルを書いています。 ただ、モデルとは何かを考えてみていただきたい。 モデルとは、プロジェクトに携わる人々の頭のなかで構築された概念の集まりであり、ドメインについての洞察を反映した、用語と概念間の関係性からできている。(エリックエヴァンスのドメイン駆動設計 第一部第二章 コミュニケーションと言語の使い方 より)

read more

About

システムエンジニア 株式会社 アラタナ所属 ドメイン駆動設計とアジャイルを活用した設計を信条としています。 認定ScrumMaster取得

Know More

Social