今さら聞けないWeb(制作現場に出てくる)用語集 第6回 プログラミング用語編
職場でiPhone仲間が増えてうれしいtanakaです。…どんなアプリを入れてみたのか拝見したら、私よりちょっと少ない位(40個くらい)のアプリがすでに入っていてびっくりしました。
今さら聞けないWeb(制作現場に出てくる)用語集の連載6回目はプログラミング用語について用例と共にご紹介します。
変数
変数はプログラム中のデータにつける名前です。名前をつけると、名前越しにデータを扱うことができます。「変数に代入する」とよく言いますが、これは名前が指し示すデータを書き換えることです。
PHPでもデータに名前を付けないで(=変数を使わないで)プログラミングすることができるかもしれませんが、たいていの場合読みにくくなるだけなので、普通は使います。使用例)ここで変数書き換わっちゃってるね
引数
引数とは、関数やメソッドに渡す変数やリテラルなどのことです。仮引数と実引数があります。
function add($x, $y) {
return $x + $y;
}
この関数の宣言行にある$xと$yが仮引数です。
add(3, 4);
関数を呼び出すときに渡す3と4が実引数です。ただし現場では、どちらのコードを示すのかはっきりしている場合が多いのでこういった区別はあまりしていません。使用例)引数を指定しなかったらPHPに怒られた(=PHPのエラーになった)
データ型
動物ほ乳類やは虫類などに分類しますが、プログラムで扱うデータも数値型や文字列型に分類します。データ型はプログラムがデータを扱うときの形式のことです。プログラムで扱うデータは何らかの型に属しています。この区別が重要になる代表例としては、配列をソートする時の結果が変わることです。「データ型」という言葉自体はあまり使わないと思いますので、「数値型」の使用例を紹介します。使用例)送信されたデータを数値型に変換してから比較する
デバッグ
デバッグとは、プログラム上の間違い(バグ)を発見し、原因を特定し、それを取り除くことです。プログラムは人が作るので、常に間違いを含む可能性があります。デバッグの効率は熟練度やツール、システムの理解度やその他の複雑な要因に左右されます。使用例)5年前に開発したシステムをデバッグした
エンバグ
デバッグとは逆にシステムにバグを追加してしまうことをエンバグといいます。デバッグよりは使用頻度は低いです。(キューというデータ構造にデータを入れることをエンキュー、データを取り出すことをデキューといいますが、それと同じ関係ですね)使用例)デバッグしたらエンバグしていたらしい
コンパイラ
コンパイラとは、プログラムのソースコードを実行できるように変換するプログラムです。PHPはコンパイル型言語とは言われませんが、PHPの実行速度を高速化するAPCはPHPのソースコードを中間コードに変換するので、コンパイラが使われているといってもいいかもしれません。使用例)オープンソースのプログラミング言語だと無料で使えるコンパイラが多い
SQLインジェクション
リレーショナルデータベースを組み合わせたアプリケーションで、アプリケーションの意図しないSQLを実行させてデータベースを操作させる攻撃手法のことです。SQLを発行する前に適宜エスケープしたり、プリペアードステートメントをつかって意図しないSQLが実行されない対策が必要です。使用例)○○.comの被害はSQLインジェクションでやられたらしい
クロスサイトスクリプティング(XSS)
SQLインジェクション同様、Webサイトへの攻撃手法の一つです。つづりはCross Site Scriptingですが、Cascading Style Sheetsなどと区別するためにXSSという接頭語を使います。Web開発におけるXSSといえば、JavaScriptのコードを送信して、アプリケーションの意図しないJavaScriptコードを実行させるような攻撃手法のことを言います。一般的に出力する直前でエスケープして、セキュリティホールにならないように対策します。使用例)昨日まであのサイト、クロスサイトスクリプティングできてたけど、もう直っている、対策早いね!
イベント
JavaScriptやFlashのプログラミングでは、「クリックされたら」とか「キーが押下されたら」などのタイミングでプログラムを実行させることができます。こういったユーザーのアクション(キーを押すなど)をイベントと言います。JavaScriptの場合、addEventListenerメソッドを使って、イベントが起きたときの処理を登録します。このイベントが起きたときに実行させる処理をイベントハンドラといいます。
var el = document.getElementById("button");
el.addEventListener("click", function(){
alert("ボタンが押されました");
}, false);
この例では、function(){ ... } の部分がイベントハンドラです。
まとめ
シーブレイン社内で割と出てくるプログラミング用語のほんの一部を紹介しました。