hitode909の日記

以前はプログラミング日記でしたが、今は子育て日記です

データ指向アプリケーションデザイン

データの取り扱いについて、世間ではどういったテクニックがあるか知りたくて読んだ。
とくに、データを自分たちで管理するサーバーだけに置いとくならなんとかなるけど、協力会社のサーバーにもAPIを通じて置きたい、となったときに、苦労することが多くて困っていた。
複数のシステムを結合して一貫した結果を得るためにはどういうことが求められているかとか、著者としては、こういうことをやりたいときは、これよりはこれのほうが良いと思う、みたいな意見も書かれていて、議論の取っ掛かりとしては役に立ちそう。


合意という概念が紹介されていて、クライアント間で違う値を持っているときに、どれを採用するか決める必要があったり、レプリケーションをしているときにリーダーとなるサーバーが引退したときに、次のリーダーをどう決めるか、というときにも、最終的に複数のコンピュータ間で、どれにするか決めないといけない。
仮想通貨は、みなの協力によって合意の上で運用されているけど、ある日から別のルールで動き始める人達がいると、新旧のデータの互換性がなくなってしまったりする。一人でフォークしても、フォークした先で合意がないと意味がなくて、ハードフォークも、フォーク先での合意を得られるからこそ実現できるのだな、と思って読んでいた。


普通のプログラミングはなんとなくできるようになってきたけど、典型的な場合から離れると、急にどうしていいかわからなくなる、みたいな悩みを持っている人にはおすすめだと思う。