質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • PHP

    21267questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • サーバ

    800questions

    サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

  • if

    219questions

    if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

  • インターフェース

    27questions

    インターフェイスという用語はハードウェア・ソフトウェアの両方に使うことができます。 一般的に、インターフェイスは内部処理の詳細を見せないように設定されます。オブジェクト指向プログラミングにおいて、インターフェイスはabstractクラスとして定義されます。

現場でよく使われているIFについて

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 900

kuzurotto

score 390

今までほとんどPHP案件をやってきたんですが、どの現場でもIFというのがほぼでてきます。

なんとなくしかわかっていないのですが
たとえば、
① お客さんが閲覧するECサイト
② ①を保守する別サイト
③ ①と②のデータのやり取りをしてあげているのが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定義書を見て、「あぁ~そういうことね、なるほど、ふむふむ」と思えるには何を理解すればよいのでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

おっしゃる通り、IF仕様書は名前が示す通りインターフェイス、つまり、主に別のシステムまたはサブシステムなどからデータを連携(取得/送信)するときの仕様を定義するもので、ターゲットが違うだけでDB定義書(テーブル定義書)とほとんど似ております。

WebのAPIを使用することを考えるとわかりやすいかと思います。
例えば、Twitterのツイートを取得するAPIの場合

//これは実際のAPIが返すものと違います。
{
  "user" {
    "name": 
    "profile_image_url":
  },
  "text": 
  "created_at": 
}


といった感じになるかと思います。

  • "user"という項目があり、その"user"には"name"と"profile_image_url"がある。それらのデータ型はstring
  • "text"という項目があり(ツイート本体)、データ型はstring
  • "created_at"という項目(ツイート日時)があり、データ型はstringでフォーマットは"yyyy/mm/dd hh:mm:ss"
    このようにデータの内容にどういった項目があり、それぞれのデータ型、または文字列などのフォーマット形式などの定義が書かれています。

また、単にデータのやり取りだけではなく追加や更新、削除(CRUD)に関しても書かれているのもあるでしょう。どれをキーにしているか、コマンド名(URLパス)は?といった定義も含まれます。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

機能間の連携やシステム間の連携の仕様書だと思います。
システム間でデータの連携だとかデータをやり取りする際に
データの形式や通信方法など取り決めておく必要があると思います。

おそらくサイト①の処理の途中でサイト②に(curlやajaxなどを使って)POST送信したりしているのではないでしょうか。
IF定義書にはPOSTデータの項目について書かれているのだと思います。(あるいはPOSTでJSONデータを送信しているのであればJSONデータの項目について)
また②から①にもPOSTに対するなんらかのレスポンスデータを返すのでそのデータの定義も必要です。

IF定義書があれば、サイト②の開発者はサイト①のソースコードを読まなくても、IF定義書にだけ目を通せばどのようなデータがPOSTされてくるのかというのが一目でわかるので、そのための資料と考えれば良いと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • PHP

    21267questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • サーバ

    800questions

    サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

  • if

    219questions

    if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

  • インターフェース

    27questions

    インターフェイスという用語はハードウェア・ソフトウェアの両方に使うことができます。 一般的に、インターフェイスは内部処理の詳細を見せないように設定されます。オブジェクト指向プログラミングにおいて、インターフェイスはabstractクラスとして定義されます。