IT企業に入社予定の新人SE、新人プログラマーさん向けに、入社前、または入社後すぐに覚えておくと役に立つ用語をまとめて説明しています。
どれも私が「プログラマーやSEとして働き始める前に知っておきたかったなー」と強く感じた言葉たち。
IT業界に限ったものでは無い単語も混じっていますが、とりあえずはIT業界用語という建前で説明します!
入社前の新人SE,プログラマーが知っておきたい用語
マスター
カテゴリマスターだとかポケモンマスターのマスターとは少し違った意味です。
ここで言うマスターは広く捉えると大元となる大切なファイルといったニュアンス。
例えば仕事でこんな事があったとします↓。
顧客から開発を依頼されているシステムの仕様がまとめたエクセルファイルが送られてきました。
このファイルはあなたの会社からも、顧客からもアクセス出来る共有フォルダに置いてあります。
上司はそのエクセルファイルを見てあなたに「それぞれの項目について、システムにその仕様を盛り込むのにかかる日数をざっくりまとめておいて」と指示を出してきました。
そこであなたは、お客さんから送られてきたエクセルを自分しか見れない場所(デスクトップなど)にコピーして、顧客が入力したセルの隣の列に、色々と書き込んでいきました。
この例えで言うと顧客が送ってきたファイルが、デスクトップで色々と書き込んでいたファイルのがマスターです。あなたがデスクトップで色々書き加えているファイルの大元のファイルという事ですね!
何かのマスターとなるファイルは基本的にとても大事に扱われます。軽い気持ちで編集とかしちゃうと、上司に「マスターはこっちでいじっちゃダメ!」と怒られるかもしれないので、マスターに手を加える必要がある場合は相談したほうがいいでしょう。
念のために補足しておくと、↑の例えではマスターは顧客が作って、共有フォルダに置いてあるものとして登場しましたが、マスターという言葉自体はこれらの条件は関係ありません。
あくまで、大元となっているファイルやモノや情報という風に捉えておいてください。
- マスターはいじらないでね。
- 資料はマスターと同じフォーマットで作ってね
差分
こちらもしょっちゅう使います。
意味は見た目の通りある物とある物の差です。
例えばあなたが携わっているシステムの不具合の修正で、あるファイルにプログラムを1行追加したとします。
このファイルの修正前と修正後の違いが差分です。
- アップロード前にちゃんと差分確認してね
マージ
SEやプログラマーとしてシステム開発に携わると必ず使う言葉です。
マージにも色々あり、全てを理解しようとすると大変なので、一番シンプルに理解できる使い方で説明しますね!
あなたはある複数人のチームでシステムのバグを修正しています。
バグを修正するためindex.htmlというファイルを修正しました。
この時、実は隣に座っている同期も同じindex.htmlを修正してたのです。
この時、お互いが普通に保存をしてしまうと、後から保存した人のファイルが残り、先に保存していた人の修正箇所は上書きされて無かった事になってしまいます。
ここで、あなたの修正と、同期の人の修正を互いに上書きで潰してしまうことなく両方の修正を組み合わせて保存する事をマージと言います。
ガッツリ説明するとこの例えだと色々と足りないのですが、ニュアンスを捉えるだけであればこれで問題なし!
もっと詳しく知りたいという方はググってみて下さい!
意味合い的には自分がした修正を、他の部分に悪い影響を与えること無く反映する事という感じです。
- 修正した部分マスターにマージしておいて
- 君と同じファイル修正しちゃったから後で俺がマージしておくよ
バージョン管理システム
これは細かく語り出すと本当にキリがない(というか正確に話す自信が無い)のでざっくりと概要と使う理由だけ説明します。
システム開発は複数人で行うので、開発で製造するファイルは複数人で編集する事になります。
普段パソコンを使う時は複数人が一つのファイルをいじることはないので、あまりイメージした事無いと思いますが、複数人で色んなファイルを作ったり触ったりしてるとごっちゃごちゃになってエライ事になります。
「俺が修正して保存したのにお前が後から保存したせいで俺の修正分が消えた!」
とか
「修正したらエラーで動かなくなったから元に戻したいけど、どこを戻せばいいかわからん!」
とか、色んな問題が出てきます。
これを解決してくれるのがバージョン管理ツール。
マスターとしてファイルの大元をどこかに置いておき、それぞれの開発者がそれを自分のパソコンにコピーしてきて修正。それをマスターに正確にマージする事で、誰がその修正をしたのか、どのタイミングでその修正がされたのかといった事がログとして残ります。
ログを見ればその修正を誰がしたのかは1発で分かります。
また、修正するごとにしっかりと記録を残しておく事で、簡単に任意の段階までファイルを元に戻す事も出来ます。
また、コピーしてきたファイルの修正が終わり、マスターにその修正を反映する時は、差分を見ながらマージをする事が出来るようになっているため、うっかり他の人が入れた修正を潰してしまうことが減ります。そして万が一潰してもログを見れば誰がどの部分を潰してしまったのかを確認する事が出来ます。
バージョン管理ツールとして特に有名なのはSubversion(サブバージョン)やgit(ギット)。
gitの方が新しく、機能も豊富で、Subversionは時代遅れになってきています。
バージョン管理ツールの具体的な使い方や、バージョン管理ツールで使われる用語についてはここでは説明しないので、もっと詳しく知っておきたいという方はググってみてくださいね。
覚えきれないほど沢山の用語が出てくると思いますが、まずは↓の物を覚えておくといいと思います。
- チェックアウト(check out)
- クローン(clone)
- ブランチ(branch)
- プル(pull)
- コミット(commit)
- プッシュ(push)
- リバート(revert)
- プルリクエスト(pull request)
hosts
ホスツと読みます。
Webアプリケーション(Webブラウザ上で動いているシステム)に携わる時は必ず必要になります。
hostsとは自分のパソコン内に設定するなんちゃってDNSサーバです。
といって理解出来ればOKなのですが、恐らく大抵の人は「???」という感じでしょう。
本当に簡単に説明すると、サーバのIPアドレスとドメイン名(URLの一部)を変換するための仕組みというところでしょうか。(これ以上書くとなが~くなりそうなので詳しく知りたい方はググってみて下さい><)
Webアプリケーションはアクセスできる本番環境と、開発者にしかアクセスできない試験用の環境があります。
試験環境はふつうDNSサーバに情報を登録しないため、hostsを設定しないとURLにIPアドレスを指定しないとアクセス出来ません。
しかし、プログラムのソース内では遷移先のURLがIPアドレスの指定になっていないので、hostsを設定しないと試験環境では画面遷移する度にエラーになってしまい、動作確認が出来ないんです。
hostsを設定する事で、試験環境で、あたかも本番環境の操作をしている様な感じで動作確認が出来るようになります。
なかなかイメージし辛いと思いますが、実際そんなに難しいものではないので、業務で使えばすぐに理解出来ると思います。説明ヘタでごめんなさい…。
- 試験前にhostsの設定あってるか確認してね
- 「画面が開けないんですけど」「hostsの設定あってる?」
スタブ
説明するのが地味に難しいのでまずは例え話から。
あなたはあるシステムのログイン画面を作っています。
まずはログイン画面と、ログイン成功後に表示するトップ画面を作りました。画面にはIDとパスワードの入力欄と、ログインボタンがあります。
IDとパスワードを正しく入力してログインボタンを押せば、次の画面に進めるのですが、出来ているのは画面だけ。
IDとパスワードが登録情報と正しいかどうかを確かめる機能はまだ作っていません。これを作るにはデータベースを構築して、入力されたIDとパスワードの組み合わせが正しいのかをデータベースに問い合わせる仕組みをプログラムしなければなりません。
サクっとログイン画面→トップ画面の遷移の動作確認をしたいだけなのに、そこまでするのは面倒です。
という事でとりあえずログインボタンを押したら入力されたIDとパスワードが何であれログイン成功の判定をしちゃう様に作り変えちゃいました。
オレンジ文字の部分がスタブ化です。
スタブ化するために何が来ても成功を返す様に作ったプログラムやモジュールをスタブと呼びます。
- この機能スタブ化して動作確認してね
- ログイン判定はスタブ化しちゃっていいですか?
最後に
自分が新入社員時代に「もっと早く知っておきたかった」と思った単語を紹介してみました。
実際に現場で使ってみないと理解しにくい言葉が多く、説明を呼んでもよくわからないというものが大半ではないでしょうか…。
前述の通り、ここでの説明は「ふーんそういうものがあるのね」程度の理解をするのに最適であろうと思える所しか書いていません。
また、あんまり厳密に言うと意味が分かりづらくなってしまうところについては説明を端折ったり、あえて識者からするとビミョーな表現を使っているところもあります。
勉強熱心な方は、ここで言葉のニュアンスを覚えた後は信頼できる用語解説サイトを参考にしてくださいね。
新人さんの内は覚えることだらけで大変だと思いますが、頑張ってください!