今回はシステムエンジニアとして働いていて自分自身が使ったり意識したりするIT用語を5つ紹介します。
詳しい内容は色々と見つかるかと思いますので、
私のブログではIT未経験の方や初心者の方が調べたり参考にしたりする
きっかけとなるように願っています。
覚えておいて損はないIT用語を選びました。
初心者の方がつまずいたり、違和感なくやってしまうNGな内容だったりしますので
何か一つでも参考になれば幸いです。
IT用語
- 0オリジン:
プログラムは0から数える! - 定数:
例えば、SE=システムエンジニアと定義。以降SEと呼ぶ - マジックナンバー:
ソースコード上意味のある数字をそのまま「1」や「10」でコーディング - 水平展開:
同じミスが他にもないか確認すること - 相対/絶対パス:
データの所在をどこかを基点として示すか、所在までを1から10まで示すか
0オリジン
プログラミングの世界では数字の始まりは「0から」になります。
皆さんは普通に数を数える時に「1から」始めますよね?
そのクセと言いますか、習慣と言いますか、無意識に数字を数えるのは「1から」がインプットされているため、
ソースコードを書いて動かしたときに意図しない動きとなることが多いです。
慣れてくると腕時計まで「12」ではなく、「0」を選んでしまうほどしっくりきます
それはしあるだけじゃない?
例えば int cntNum; /* カウンター */ と変数宣言してcntNumの中身を見てみると、初期値として「0」が入っています。
細かい話をすると、例で出した変数宣言はあまり良くないです。
初期値の設定は明示的に行うべきなのでint cntNum = 0;としたほうが適切です。
急にシステムエンジニアっぽいこと言うわね
あ、ごめんごめん
定数
特定の名称で文字列や数字と言った値を定義するのに使用します。
変数との違いは、読み取り専用(Read Only)かどうかです。
例えば
オンとオフのような二択を「0」と「1」で扱いたい場合に使用します。
const int CONST_ON = 1; /* オン */ const int CONST_OFF = 0; /* オフ */ int judgeFlg = CONST_OFF; /* 判定フラグをオフで初期化 */
この後で紹介する「マジックナンバー」にも関わりますが、ソースコードの保守性が高くなります。
先ほどの例で行くとオン/オフを示す値を「2」と「3」に変えたいときは、定数の宣言だけ修正すれば終わりです。
そのままの数字を使っていると色々なところを置き換えなきゃいけないもんね
また、読み取り専用(Read Only)のためヒューマンエラーでソースコード上、
定数を書き換えるロジックを誤って入れてしまっても、値が書き換わらずにエラーとして検出することができます。
言語によってはそもそもコンパイルエラーで検出できそうだけどね
え、あなたも詳しかったの…
マジックナンバー
一言でいうと意味のある数字をプログラム上でそのまま使うことになります。
例えば 現時点でプログラム上で扱うデータ数が10件の場合に「10」という数字を多用すること
未来永劫変わらない数字だろうと開発当初は思っても、後から変更になることは十分にあり得ますし、
最初からコロコロ変わる値とわかっていれば尚更「数字をそのまま」使うべきではありません。
定数を使うようにしましょう。
マジックナンバーを使うことによるデメリット
- ソースコードの検索を行うときに数字が検索キーワードとなるため、膨大な検索結果となる
- 修正箇所が多く、修正漏れが起きる可能性 大
- 自他共に設計書やコメントがないと、何の数字かわからなくなる
十数年と積み上げられた膨大なソースコードで、マジックナンバーを修正したときのことを思い出すと…
細かいことはよくわからないけど、ご苦労様でした…
水平展開
一匹いたら百匹いる、なんて言葉がありますよね。
イやなもの連想するからやめなさい
何かミスをしたときや指摘された時ときに「そこだけ」修正してませんか?
同じ人が同じ思考で作っていれば他にも同じミスあるような気がしませんか?
コピペ(コピー&ペースト)して量産している可能性はありませんか?
という感じで同じミスが他にもないか、設計書やソースコードを確認することを水平展開といいます。
ぜひ、誰かに言われる前に水平展開を行い、修正後の報告で「水平展開済みです」の一言を添えられるようにしましょう!
ちなみに水平展開でソースコードを調査した結果はエクセルか何かで残しておいたほうがいいよ
所謂「エビデンス」ってやつね
相対/絶対パス
相対パス:カレントディレクトリと呼ばれる基点となる場所から示す
絶対パス:対象のディレクトリまで「1から10まで」示す
相対パス
微妙に見ているファイルが違うんだよね
絶対パス
参照するファイルの更新頻度や格納場所を変更する可能性があるかどうかで判断するってことだね
そうそう、一概にもどちらがいいとは言えないの。ケースバイケース!
まとめ
いかがでしたでしょうか?
冒頭でもお伝えした通り、IT未経験の方や初心者の方が調べたり
参考にしたりするきっかけとなるような内容にしています。
あえて他にも気になるような単語をそのまま使用しています。
ぜひご自身で「調べる(ググる)」スキルもつけるようにしてみてください。
また、紹介したちょっとしたソースコードのような記載はなんちゃって書いたものになります。
そちらに対するご意見は無しでお願いします!温かい目で見てください。
纏めると下記の通りです。
IT用語
- 0オリジン:プログラムは0から数え始めよう
- 定数:システムエンジニアをSEと呼ぶように置き換えて使いましょう
- マジックナンバー:数字をそのままソースコードで使用することを避けましょう
- 水平展開:同じミスを何度も指摘されないようにしましょう
- 相対/絶対パス:RPAやWEB系のシステムエンジニアを目指すなら必須でマスターしましょう!
少しでもIT未経験の方や初心者の方の参考になることを願っています。