バージョン管理ツール「Git」とは

From:リスキルテクノロジー 高坂一城 新宿本校にて

kohsaka

ソフトウェア開発ではソースコードを作成しながら ソフトウェアを作っていきます。 ソフトウェア開発の現場では、 バグ(不具合)の修正や機能の追加ごとに、 その時のソースコードの状態を記録し、 それぞれの版(バージョン)を管理することが 必要になります。 このソースコードのバージョンを管理するソフトウェアを 「バージョン管理システム」と言います。 「Git」とは、バージョン管理システムの一つで、 ここ数年で非常によく使われるようになってきました。 ちなみに「ギット」と発音します。

なぜバージョン管理が必要か

突然ですが、あなたはゲームをしますか。 「ドラゴンクエスト」に代表される 古典的なRPG(ロールプレイングゲーム)では、 プレイの途中でそこまでの状態をセーブ(保存) することができます。 なぜソフトウェア開発に バージョン管理が必要なのか、 その理由は、 ゲームをセーブする理由と同じなのです。 ゲームをセーブする理由は、 ①もう寝るから(今日はここまで) ②途中でプレイヤーが死んでしまっても  やり直しができるから この2つが大半だと思います ソフトウェア開発にバージョン管理が必要な理由は、 上記の②に相当します。 例えば、 あるソフトウェアに新しい機能を追加します。 しかし、その機能を使わなくなった。 そういった場合、このソフトウェアを 新しい機能を追加する前の状態に 一瞬で戻せると便利ですよね。

Gitの登場

そこで「Git」の登場です。 Gitは、 世界最大のオープンソースソフトウェアである Linuxカーネルのソースコードを 効率的に管理するために作られました。 Gitの特徴は、 ①動作速度が速い ②分散型である    です。

特徴① 動作速度が速い

Gitは Linuxカーネル開発で培われたノウハウを活かし、 大規模プロジェクトにも対応できるように 設計されています。 大規模プロジェクトでは 多数のソースコードを管理する必要があります。 ソースコードの変更点を抽出したり、 「リポジトリ」と呼ばれるソースコードや 変更履歴を保存する場所への操作が 高速にできる必要があるため、 動作速度に重点が置かれています。

特徴② 分散型である

Gitが登場する前は、 「Subversion(SVN)」に代表される 「集中型バージョン管理システム」が 広く使われてきました。 「集中型バージョン管理システム」では、 開発対象のソフトウェア一つにつき 「リポジトリ」を一つだけ持っています。 ソフトウェア開発に参加するメンバは、 この一つのリポジトリから ソースコードを持ってきて編集し、 編集が終わったらリポジトリに反映します。 これにより、 リポジトリが置かれたマシンに接続できない環境では、 最新のソースコードを取得したり、 編集したソースコードの反映ができないことになります。 この問題点を解決したものが、 Gitに代表される 「分散型バージョン管理システム」です。 「分散型バージョン管理システム」では、 メインとなるリポジトリ以外に、 自分のマシンにもリポジトリを持つことができます。 リポジトリをマシン毎に持つことができるので 「分散型」と呼ばれています。 自分のマシンにもリポジトリがあるため、 いつでもどこでも作業ができ、 かつ自分のマシンである程度作業が進んだ時点で、 メインとなるリポジトリに反映する、 といったことができます。

Gitはバージョン管理だけではない

Gitは分散型であることをメリットに、 近年、システム開発の現場で 広く使われるようになってきました。 このGitですが、 バージョン管理だけではとどまらず、 Gitの仕組みを利用した「GitHub」(ギットハブ) というサービスにも使われています。 「GitHub」とは、 世界中の人々が、自分の作品 (ソースコードやデザインデータ)を 保存・公開することができるようにした Webサービスです。 GitHubは GitHub社という会社が運営しており、 個人・法人問わず無料で利用できます。 あなたもぜひ使ってみては いかがでしょうか。 --------------------------------------------- PS.選ばれ続けて15年には理由があります。 卒業生5,000名以上! プログラミングスクールなら実績豊富なIT専門スクールで ----------------------------------------------

省略のルール

From:リスキルテクノロジー 高坂一城 新宿本校にて

kohsaka

前回、 間違えやすいHTMLのタグの読み方、 について書きました。 なぜ読み間違えやすいのか? これは、タグの表記が 英単語を省略した形になっている、 ことが要因の一つです。 そこで今回は、 この英単語の省略形について 書きたいと思います。 一見、 無造作に省略しているように見えますが、 実はあるルールに基づいて省略されています。

なぜ省略するのか?

そもそも、 なぜ英単語を省略するのでしょうか? それは、 全てを綴ると文字数が長くなるので、 短く簡潔に表現するためです。 歴史的な背景をみてみましょう。 インターネットやファックスが発達する前、 通信にはテレックスというものが 使用されていました。 テレックスの料金は文字数に比例します 文字数が少ないほうが料金が安い、 ということで省略形が使われていました。 テレックが一般的でなくなった今では 見やすさや覚えやすさのために 省略形を使うことが多いです。

省略系のルール

では早速、省略形のルールについて 見ていきたいと思います。

ルール1: 頭文字あるいは先頭の数文字で表現する

<a href=...>は、このルールに該当します。 「a href」は 「Anchor Hypertext REFerence」の省略形です。 このルールは、HTMLだけではなく、 一般的によく使われています。 例えば、銀行の「ATM」。 これは、 「Automated Teller Machine」 の省略形です。

ルール2 母音を消して表現する ※先頭の母音は消さない

<img src=...>は、このルールに該当します。 「img src」は 「IMaGe SouRCe」の省略形です。 大文字の部分(子音)だけで構成されています。 (先頭のIは省略しない) 英語を発音するときに、 母音よりも子音が単語の音を出します。 そのため、母音を消した綴りでも 単語が分かるという発想から生まれました。 また、このルールはIT系でよく 使われています。 例えば、 電子メールを送信する際のルールに SMTPというルールがあります。 そのルールにおいて、 宛先を指定するコマンドとして 「RCPT」というコマンドがあります。 「RCPT」とは「ReCeiPT」の省略形で 「受取り」という意味です。

何でも省略すればいいわけではない

今回は、英単語の省略ルールについて 書いてきましたが、 何でもかんでも省略すればいい、 というものではありません。 省略することで、 全く意味をなさないものもあります。 省略形は、意味が通じる範囲で 適切に使うようにしてください。 ただ、こうしたルールを知ることが、 HTMLだけではなく、 IT業界で多用される、いわゆる「略語」を 理解する手がかりになると思います。 ------------------------------------ PS.選ばれ続けて15年には理由があります。 卒業生5,000名以上! プログラミングスクールなら実績豊富なIT専門スクールで -------------------------------------

プロでも間違える!HTMLのタグの読み方

From:リスキルテクノロジー 木村和司
新宿本校にて

以前、プログラミング言語で良く使われる
読み間違えやすい英単語についてお話しをしました。

確かに読み間違えやすいのですが、
所詮、英単語。
調べればその読み方はすぐにわかります。

プログラミング言語の中には、
アルファベットではあるが
英単語ではない、
特別な文字列を使用したものも存在します。

その代表的な言語がHTMLです。

HTML(Hyper Text Markup Language)

HTMLとは、
ホームページを制作するための言語です。

言語と言っても一般的にHTMLは、
プログラミング言語ではなく、
マークアップ言語と呼ばれる
ホームページの構造を
記述するための言語です。

HTMLでは「タグ」と呼ばれる
特別な文字列を使い、
ホームページを記述していきます。

その「タグ」を正確に読めない、
あるいは、読み方が分からない、
という方が結構いらっしゃいます。

ホームページを制作するプロの方でも、
間違って読まれることがあるくらいです。

プロでも読めない意外な事実

では早速、読み方を間違えやすい
「タグ」を紹介していきます。

<img src=...>

これは、
ホームページ内に画像を掲載するときに
記述するタグです。

そのため、
世の中のほとんどのホームページには
このタグが使われています。

さて、なんと読むでしょうか?

「アイエムジー エスアールシー」
「イメージ エスアールシー」

実はこれ
「イメージ ソース」と読みます。

「image source」の省略形です。
imageは「画像」、sourceは「元」
という意味です。

<a href=...>

これは、
ホームページ内に「リンク」を記載するときに
記述するタグです。

「リンク」も多くの
ホームページで使われています。

さて、なんと読むでしょうか?

「エー ハーフ」
「ア ハーフ」
「ア ハレフ」

実はこれ
「アンカー エイチレフ」と読みます。

(実際には、エー エイチレフが多いでしょうか)

aタグのanchorとは「錨」という意味です。

錨というとイメージしにくいですが、
何かをつなぎとめるものという一般的な意味もあり、
aタグはここから来ています。

「href」は「hypertext reference」の略で、
Web上に存在する他のホームページへの参照
という意味です。

IT業界では省略形が多い

今回は、ホームページを制作するには
欠くことのできないHTMLで使われている
間違って読まれることが多い
タグについてお話しをしてきました。

これらのタグに共通することは、

どれも「元の英単語からの省略形」

ということです。

IT業界ではプログラミング言語に限らず、
このような省略形で表記されるものが
非常に多いです。

そこで、この省略のされ方を見ると、
一見やみくもに省略しているかのように
見えますが、

実は、ある程度のルールに従って
省略されています。

次回は、この省略のルールについて
お話をしていきたいと思います。

--------------------------------------------------------------------------------------
PS.選ばれ続けて15年には理由があります。卒業生5,000名以上!
SEを目指すなら、実績豊富なプログラミングスクール
--------------------------------------------------------------------------------------

ソースコードの記号の意味

From:リスキルテクノロジー 高坂一城 新宿本校にて

kohsaka

ソースコードには英単語だけではなく、 様々な「記号」が登場します。 この記号の中には、 普段の生活で使っている記号とは 表現が異なるものがあります。 今回は、そのような間違いやすい記号と その用途についてお話します。

間違いやすい記号

「*」

「アスタリスク」と発音します。 この記号は多くのプログラミング言語で 「乗算(掛け算)」の記号として使用されます。 数学では乗算として 以下のような記号が使用されますが、 5 × 3 プログラミングの世界では、 5 * 3 と表現します。 キーボードで 「×」の記号が入力できないため、 見た目が近い 「*」が使用されてます。

「/」

読み方は 「スラッシュ」 と発音します。 この記号は、 多くのプログラミング言語で 「除算(割り算)」 の記号として使用されます。 数学では除算として 以下のような記号が使用されますが、 5 ÷ 3 プログラミングの世界では、 5 / 3 と表現します。 これも「×」同様、 キーボードで「÷」の記号が 入力できないためです。 三分の一を1/3と 表現することがありますが、 1/3は1 ÷ 3と同じことなので、 「÷」の意味として「/」が使用されます。

「%」

読み方は 「パーセント」 と発音します。 この記号は、 多くのプログラミング言語で 「剰余算(余りを求める)」 の記号として使用されます。 数学では剰余算として 以下のような記号が使用されますが、 5 mod 3 プログラミングの世界では、 3 % 5 と表現します。

記号の用途

今回お話しました 「*」や「/」という記号は、 プログラミングの中で数値の 計算に使用するため、 使用頻度が比較的高い記号です。 しかし、 「%」はどういったときに 使用するのでしょうか。 例えば、 キーボードから入力された数値が 偶数なのか奇数なのかを 判定するには、 どうしたらよいか考えてみましょう。 偶数は2で割り切れる数、 奇数は2で割り切れない数です。 2で割り切れるということは、 2で割った余りが0である、 ということです。 逆に、 2で割り切れないということは、 2で割った余りが0以外である、 ということです。 ここで「%」が登場します。 キーボードから入力された数値 % 2 上記の答えが0なら、 入力された数値は偶数である。 上記の答えが0以外(実際には1)なら、 入力された数値は奇数である。 ということになります。 このように、プログラム中に登場する記号は、 単に数値を計算するだけではなく、 今回のようなアルゴリズムとしても 使用することがあります。 -------------------------------------------------------------------------------------- PS. 業界未経験からIT業界へ就職するには 社会人のための" プログラマースクール"で夢をかなえませんか --------------------------------------------------------------------------------------

ソースコードを”発音”する

From:リスキルテクノロジー 高坂一城 新宿本校にて

kohsaka

前回、ネーミングについてお話しをしたときに、 「プログラミング言語の多くは"英語"  で記述するものがほとんどです」 と書きました。 世界的に見ても日本人は英語が 得意な人種ではありません。 しかし、ソースコードを書くには 英語は避けて通れません。 最初は英語と格闘しながら ソースコードを書くことになるかもしれませんが、 徐々に慣れていきますので安心してください。

ソースコードを"読む"

こうして、ソースコードを書くことに慣れてくると、 次は"読む"ことにも慣れたいものです。 読むと言っても、 目で追いかけて読むのではなく、 声に出して読む(発音する)のです。 ソースコードを"発音"する? どういうことでしょうか。 プログラマ同士で打ち合わせをするときなど ソースコードの一部を発音することが しばしばあります。 そのときに 英語の読み方を間違えて発音してしまう、 あるいは、 読み方が分からなくて言葉に詰まってしまう、 という状況を目にすることがあります。 そこでソースコードによく登場するが、 間違って発音されることが多い英単語を いくつか紹介します。

読み間違えやすい英単語

「height」と「width」

「height」は「高さ」、「width」は「幅」を 表現するときによく用いられる英単語です。 さて、みなさんどう発音しますか? 「height」は 「ヘイト」ではなく「ハイト」と発音します。 また「width」はよく 「ワイズ」とか「ウィドス」と発音されますが、 正しくは「ウィッズ」と発音します。

「allow」と「deny」

これもよく間違って発音される英単語です。 「allow」は「許可」、「deny」は「拒否」 を表現するときに用いられます。 「allow」は「アロウ」ではなく「アラウ」、 「deny」は「デニー」ではなく「ディナイ」と発音します。

プログラマに発音の能力は必要か

ソースコードの「発音」を間違えても プログラムの動作に影響はありません。 しかし、 一つのプログラムを作成するときに、 一人で全て作成することはほとんどありません。 プログラムを作成するには数人から数十人、 場合によっては 数百人というチームで作成することがほとんどです。 つまり、他のプログラマとコミュニケーションを取りながら ソースコードを書くわけです。 その際に 自分の書いたソースコードを読み間違える、 というのは 恥ずかしいこともさることながら、 プログラマとしてのスキルレベルも 疑われる可能性があります。 そのため「たかが読み間違え」と思わずに プログラミングを勉強する際には、 ソースコードの読み方も勉強していきましょう! ---------------------------------------------- PS. ITエンジニアを目指すのは今からでも遅くない!! 社会人のための" IT専門校"で学習を始めませんか? ----------------------------------------------

わかりやすいコードと”ネーミング”

From: リスキルテクノロジー 高坂一城
新宿本校にて
kohsaka

以前「綺麗なコードの書き方」について
お話をしました。

統一感があるソースコードは、
非常に見やすくなります。

さて、綺麗なコードを書けるようになったら、
次のステップとして
「分かりやすい」コードを書くことを
心掛けましょう。

分かりやすいコードとは、
一体どういうものでしょうか。

ネーミング

プログラミングには、

「ネーミング(名前付け)」

と呼ばれるものがあります。

皆さんも、コンピュータ上で
新しいファイルやフォルダを作成するときに、
適切なファイル名やフォルダ名を付けますよね。

これと同じように、
プログラマがソースコードを書く際に、
ソースコード中に自由に名前を付けることができる
場所がたくさんあります。

そういった場所に適切な名前を付けることを
「ネーミング」と言います。

ネーミングの難しさ

プログラミング言語の多くは
「英語」で記述します。

そのため、ネーミングも英語で行います。

例えば、
「日本語で"削除する"という意味のネーミングをしたい」

皆さんなら、どういう英語を使いますか?

プログラミングにおいて、
「削除する」という意味を表す
ネーミングとしてよく使われる英語が

「delete」と「remove」 です。

この違い分かりますか?

・delete
 完全に消し去る

・remove
 取り除く(消し去っていはいない)

という意味の違いがあります。

つまり、
あるものを完全に消し去る場合には「delete 」、

あるものをそこから取り除くだけで、
どこかにまだ存在する場合には「remove」、

というネーミングを使います。

その他にも、
日本語で"見つける"という意味を表す
ネーミングとして、

「find」と「search」という英語があります。

・find
 見つかることが前提

・search
 見つからないかもしれない

という意味の違いがあります。

「ネーミング」の重要性

ネーミングはコメントと同様、
適当に付けてもプログラムの動作には
影響を及ぼしません。

「delete」とすべきところを
「remove」と記述しても
プログラムは動きます。

それでは、
なぜ「ネーミング」が大切なのでしょうか。

それは、コメントと同様にネーミングも、
ソースコードをメンテナンスする人への
大切な情報源だからです。

「プログラミングとは名前を付けること
 そのものである」

という人もいるくらいです。

最初はネーミングを考えながら
プログラミングをすることは
時間が掛かり大変かもしれません。

しかし、ネーミングを考えながら
より多くのコードを書くことで

プログラミングをする時間も徐々に
短くなっていきます。

--------------------------------------------
PS.プログラミングやJavaを身につけたい方へ
これまでに5000名以上の卒業生を輩出の
社会人のためのIT専門校なら" LAプログラミングスクール"
---------------------------------------------

「コメント」の重要性

From: リスキルテクノロジー 高坂一城
新宿本校にて

kohsaka

プログラミング言語を学ぶとき、
「コメント」は最初に習う項目の一つです。

「コメント」とは、
「ソースコードに書かれている注釈」 です。

そのため、コメントがあろうがなかろうが、
実際のプログラムの動作には全く
影響を及ぼしません。

プログラムを実行するときには、
コメントは全て無視されます。

では、なぜコメントを書くことが
必要なのでしょうか。

ある、調査機関によると、

「ソースコードの平均19%がコメントである」

という調査結果が出ています。

なぜ「コメント」が必要か

その理由は、
「ソースコードをメンテナンス(保守)する人に
情報を伝えるため」
です。

多くの場合、プログラムを作成する人と
そのプログラムをメンテナンスする人は異なります。

どんな「コメント」を書けばいいのか

では、どんなコメントを書けばよいのでしょうか。

今までに私が見てきたコメントで一番多いものが、

「何をしているコードなのか」

というものです。

例えば、

「ここでファイルにデータを出力する」
「もし値が0ならばエラー処理する」  などなど...。

このようなコメントは必要なのでしょうか??

「何をしているコードなのか」は、
ソースコードを見ればわかることです。

「コメント」として書くべきこと

ソースコードをメンテナンスする人が知りたいのは、

「なぜそのようなコードになったのか」

です。

ソースコードに手を入れて変更するにも、
なぜそのようになっているのかが
解らないと手を入れられません。

一見すると回りくどいソースコードだけど、
もしかしたら何か理由があるのかも?

そう考えると迂闊に手は入れられません。

「何をしているコードなのか」は、
時間をかければ読み解くことができます。

しかし、
「なぜそのようなコードになったのか」は、
そのソースコードを書いたプログラマの
頭の中にしかありません。

その意図をソースコードから読み取ることは
できません。

だからこそ、コメントで補う必要があるのです。

「コメント」も成果物の一部

最初にも書きましたが、
コメントはプログラムの動作には影響しません。

実際にプログラマに話を聞くと、
「なんとなく」でコメントを書いている人も多いです。

しかし、
コメントもソースコード(成果物)の一部です。

また、ソースコードをメンテナンスする人への
大切な情報源です。

実際にプログラムを書く際には、
「なんとなく」ではなく、気を遣ってコメント
を書くようにしましょう。

--------------------------------------------
PS.これからITを勉強したいあなたへ
高坂も登壇!参加費無料のセミナーはこちら↓↓
IT業界セミナー・授業体験セミナー
--------------------------------------------

綺麗なコードを書くためには?

From: リスキルテクノロジー 高坂一城
新宿本校にて

kohsaka

「優れたプログラマが書くコードは綺麗である」

と、よく言われます。

これは私の経験上、真実だと思います。

では、「綺麗なコード」とは何でしょうか?

一言でいうと、「一定のルールで書かれている」ということです。

書き方が統一されていないコードは美しくありません。

また、書き方が統一されていても、
そのルールが美しくなければ意味がありません。

ということで、「美しい書き方のルール作り」が大切です。

名前の付け方

まずは名前の付け方を決めます。

全て英単語にする、といった場合、
以下の2つの表現方法があります。

【スネークケース】

単語と単語の間を"_"(アンダーバー)で区切る方法です。

例えば、「ユーザ名を取得する(get user name)」ことを

get_user_name

と表現します。

これは単語を"_"でつなげる様(さま)が、
スネーク(蛇)に似ていることから名付けられています。

【キャメルケース】

単語の頭文字だけ大文字にして連ねる方法です。

上記の例では、

getUserName

と表現します。

これは大文字の部分がキャメル(らくだ)の"こぶ"の
ように見えることから名付けられています。

基本は使用する言語に合わせる

名前の付け方(単語の区切り方)は、
使用するプログラミング言語に合わせます。

一般的に、Javaならキャメルケース、
Rubyならスネークケースが綺麗とされています。

「綺麗なコード」は、見返りの大きい、時間の投資

名前の付け方を考えて綺麗なコードを書くには、
時間がかかります。

10行や100行のコードをただとりあえず動くだけの
レベルで書くのに比べたら、余計に時間はかかります。

さらに、動いたらメンテナンスせずに捨ててしまうプログラムなら、
「綺麗」にこだわっても意味がないですよね。

しかし、たいていのプログラムは、10行や100行を
書いて終わりではないです。

実際は、もっともっとたくさんのコードを書き、
それをメンテナンスしなくてはいけません

(スマートフォンの中にはおよそ1億行のプログラム
が入っていると言われています)。

そこで綺麗なコードのために費やした時間に、
メンテナンスのし易さ、
という膨大な利子が付いて返ってきます。

さらに、綺麗なコードを書くために、
プログラムを整理することは、

こだわった分だけ、
そのプログラマ自身のスキルを確実に向上させます。

例えば、今、綺麗なコードを書くために10の時間がかかっても、

次は9の時間でそれができ、その次は8の時間で、というように、

投資に必要な時間がどんどん短くなっていきます。

投資額が少なくなる一方、見返りがどんどん増えていく。

こんな美味しい投資をしない手はありませんよね!

--------------------------------------------
PS.プログラミングを学ぶなら
LAプログラマースクール
--------------------------------------------

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する