blog

【システムエンジニアがよく使うIT用語】SE歴約10年の私が選ぶ、初心者向けIT用語 5選

 

今回はシステムエンジニアとして働いていて自分自身が使ったり意識したりするIT用語を5つ紹介します。

 
詳しい内容は色々と見つかるかと思いますので、
私のブログではIT未経験の方や初心者の方が調べたり参考にしたりする
きっかけとなるように願っています。

 

この記事はこんな人におすすめ

  • IT未経験/IT初心者
  • 開発未経験/開発初心者
  • システムエンジニア/プログラマーを目指している
  • プログラムで気を付けることを知りたい
  • 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まで」示す
 

相対パス

 

メリット

環境に左右されない

 第一階層\第二階層\第三階層
 プログラムファイル
  ∟hogeファイル
   ∟カレントディレクトリ
    ∟piyoファイル

 相対パスの記載例
  ./第三階層/piyoファイル
  ../hogeファイル

 プログラムファイルを「デスクトップ」に配置しても「ダウロード」フォルダに配置しても
 hogeやpiyoファイルを辿るためのパス情報は変更しなくても大丈夫です。

  

デメリット

誤ったディレクトリ移動をすることがある

カレントディレクトリを意識してコーディングする必要があるため、ヒューマンエラーが起きる可能性が高いです。

プログラムファイルを実行可能な形式にした場合、読み込むファイル情報を変更しても読み込まれない

 第一階層\第二階層\第三階層
 プログラムファイル
  ∟hogeファイル
   ∟カレントディレクトリ
    ∟piyoファイル

 絶対パスの記載例
  プログラムファイル/第一階層/第二階層/第三階層/piyoファイル
  プログラムファイル/hogeファイル

実行可能な形式にした後でhogeやpiyoファイルの情報を書き換えても
実行可能な形式に固めた中に入っているhogeやpiyoファイルの情報を参照するため、読み込まれません。

 

ハムスケ

微妙に見ているファイルが違うんだよね

 

絶対パス

 

メリット

プログラムファイルを実行可能な形式にした場合、読み込むファイル情報を更新しても読み込まれる

 相対パスとは逆に対象のディレクトリに格納されているhogeやpiyoファイルを参照するため、
 読み込むことができます。


デメリット

環境に左右される

 相対パスとは逆に「デスクトップ」から「ダウンロード」フォルダにファイルの配置を変更すると
 ソースコード上のパス情報も実態に合わせて変更しなければ参照できません。

プログラム実行中に人がファイルを触ってしまうことにより、予期せぬエラートなってしまう可能性がある

 パスに指定されているディレクトリのファイルを参照しに行くため、
 実行中に触らないようにする必要があります。
 RPA(ロボット・プロセス・オートメーション)という分野では特に重要となります。

 

ハムスケ

参照するファイルの更新頻度や格納場所を変更する可能性があるかどうかで判断するってことだね

そうそう、一概にもどちらがいいとは言えないの。ケースバイケース!

しある

 

まとめ

 

いかがでしたでしょうか?
冒頭でもお伝えした通り、IT未経験の方や初心者の方が調べたり
参考にしたりするきっかけとなるような内容にしています。

あえて他にも気になるような単語をそのまま使用しています。
ぜひご自身で「調べる(ググる)」スキルもつけるようにしてみてください。

また、紹介したちょっとしたソースコードのような記載はなんちゃって書いたものになります。
そちらに対するご意見は無しでお願いします!温かい目で見てください。

纏めると下記の通りです。

IT用語

  • 0オリジン:プログラムは0から数え始めよう
  • 定数:システムエンジニアをSEと呼ぶように置き換えて使いましょう
  • マジックナンバー:数字をそのままソースコードで使用することを避けましょう
  • 水平展開:同じミスを何度も指摘されないようにしましょう
  • 相対/絶対パス:RPAやWEB系のシステムエンジニアを目指すなら必須でマスターしましょう!

 

少しでもIT未経験の方や初心者の方の参考になることを願っています。

-blog
-, , , ,