これは「コードを書いていて困ったときに、suinがチャットで質問に答えたり相談に乗るsuinのプログラミング相談室(仮)」で頂いた質問と僕の回答の要約です。
質問
suinさんが書いたGoの記事をいつも参考にしています。Goの練習で何か作ってみたいのですが、良いテーマがあれば教えてください。勉強会ではコマンドラインツールを作るのが多い印象です。私はPHPやjQueryの経験があります。
suinの回答
jQueryやサーバサイドの経験がある強みと、PHPが不得意なところをGoで補えるスキルを習得できるという観点でお答えすると、僕のお薦めは2つあります。
JSON APIサーバを作ってみる
HTML書き出すようなウェブアプリケーションをGoでやるのは辛く、PHPやRailsのほうが適材適所です。しかし、効率的にリクエストを捌くWebサーバを作るときはGoを活かせる場面が出てくると思います。グノシーが当時APIサーバをPHPで作っていたそうなのですが、パフォーマンスが課題になりGoで書き換えて解決したという事例もあります。jQueryやCURLで操作できるAPIサーバはちょうどいい題材だと思います。今後役に経つノウハウにもなると思います。
コマンドラインツールを作る
シングルバイナリで配布できる利点がGoにはあるので、良い練習テーマにになると思います。PHPだと、配布先のPHPバージョンや拡張を気にしないといけないが、Goは基本的にそういう心配がありません。コマンドライン系のフレームワークも多く、コマンドラインツールを作るエコシステムとしては、PHPより成熟していると思います。
回答に対しての反応
コマンドラインツールはライブラリを少し使ってみたことがあるので、Goの利点がイメージできます! コマンドラインツールを作ってみようと思います。APIサーバはイメージができてませんが、調べならやってみたいと思います。