Mandateという文書があります。日本語に訳すと「ベゾスのお達し」とか「ベゾスの勅令」でしょうか。言わずと知れたAmazon.comのCEO、ジェフ・ベゾスが開発チームに通達した内容です。これが(元Amazon.com従業員によって)公開されたのは2011年ですが、ベゾスがこのお達しを出したのは2002年前後です。17年経過した現在でも真理をついているどころかようやく時代がベゾスに追いついたかという感想です。Mandateの紹介と、僭越ながら補足説明も行います。Yeggeによって公開されました。Rantというタイトルで、Amazon.comと比べたGoogleに対する不満として投稿されたのですが、残念ながらGoogle+の閉鎖に伴い元記事も消えてしまったようです。Rant"で検索するとたくさんのページがヒットします。検索で最初にヒットしたこのページを紹介しておきます。お達しの内容は以下の通りです。日本語に訳してみました。今後、全てのチームはデータと機能をインターフェースを通じて公開せよ。チーム間のコミュニケーションは、その公開されたインターフェースを通じて行え。公開インターフェースを使わないプロセス間通信――直接リンク、他のチームのデータの直接読み取り、共有メモリ、その他のいかなるバックドアも――は一切認めない。ネットワークを経由したインターフェース呼び出しのみ、唯一許可される。インターフェースに使う技術は特に規定しない。HTTP、CORBA、Publish/subscribe、カスタムプロトコルなど。全てのインターフェースは例外なく、外部に公開できるように設計し直さなければならない。各チームはインターフェースを世界中の開発者に公開できるように計画・設計しなければならない。一切の例外は認めない。これを守らない人は誰であれクビにする。補足説明インターフェースとは?ここでいうインターフェースとは、各サービスが正式な機能として公開しているAPIと考えて問題ないでしょう。使う技術は何でもいい(状況に応じて適切に使うべきだ)けど、チーム間・サービス間のデータ処理は常に公開APIを通じて行いなさいという内容です。ウェブサービスの文脈ではHTTPによるWebAPIに限定してもいいかもしれません。今ならRESTやGraphQLのようにある程度共通化されたアーキテクチャがありますね。公開インターフェース以外の手段とは?例としていくつか挙げられていますが、もう少し具体的に書くと例えばこんなかんじです。非公開APIの使用等みなさんもこんなことをやった経験ありませんか?本当に例外はないの?本当です。「アカウントを凍結されたユーザー一覧を取得するAPI」のように社内の人間が管理画面からしか使わない機能で、それもローカルネットワーク内のPCからしか使えない設定にしていようとも、です。仕様はいつどのように変わるか予測できません。「凍結ユーザーの管理業務は外注しよう!」とか「第三者がこの機能を使ってスマートフォンアプリを作成できるようにしよう!」と方針が変わるかもしれません。そんなときも、ベゾスのお達しを守っていれば簡単に対応できます。本当に公開しないとダメなの?「そんなこと言ったって絶対に限られた場所からしか使われないAPIもあるし、そういったAPIは内部ネットワークからしかアクセスできないように制限してるんだけど、本当に全てのAPIを全世界に公開しなきゃダメなの?」という意見もあると思います。それに対する答えはNOです。全てのAPIを公開する必要はありません。一度引用元の言葉を確認しましょう。強調範囲は変えています。各チームはインターフェースを世界中の開発者に公開できるように計画・設計しなければならない。今すぐ全てのAPIを公開せよというわけではなく、必要になったときにすぐ公開できるような設計にしなさいと書いてあります。「全てを公開せよ」とか「アクセス元の制限をするな」という意味ではありません。具体的にはこんな感じでしょうか。WAFやACLで守られていることを前提とせず、API自体に適切な認証機能をつけよ想定外の使い方にも耐えられるように、セキュリティーには手を抜くな将来のAPIの仕様変更に備え、使われる場所が限られていると想定せず、内部APIであろうともきちんとバージョン管理せよ第三者が読んで理解できるドキュメントを作成せよまとめベゾスが言いたいことは実にシンプルです。アクセスする必要のあるデータは必ずAPIを用意せよそのAPIは、全世界に公開することを前提として設計せよ一切の例外は認めない今でいうマイクロサービスやマッシュアップの考えですが、驚くべきはベゾスの慧眼。最初に書きましたが、ベゾスがこれを通達したのは2002年前後です。XPが発売された頃の話で、スマートフォンなんか影も形もない時代です。Mandateがなければ、インターネットサービスの発展は10年以上遅れていたかもしれません。みなさんも、ウェブサービスを作るときはぜひ意識してみてください。requestStockLike6@shimataro999手品業界からWeb業界に来ました。「Weblio辞書」「Weblio英会話」の運営企業。upLoginユーザーは見つかりませんでした。