このブログエントリはGoogle Cloud Platform Advent Calendar 2014 の 21日目の投稿です。 他の方の投稿はおそらくものすごくハイレベルな記事ばかりだと思うのですが、こういうのもイイんじゃないかなと思って、勇気を持って投下!(ハイレベルな記事を書けない、とも言うw)
いま、GAE を勉強しようと思ったら
slim3 quickstart by @sinmetal on @Qiita http://t.co/nUFzxghRRR GAEって、初学の書籍が壊滅的ですよねぇ、、、
— れいな@底なし沼の魔女 (@MegaBlackLabel) 2014, 11月 29
@kassy_kz @vvakame shin1さんの本以降は、最初から全部説明しているのは無いと思います。 http://t.co/v4rnClxi1b
— 真 (@sinmetal) 2014, 11月 29
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章
- すみません、ここだけ PullRequest を作らずにやってました。
- GitHub - a-know/gaeshakyo-with-go at d8afabba571c70c564d8523fa9f6a41dcf14269f
- 記念すべき Golang Cafe #50 に参加してきたので、GAE/Go の写経を始めた #golangcafe - えいのうにっき
3.2章 Datastore Service
- 3.2章「Datastore Service」の写経 by a-know · Pull Request #1 · a-know/gaeshakyo-with-go · GitHub
- GAE本の 3.2 章を Go で写経したので、そこでの学びをメモするよ - えいのうにっき
3.3章 Users Service
- 3.3章 Users Service by a-know · Pull Request #2 · a-know/gaeshakyo-with-go · GitHub
- GAE本の 3.3 章を Go で写経したので、そこでの学びをメモするよ - えいのうにっき
3.4章 Memcache Service
- 2014-10-25 もくもく会 by a-know · Pull Request #3 · a-know/gaeshakyo-with-go · GitHub
- GAE/J 本の 3.4, 3.5 章を Go で写経・メモ - えいのうにっき
3.5章 Task Queue Service
- 3.5章 Task Queue Service by a-know · Pull Request #4 · a-know/gaeshakyo-with-go · GitHub
- GAE/J 本の 3.4, 3.5 章を Go で写経・メモ - えいのうにっき
3.6 章 Scheduled Task
- 3.6章 Scheduled Task by a-know · Pull Request #5 · a-know/gaeshakyo-with-go · GitHub
- 3.6章 〜 3.8 章 の GAE/Go 写経メモ - えいのうにっき
3.7 章 Mail Service
- 3.7章 Mail Service by a-know · Pull Request #6 · a-know/gaeshakyo-with-go · GitHub
- 3.6章 〜 3.8 章 の GAE/Go 写経メモ - えいのうにっき
3.8 章 Channel Service
- 3.8章 Channel Service by a-know · Pull Request #7 · a-know/gaeshakyo-with-go · GitHub
- 3.6章 〜 3.8 章 の GAE/Go 写経メモ - えいのうにっき
...続きはまだまだ、実施中。
「写経」と銘打ってはいるけど、丸っきりそればっかり、というわけでもなくて。例えば次の 3.9 章なんかは Blobstore を扱う章なんだけど、今では Blobstore よりも Cloud Storage を使うほうが主流(というか、Blobstore へのファイル出力は Deprecated)だと思うのでそっちを使う、みたいなアレンジは、ちょこちょこ加えてみようと思っている次第。
ひととおり全部が終わったら、そのあとは GAE/Go のテストに手を出してみようかなとも思っているので、まだまだ先は長そうだ。
いっしょに勉強しませんか (`・ω・´)!
このような感じで、"GAE/J で書いた、あの機能" を、僕なりの解釈・書き方ではあるけれど、一応アプリケーションとしては動作する形で実装できている。今のところ。ので、これから GAE を Go で、という人にとって、何らかの参考になればいいなぁ、とも思っている。
とはいえ僕も、
とか、
「パッケージの分け方とか、コレジャナイとは思うけどとりあえず先に進もう」
みたいな感じで、いろんな不安にフタをしながら心細く前に進んでいる。なにが言いたいかっていうと、あーでもないこーでもない、と、いっしょに GAE/Go を勉強してくれる人がいたら心強いなー!ということっす。w
これを真に受けて GAE/Go をはじめてみよう、と思ってくれた方は、ぜひ、GCP Advent Calendar 11 日目の GoogleAppEngine/GOに触ってみたら、チュートリアルに感動しました。 から始めてみてください!ほんと、感動しましたw
では最後に...、、GAE/Go は最強!!
Google API Expertが解説する Google App Engine for Java実践ガイド
- 作者: 小川信一
- 出版社/メーカー: インプレス
- 発売日: 2012/03/16
- メディア: 大型本
- クリック: 12回
- この商品を含むブログ (14件) を見る