えいのうにっき

a-knowの日記です

"Google App Engine for Java実践ガイド" を Go で書く! #gcpja

このブログエントリはGoogle Cloud Platform Advent Calendar 2014 の 21日目の投稿です。 他の方の投稿はおそらくものすごくハイレベルな記事ばかりだと思うのですが、こういうのもイイんじゃないかなと思って、勇気を持って投下!(ハイレベルな記事を書けない、とも言うw)

いま、GAE を勉強しようと思ったら

GAE マイスターである id:sinmetal もこう仰っているように、僕も、いま GAE を何かの教材をつかって勉強するとしたら、"Google App Engine for Java実践ガイド" を置いて他にないと思ってる。「今現在でもこの本を使わざるを得ない」、というのが正しいのかもしれないけど。。

あ、一応自分と GAE についての関係を言っておくと...。プライベートで勉強してた GAE を頼りに上京、GAE を使った開発仕事を1年3ヶ月ほどやってた、という間柄。"GAE の開発仕事を" といっても、振り返れば、管理系のお仕事が多かったなぁというのが今となっての感想だけど。

で、話を戻して...。

でもこの本、Java なのよね。

そんな GAE を、例えばいま流行りの Go で始めたい、勉強したい、ってなると、...みなさん、どうやってるんでしょうね。ひたすら公式ドキュメントを読んでるのかな。 公式ドキュメント、すごくわかりやすいところもあるとは思うけど、あんまし実践的ではないところもちょこちょこある気がして。あとやっぱ、各機能について断片的に学ぶよりも、"各機能から成る、一つのアプリケーション" を作りながら学びたい。簡単なものでもいいから。

ってことで僕は、『 "Google App Engine for Java実践ガイド" のサンプルアプリケーションを Go で書く』、というのを、ちまちまとやってみてます、まだ終わってないけど。前置きが長かったですが、GCP Advent Calendar 2014 の 21日目の内容として、その活動についてご紹介できれば良いなと思っております。

あ、ちなみに謝っておくと、テスト書いてないです。こんなこと、サバンナでは口が裂けても言えません。

"Google App Engine for Java実践ガイド" を Go で書く!

GitHub 上にリポジトリを構えて、各章(節)ごとに Pull Request を作る...というやりかたでやってみてる。毎章、多かれ少なかれ躓くポイントはあるので、そういったところをブログにも残しながら進めています。

リポジトリ

https://github.com/a-know/gaeshakyo-with-go

各章の内容

2章

3.2章 Datastore Service

3.3章 Users Service

3.4章 Memcache Service

3.5章 Task Queue Service

3.6 章 Scheduled Task

3.7 章 Mail Service

3.8 章 Channel Service

...続きはまだまだ、実施中。

「写経」と銘打ってはいるけど、丸っきりそればっかり、というわけでもなくて。例えば次の 3.9 章なんかは Blobstore を扱う章なんだけど、今では Blobstore よりも Cloud Storage を使うほうが主流(というか、Blobstore へのファイル出力は Deprecated)だと思うのでそっちを使う、みたいなアレンジは、ちょこちょこ加えてみようと思っている次第。

ひととおり全部が終わったら、そのあとは GAE/Go のテストに手を出してみようかなとも思っているので、まだまだ先は長そうだ。

いっしょに勉強しませんか (`・ω・´)!

このような感じで、"GAE/J で書いた、あの機能" を、僕なりの解釈・書き方ではあるけれど、一応アプリケーションとしては動作する形で実装できている。今のところ。ので、これから GAE を Go で、という人にとって、何らかの参考になればいいなぁ、とも思っている。

とはいえ僕も、

slim3 みたいなフレームワークとかなくても、特に困ったことはない...かも?」

とか、

「パッケージの分け方とか、コレジャナイとは思うけどとりあえず先に進もう」

みたいな感じで、いろんな不安にフタをしながら心細く前に進んでいる。なにが言いたいかっていうと、あーでもないこーでもない、と、いっしょに GAE/Go を勉強してくれる人がいたら心強いなー!ということっす。w

これを真に受けて GAE/Go をはじめてみよう、と思ってくれた方は、ぜひ、GCP Advent Calendar 11 日目の GoogleAppEngine/GOに触ってみたら、チュートリアルに感動しました。 から始めてみてください!ほんと、感動しましたw

では最後に...、、GAE/Go は最強!!

Google API Expertが解説する Google App Engine for Java実践ガイド

Google API Expertが解説する Google App Engine for Java実践ガイド