『サービスデザインパターン』を読んだ

サービスデザインパターンという本を読んだので、読んだ理由と感想を書きます。

サービスデザインパターン SOAP/WSDLとRESTful Webサービスの基本的な設計ソリューション

振り返りとして読むことにした

2012年の本で、Web サービスの設計手法の進化の速度を考えると、内容が少し古くなっている。しかし、最近の情勢を考えると RPC スタイルやメッセージスタイルの API 設計について振り返る良い機会だと思ったので、読むことにした。

複数の Web サービスを協調させる設計を採用する事例は、ここ最近でより身近になってきているし、サービス同士を強調させるための規格化されたインターフェースや、そのための便利なツールチェイン、フレームワークなども沢山登場してきている。

そういう中で、まずは分散オブジェクト通信の実現方法を中心的に考えていた頃から振り返って、なぜ Web サービスなのか、なぜ HTTP なのか、リソーススタイルの API と RPC スタイルの API とメッセージスタイルはそれぞれどういう問題解決のために生まれたもので、採用にあたって何を考慮すべきなのか…という背景知識を持っておけば、昨今の新しい道具を考える上でより良い理解が得られるだろう、という目論見。

電子版は提供されていないようなので、紙で読むしかないなと思ってほしい物リストに入れておいたところ、飲み会での建て替え分の支払いとして贈ってもらい、手に入れることができた。ちなみに自分のほしい物リストはこちらで、本を贈ってもらえれば、感想を Medium に書いたり、書かなかったりします。

ほしい物リスト

論理的に整理された内容で良かった

実際に本書を読んでみた感想としては、前半部分ではなぜ Web サービスなのかというところに納得の行く論理が与えられていて、中盤以降ではサービス設計時のデザインパターンの良いカタログになっているなという印象だった。

自分がプログラミングという分野に取り組むことになったのは2010年代からで、その頃には既に Web サービス開発のための基盤技術みたいなものはほぼ出来上がっていて、今はただその延長線上に居るという認識がある。「当たり前」の事柄が既に幾つか出来上がってしまっている環境にいて、他の設計の選択肢について思考できていない部分があったり、最初に取り組んだ技術を強く信じてしまって、先入観を持って考えてしまっているところがあったりする。例えばリソースベースの API 設計であったり、時間的結合度の緩い(短時間で処理できるような)要件のことを中心的に考えてしまっているところがある。この本ではそれぞれの技術の登場背景に対して先入観や偏りのない考察がされていて、そういう意味で自分にとってとても良かったと言える。

全体的な書き方の流れとして、こういう要求があり、こういう問題があり、こういう解決策が考えられた、というように説明されていて、論理的に整理されているところに好感が持てた。

目新しい情報はなかったが、技術の繋がり方が理解できた

話が抽象的に進むことが多いので、ああこれは例えばあのサービスの Web API みたいな感じだとか、これは例えば Webhook みたいな感じだ、みたいな知識を持っていなければ理解が難しいところは沢山あるので、楽しんで読むためにはそれなりに知識が求められる内容だとは思う。

目新しい設計パターンが得られたわけではなかったものの、普段意識していなかったものの確かにこういうパターンも存在するとか、このパターンはこういう要求がなされた結果登場したものであるとか、Web サービスにおける個々の技術の繋がり方がより良く理解できるようになったことが大きな収穫だと思う。