夏休みを使ってGo言語での開発を行いたい

8月は丸々休みという嬉しい自体になった。 この機会にいままで自分自身できちんとした開発をしたことがないという負い目を払拭する為、Go言語での開発を行いたい。

作るものはなんでもいいが、暫定でパスワード管理システムとする。 思いつきなので変えるかもしれないが、別にそれはよしとする。 学習を行うこと自体が目的なのだ。

CI環境を作ってアジャイル開発を行っていきたい。 スモールスタートしてちょっとずつ大きくしていきたい。

テストコードを書きたい

今まで勉強でC++とかPythonとかちょっとだけGoを書いたことはあるが、ユニットテストコードを書いたことがなかった。 プログラムを書いたらすぐに結合試験に取り掛かっていた。

規模の小さいソースコードだったので問題がなかったのだろうが、規模の大きいプロジェクトだったりアジャイル開発だときっと困るのだろう。 実際に困った自体になる前に、ユニットテストコードを書けるようになりたい。

Chefでの環境構築もやりたい

AWSでのEC2インスタンスを開発環境として利用するつもりなので、節約のために開発中以外はインスタンスを削除しておきたい。 そして、開発を再開するタイミングでインスタンス再生成&前回開発終了時点の環境まで再構築を自動で行いたい。 構成管理ツールだとAnsibleなら使用経験あってある程度分かるんだけど、AWSという土壌に合わせてChef(OpsWorks)を使うべきかな、と思ってる。

CI環境を使いたい

アジャイルな感じで同じコードに対して何度もバージョンアップしていく感じのことをやりたい。 それならば自動ビルドとか自動テストとか自動デプロイやるべきですよねやっぱり! ただ、CIサービスって世の中には数多あるんですよね。

CI環境といえば有名なのはJenkins CI環境で私が構築・使用実績があるのはGitlab CI 経験として今後の役に立ちそうなのは前者。導入コストを抑えられるのは後者。

でも前者はGo言語の開発に使えるのかよく知らないし、後者はGitlabって結構CPU使うのでAWS上で利用しようとするとインスタンス代金が怖い・・・

ということでGo開発向きのCIサービスを調べてみたらTravis CIってのがよさそうなのでこれを使ってみようかな?

 
以上。8月中にちゃんとやりたいなあ