2024/12/17 Tue
ヒマラヤの彼方で...
GitHubを導入した話
Kuzuzanpola! 隊員の岩井です。
今回は活動先にGitHubを導入した話です。
なお本記事は少々専門的な話になります。IT系職種(コンピュータ技術、PCインストラクター)の方々に読んでもらえると幸いです。
GitHubとは?
GitHubは簡単に言うとプログラムを共同で管理できるWebサービスです。
例えば私は現在この記事をGoogle Chromeというブラウザを使って書いているのですが、Chromeは数千万行にもおよぶソースコードから実装されています(参考値)。これほど膨大なソースコードは当然1人で開発されるわけではなく、多くのエンジニアが協力して開発を進めています。
共同開発する際に重要となるのが、「いつ」「誰が」「どのような目的で」「何を実装したか」を記録し管理することです。これが分かれば新規にプロジェクトに参加するエンジニアもソースコードで不明な点があってもその開発経緯を知れたり、必要に応じて当時の開発者に問い合わせることができます。
そのようなソースコード情報を管理するのにGitというソフトウェアがあり、Gitをウェブ上で使えるサービスがGitHubとなっています。GitHubは世界中のエンジニアが利用しており、ソースコードを共有し、共同で開発を進めるための標準的なツールとなっています。
赴任時の状況
さて、これまでの記事でも書きましたが私の配属先はソフトウェアエンジニアが1人もいません。そのため外部機関にソフトウェア開発を依存しているのですが、プログラムの管理が正しくされていませんでした。
私が来た当初はテキストファイル(.txt)に記載されたプログラムがGoogle Driveに保存されていました。これではいつ誰がどのような目的でプログラムを開発したかわからず、バージョン管理もできません。
これはまだ良い方で、どこにもプログラムがバックアップされていないものもあり、プログラムが保存されているPCが故障したらプロジェクトが頓挫するような状況のものもありました。
これはやばいと思い早速同僚にGitHubを紹介し、そのメリットなどを説明しました。同僚も「これいいじゃん!」と理解を示し、GitHubの導入が決まりました。
GitHubの導入
まず行ったのはOrganizationの作成です。配属先ではいくつかのソフトウェア関連のプロジェクトがあったので、Organizationを作成しその配下にそれぞれのプロジェクトに対応するリポジトリを作成しようと思いました。
作成したのは下記のOrganizationです。現在は全てプライベートリポジトリのため外部からは何も見えませんが、プロジェクトによっては外部公開することになるかもしれません。
https://github.com/amtc-bt
命名規則の紹介
続いて行ったのは命名規則の紹介です。Google Driveに保存されていたテキストファイルの名前には一貫性がなく、ファイル名にスペースが含まれていました。ファイル名に一貫性がないとファイルを探すのに手間がかかったり、スペースがあるとターミナル操作時などに厄介です。
というわけでsnake_caseやCamelCaseといった命名規則を紹介し、snake_caseを採用しました。
使い方のレクチャー
次はGitHubの操作方法についてのレクチャーです。私は前職ではソフトウェアエンジニアとして働いており、ターミナルからgit操作をしていました。しかしソフトウェアが専門でなくターミナルを使用したことがない同僚にpushやadd, commitといったgitコマンドやその他諸々のコマンド(lsやcdなど)を教えるのは現実的ではありません。そこでブラウザからの操作で使用することにしました。
私自身初めてGitHubをブラウザから操作したのですが、commitやそのメッセージも記載することができ問題なく使用できました。プログラムを変更したらGitHubにcommitすること、commitする際には簡潔に変更内容を記載することの2点に絞って教えました。
なおブランチに関してはmasterのみで管理しています。開発している機能によってはブランチを分けるべきですが、開発規模が小さいことといきなりブランチの概念まで教えたら頭がパンクするのでmasterのみで管理しています。
現在の状況
導入からしばらく経過しましたが、プログラムを変更したらGitHubにも反映させるという一連の動作は習慣化されています。同僚からも「どのようにプログラムを管理すべきか知らなかったから助かった」という言葉もいただきました。
ソフトウェアエンジニアとしての仕事経験がある方にとってはGitを用いたバージョン管理は当たり前ですが、途上国の開発現場においてはそれを紹介するだけでも大きなインパクトを与えます。
本記事が各国で活動するIT隊員の参考になってもらえたら幸いです。
SHARE