前回、変数についてお話ししたので、少しその続きの話をしたいと思います。
プログラミングで変数を使うといっても様々なものがあります。
例えば、画面に表示されたりユーザが選択するものが代表的ですが…
ご希望の色を選択ください:”赤”、”青”、”黄”
これが、実はシステム内部では次のように扱われているかもしれません。
color: {
1: ”赤”,
2: ”青”,
3: ”黄”
}
特殊な方法を使えば、このようなデータも取れないこともないですが(笑)、普段はこうしたデータはうまーくシステムに隠れて運用されているのです。
なぜなら、ユーザにわかりやすくするのはもちろん、悪意のあるユーザによる改ざんやセキュリティリスクを避けるためでもあります。
もしあなたが銀行のシステムに自由にアクセスできるとしましょう。
WEBで操作できるということは、どんなものでも必ず管理しているデータがあります。
ここでは一旦細かいことは横に置いて、次のような手続きがされているとします。
銀行の利用者 ⇨ ATM
銀行名 :〇〇銀行
支店名 :△△支店
口座番号:xxxxxxx
暗証番号:yyyy
入金金額:10,000円
次にこの入力と金額を使って、ATMから銀行システムにアクセスされます。
銀行名 :〇〇銀行 ⇨ 銀行コード:xxxx
支店名 :△△支店 ⇨ 支店コード:yyyy
口座番号:xxxxxxx ⇨ 銀行コード:xxxxxxx
暗証番号:xxxx 端末コード:ssss
入金金額:10,000円 端末パスワード:ttttt
お分かりでしょうか?
もしこれらのデータが全てまるっと外部から見えてしまうと、あなたは手元にお金を用意していなくとも、いくらでもシステム的に入金したことにできてしまうのです‼️
…とまぁこんなことが現実世界で起これば大問題なので、その前、前の前で各社厳重な仕組みを作って運用しているので、無駄に心配にさせてしまったかもしれませんね😅
要は、そのデータはユーザ、プロセス、処理(関数)の中、実行時などどの範囲で使うか。
擬人化した表現をすると「誰に見せたいか」によって、最小限に公開しましょう!ということが伝われば嬉しいです😄
<編集後記>
とは言いつつも、いつでも最小限にしてしまうと、「あっ、ここでも使いたかった!」と思うこともあり、使えるようにするか、データを引き渡すなど様々な手段があるので、ぜひリアルなコードを見ながら感覚的に覚えていっていただくのが一番だと思います。
スコープを決めたり、private, public を設定したり「なんでそんな細かいの!?」という疑問をお持ちの方に、少し「そゆことね」と思えたら。
最後まで読んでいただきありがとうございました❗️
コメント