メモやらログやら

考えたこととかメモする

「データ指向アプリケーションデザイン」のメモ

2章

宣言的コード:SQLクエリのような、「結果をこのような形でください」というような依頼。裏側で処理をどのように行っているかは気にしなくてよく、CPU利用などのその時に適した最適化なども期待できる。一方で、既存の命令セット(という表現はよいのか?)の外のことをするのが難しいので、柔軟性の面では命令的コードに劣るか。

命令的コード:通常のプログラミングのように、「この順でこのように処理をしてね」のような依頼により、所望の結果を得る。処理を自由に組み合わせられるので、柔軟性は高いが、その分CPU最適化などが難しい。また、宣言的コードのように、結果だけください、というわけにはいかず、結果に至るまでの処理を自身で構成する必要がある。

 

 どちらも一長一短あり、データモデルによりどちらが適してるかも変わりそう。また、どちらか一方のみしか使わない、というようなものでもなく、ミドルウェアによってはどちらも(というかこれらの中間的なもの)をつかえるか。

 

ドキュメント型DB:データが単体で完結していて、データ間に関係が薄いものに向く。

グラフデータベース:あらゆるもの同士に関係が存在するようなデータに向く。

RDB:データ間に関係性が強いもの

 

まずはデータから考えて、それらにどのような特性・関係性があるか見ていくことで、適した処理方法やミドルウェアが見えてくる。これらに絶対的な正解はなく(明らかに適さないものもあるだろうが)、たいてい何らかのトレードオフから重視したいものを選ぶ形か。

 

3章