新人エンジニア研修でGitlaboを使う

GitLabを新人研修に導入しプログラミング課題の管理を効率化する具体案

こんにちは。ゆうせいです。

新人研修においてGitLabというツールを活用することは、単にソースコードを保存する以上の価値を持ちます。現代の開発現場では必須となるバージョン管理システムに触れながら、実務に近い形で学習を進めることが可能です。本記事では、GitLabを研修で活用するための具体的なアイデアと、その導入に関する事実を解説します。

GitLabの基本概念と初心者向けの解説

GitLabとは、プログラムの変更履歴を記録し、チーム内での共有を容易にするソフトウェアです。初めて学習する方には、図書館の蔵書管理システムを想像すると理解が深まります。

リポジトリとバージョン管理

リポジトリは、プログラムや資料を保管する箱のようなものです。GitLabでは、誰が、いつ、どの行を書き換えたかという履歴をすべて記録します。これは、建築のデザイン図面を過去の状態に遡って確認できる仕組みに似ています。

マージリクエストによるレビュー

マージリクエストは、自分が作成したプログラムを本番用の保管場所に取り込んでもらうための申請機能です。学校の課題に例えると、生徒が作成した解答を先生に提出し、添削を依頼する行為に相当します。

研修でGitLabを生かす具体的なアイデア

GitLabには研修を円滑に進めるための機能が備わっています。これらを組み合わせることで、講師の負担を軽減しつつ、受講生の理解を深めることができます。

Issue機能を用いた課題の配布と進捗管理

Issue(イシュー)機能は、本来バグの報告や機能要望を管理するためのものですが、研修では1つの課題を1つのIssueとして登録します。

受講生は担当するIssueを確認し、作業を開始します。完了後に状態をクローズに変更することで、講師は一目で全員の進捗状況を把握できます。

プログラミング課題の配布とテンプレート化

講師は雛形となるプログラムをリポジトリに用意しておきます。受講生はFork(フォーク)という機能を使用して、講師のリポジトリを自分の作業領域に複製します。これにより、全員が同じスタートラインからプログラミングを開始できるようになります。

CI/CD機能を活用した自動採点

GitLabにはCI/CDと呼ばれる、プログラムを自動でテストする仕組みがあります。受講生がプログラムをアップロードするたびに、あらかじめ用意したテストコードが実行されるように設定します。

テストが成功したかどうかをシステムが自動で判定するため、受講生は即座に自分の間違いに気づくことができます。

GitLabを導入するメリットとデメリット

導入にあたっては、良い側面だけでなく、運用の負担となる側面も事実として理解しておく必要があります。

メリット

  • 実務に直結するスキルの習得:現場で使用されるツールをそのまま使うため、配属後の適応が早まります。
  • 添削作業の効率化:マージリクエスト上でコードの修正指示を出すことができ、過去の指摘事項も記録として残ります。
  • 非同期的な学習の実現:講師が横にいなくても、受講生は自分のペースで課題を進め、システムからのフィードバックを受け取れます。

デメリット

  • 初期の学習コスト:Git自体の概念が難しいため、操作に慣れるまでに一定の時間が必要です。
  • 環境構築の手間:自社サーバーに構築する場合、サーバーの管理やアップデートのメンテナンスコストが発生します。

LAN内部にGitLabサーバーを構築し運用するための具体的な手順

GitLabをインターネット上のサービスとして利用するのではなく、自社のLAN(ローカルエリアネットワーク)内に専用のサーバーを設置して運用する方法があります。この構成は、ソースコードという重要な資産を外部に出したくない組織にとって、非常に有効な選択肢です。

サーバー構築に必要な準備とスペック

GitLabを動作させるためには、一定の性能を持ったコンピューターが必要です。サーバーの準備を料理に例えると、多くの注文を同時にこなすための広いキッチンを確保することに似ています。

  • OS:Linux(UbuntuやCentOSなど)が一般的です。実務では情報の多いUbuntu Serverなどがよく選ばれます。
  • メモリ:最低でも4GB、快適に動作させるには8GB以上が推奨されます。メモリは作業机の広さに相当します。机が狭いと、一度に多くの作業をこなせず処理が止まってしまいます。
  • ストレージ:保存するプログラムの量によりますが、高速な読み書きができるSSDで50GB以上の空き容量があると安心です。

インストールとネットワーク設定の手順

サーバーの準備ができたら、GitLabのソフトウェアを導入します。その後、LAN内の他のパソコンからアクセスできるように通信の設定を行います。

インストール作業

公式が提供しているOmnibus(オムニバス)パッケージを利用するのが最も簡単です。このパッケージは、必要な部品がすべて一つの箱にまとめられた組み立てキットのようなものです。コマンドを実行するだけで、複雑な設定を自動で行ってくれます。

静的IPアドレスの割り当て

LAN内でサーバーを運用する場合、サーバーの住所にあたるIPアドレスを固定する必要があります。もし住所が頻繁に変わってしまうと、他の受講生がサーバーを見失ってしまうからです。この設定を静的IPアドレスの割り当てと呼びます。

ファイアウォールの設定

サーバーにはファイアウォールという門番の機能があります。外部からの通信を通すために、HTTP(80番)やHTTPS(443番)、SSH(22番)という特定の門を開放する設定が必要です。

LAN内配置のメリットとデメリット

自社専用のサーバーを持つことには、利点と責任の両方が伴います。事実に基づいた内容は以下の通りです。

学習のステップ

GitLabを用いた研修を成功させるためには、以下の順序で学習を進めることが論理的です。

  1. バージョン管理の概念理解:なぜ変更履歴を残す必要があるのかを学びます。
  2. Gitの基本操作の習得:自身のPCでファイルを保存し、履歴を作る方法を練習します。
  3. GitLabへのアップロード:作成した履歴をサーバー上のGitLabへ同期させる手順を学びます。
  4. マージリクエストの実践:他者からのレビューを受け、指示通りに修正を行う共同作業の流れを体験します。
  5. CI/CDの理解:自動テストの結果を見て、自身のコードの正確性を担保する習慣を身につけます。

これらのステップを順に踏むことで、新人研修はより実践的で効率的なものへと変化します。

グループでは新人エンジニア研修のアシスタント講師を募集しています。

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。