質問: 今までほとんどPHP案件をやってきたんですが、どの現場でもIFというのがほぼでてきます。 なんとなくしかわかっていないのですが たとえば、 1 お客さんが閲覧するECサイト 2 1を保守する別サイト 3 1と2のデータのやり取りをしてあげているのがIF という認識なのですがあっていますでしょうか? 現場入ってすぐはドキュメント熟読してますが、 DB定義書や要件定義書、基本設計所、詳細設計所は見ればそれとなくわかります。 さらにIF定義書というのがあるのですが、これは見てもさっぱりです。 さすがに社外秘なので見せられませんが、ドキュメントとしてはDB定義書と似ています。 項目物理名、項目論理名、属性(型)、バイト数、必須、形式 というように列があって行でそれぞれ定義してるみたいです。 IFがなにかよくわかっていないので、話がかみ合わないかもしれませんが もしかしたらと思うところがあります。 前の現場ではあるデータの取り込みを担当していました。 4000行ぐらいの記述でしたが、一部を除いては全て理解していて仕様変更のソース改修にもすぐ対応できていました。 その一部とは、バッチ処理の途中(ソースの話)に 連携対象のCSVからユーザーの平文パスワードをcurl()とかいうやつでIFURLとかいうところに飛ばして、 そこで何やってるのかは知りませんが、var_dumpでの結果はそのユーザーに紐付くハッシュ化されたパスワードを取得してきているというものでした。 私の感覚としてデータの受け渡しはGET,POST,FILE,SERVERぐらい知ってれば十分だろうと思ってましたし、というかそれしか知りません。 で、そのculrというやつの結果を見て今だになんとなく感じているのは、 GET,POST,FILE,SERVERは同一サーバーの画面を跨いだデータの受け渡しに使われるのであって curlは異なるサーバー間でのデータの受け渡しに使われるものなのかな?とか感じています。 curlを抑えればIFが理解できるのか? というか、GET,POST,FILE,SERVERは実際に使ってきてるから詳細設計所やDB定義書も見ても 入力させる ↓ action先かheader(URL?para=$para)に遷移する ↓ name属性で受け取る ↓ なんか整形するならする ↓ 受け取った値からDBレコード抽出するならする ↓ 必要なカラムに必要な値を格納する という風にやってこれたんですが これと同じようにIF定義書を見て、「あぁ~そういうことね、なるほど、ふむふむ」と思えるには何を理解すればよいのでしょうか?
回答: 機能間の連携やシステム間の連携の仕様書だと思います。 システム間でデータの連携だとかデータをやり取りする際に データの形式や通信方法など取り決めておく必要があると思います。 おそらくサイト1の処理の途中でサイト2に(curlやajaxなどを使って)POST送信したりしているのではないでしょうか。 IF定義書にはPOSTデータの項目について書かれているのだと思います。(あるいはPOSTでJSONデータを送信しているのであればJSONデータの項目について) また2から1にもPOSTに対するなんらかのレスポンスデータを返すのでそのデータの定義も必要です。 IF定義書があれば、サイト2の開発者はサイト1のソースコードを読まなくても、IF定義書にだけ目を通せばどのようなデータがPOSTされてくるのかというのが一目でわかるので、そのための資料と考えれば良いと思います。