ちょっとした用語集


嘘八百ではありませんが、所々嘘かもしれない事や、私の解釈だけで書いてる所があります
もしも間違いがあれば、なおしますので、メールで教えてください


  1. 関数
    1. ラッパー関数
      引数を変更したり、初期化処理を行ったりしてから、他の関数を呼び出す関数の事です
      ラッピングする事に良く似ているので「ラッパー」と呼ぶようですが本当の所は良く分かりません
      たとえばうちで紹介している「グラデーションフォント関数」をラッピングする場合、「#rrggbb」の形式を「R,G,B」としたり、「色名 or 値指定」とする事も可能なわけです(ちなみに「R,G,B」の場合16進数で指定した方が楽だったりします)、他にも「開始文字色、終了文字色をランダムに設定する」とするのもできます
      さて、何故ラッピングをするかは上で、ほとんど書いてしまいましたが、実際問題として利点はどこにあるのでしょうか、例を挙げて書いていきましょう
      • グラデーションフォント関数(以降「fncTextGradation」)
        「fncTextGradation」は、おせいじにも使いやすいとは言えません
        色の指定は「色名(REDとかBLUEなど)」で指定できた方がマシになるでしょう
        手段としては「コードを全般的に書き直す」「色名から値へコンバートする関数を使ってその値を渡す」「やっぱりあきらめる」という方法があると思います
        プログラミングが得意であれば、一番目の方法でも構わないのですが、ここは色名でも行けるように追加した方が便利かもしれません
        手順を追って書いていきましょう
        1. 色名から値へのコンバート関数(以降「fncCnvColorNameTo」)を作る
          使う色だけで構いません
          時間があるのであれば、全部の色に対応するのもいいでしょう
        2. 「fncTextGradation」「fncCnvColorNameTo」を呼び出す関数(以降「fncTextGradation_CCnv」)を作る
          「fncTextGradation_CCnv」の引数は「fncTextGradation」と同じですが、色の部分は色名か値のどちらかが入ります
          「fncTextGradation_CCnv」の引数の色指定が「色名」なら「fncCnvColorNameTo」でコンバートして「fncTextGradation」に引き渡します
          「fncTextGradation」の戻り値を「fncTextGradationCCV」に返せば、それで終了です
        手順としてはこんな感じです
        まあ、やっている事自体が対した事ではないので、書いてもそんなに難しい事ではありません

    2. 部品化
      必要と思われるコードを部品化していくつかに分けておくと、コード自体の使いまわしもききます
      こういう考え方が「オブジェクト思考」らしいですが、これもよく分かりません(苦笑)
      これの利点は、ある程度部品を作っておけば他で使えるという事でしょうか(物によってはラッピングする必要があるかもしれませんが……)
    3. パッケージ化
      「パッキングする」とも言います
      部品化されたものをまとめる事だと思ってください(実際には違うのかもしれませんが、私はそんな認識しか持っていません)
      HTMLファイルに入っているJavaScriptの関数を「js」ファイルにまとめたものだと思えば分かりやすいでしょうか
      現実的な話をすれば、「部品をまとめてパッキングしてそれから呼び出す関数をラッピングしてそれを使う」とかになるのでしょうか、もう少し言えばこの中にある「ラッパー関数」も部品なのでこれをまとめてさらにパッキングするかもしれません
  2. 識別子
    例えば、プログラミング上で「fncAAA〜」の「fnc」の部分を示します
    「接頭語」とも呼ぶ事がある(多くの場合は混在していますが)ので気をつけておくといいかもしれません
    なぜ「識別子」が必要かというと、
    1. 「それが変数なのか関数なのかをハッキリさせる事」
    2. 「その変数はどんな物(数字・文字・日付)が入っている(または入れられる)かを明示的にする事」
    の二点のためです、他にも色々と理由があったりしますが通常はこの程度の認識で大丈夫だと思います
  3. メソッド・ファンクション・プロシージャ・関数
    基本的には「命令」という意味ではほぼ同一だと思っていてかまいません
    それぞれを少し掘り下げてみます
    1. メソッド
      オブジェクトにある命令です
      戻り値はあったりなかったりそのメソッドによって違います
      aaaaというオブジェクトにBBBBというメソッドがあった場合「aaaa.BBBB」というふうに「〜の〜」と呼ぶ事が多いようです
    2. ファンクション
      戻り値のある命令です
      自分で作るものです(コピーするというのも含みます)
      したがって、引数や戻ってきた値の型などがある程度ですが無理を通す事も可能です
      たとえば、戻り値を無視して使う(ファンクションをプロシージャのように使う)事も可能というわけです
    3. プロシージャ
      戻り値のない命令です
      自分で作るものです(コピーするというのも含みます)
      したがって、引数や戻ってきた値の型などがある程度ですが無理を通す事も可能です
      ファンクションの戻り値をなくしたものだと思っていただければいいと思います
    4. 関数
      プロシージャ・ファンクションの総称だと思ってもらえればいいと思います
  4. アルゴリズム
    プログラミング時の考え方とでも言えばいいのでしょうか
    「論理だてて」というよりは「順序を考えて」という方が一般には分かりやすいのかもしれません
  5. アーティクチャ
    設計論理・設計思想……って書くとわかりにくいですね
    「〜と動くようにしたい」とか「〜ができるべき」という「設計時の無理難題」を含めたものだと私は思っています
    ちなみに、この「無理難題」はまるっきりできないものであれば「切り捨て」、できる(または回避策があるのであれば)「その方向へ導く」のが「優秀なSE」の姿なのかも知れません
    まあ、「裏方は裏方でも表に近い人間は表の言う事を全て聞くのではなく適度に裏方の思想をねじ込め」という事なんですけどね
  6. デバッグ
    バグ取りの事です
    基本的には「ステップ毎のもの」と「ログ出力によるもの」に分けられます
  7. キック
    「サーバーなどに入れなくする事」だと思っていましたが某社では「〜を実行する事」らしいです
    はじめの頃、この事が分からなくて苦労した覚えがあります
 

戻る