「Goプログラミング実践入門」 書評
こんばんは、kuwana-kbです。
前回の「スターティングGo言語」でGoの基礎を一通り学習したので、次は実際のWebアプリ開発について学びたいと考えました。
そこで今回は、「Goプログラミング実践入門」という本を読んで実践したのでまとめたいと思います。
Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る impress top gearシリーズ
- 作者: Sau Sheong Chang,武舎広幸,阿部和也,上西昌弘
- 出版社/メーカー: インプレス
- 発売日: 2017/03/17
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
ざっくりと3行でいうと
* HTTPの基礎からGoによる実装/テスト/デプロイまで学べたよ!
* Goを用いてRESTful APIや掲示板アプリ作れたよ!
* 一通りGoの文法を理解した人でアプリケーション開発をしてみたいという人におすすめだよ!
この本の概要
この本では、Goを用いてWebアプリケーションを開発していきます。全体の流れとしては、Webアプリケーションとはなにか?から始まり、Goによる実装、テスト、デプロイをサンプルコードとともに説明してくれます。 本の構成は3部構成です。一部ずつ詳しくみていきましょう。
第一部 Go言語とWebアプリの親和性
一部の前半では、Webアプリケーションとはなにか?HTTPとはなにか?の解説から始まります。Goの入門書なのにそこからなの…?と感じるかもしれません(私は感じました笑)。しかし、ここで「Webアプリケーション」とはなにかを定義したことによって、この後の部で作るものの全体像が明確になったと感じます。また、HTTPの説明も後の方で作ることになるRESTful APIの実装に役立ちました。
一部の後半では早速Goを用いた「掲示板アプリ」の開発にとりかかります。いきなりすごい量のサンプルコードにびっくりすると思います。初学者の場合、全部理解するのは難しいかもしれませんが、第二部以降で詳しい解説があるので、細かいことは気にせずに説明通りに動かしてみると面白いと思います。
第二部 Webアプリ開発の基本テクニック
ここからがGoの解説です。Webアプリ開発においてよく使われるnet/http、テンプレートエンジン、データベースなどの解説がなされます。第二部を読み終え時、第一部で見た「掲示板アプリ」のソースコードがほとんど理解できるようになっていることでしょう。
第三部 リアルな開発への準備
ここからよりGoの実践的な解説に入っていきます。Web上でよく使われているjsonの処理方法、開発プロセスで重要となるテスト/デプロイ、そしてGoの特徴の一つである並行処理をWebアプリケーションにどう活かすかといった解説がなされていています。
本の概要は以上です。
この本のよかった点
1.ゼロからGoでWebアプリを作れる
この本1冊でGo製の掲示板アプリ、REST API、モザイク処理アプリの開発ができます。解説を読んで写経をするだけでも、実践的な力が身につくと思います。私は今仕事でGoを使っているのですが、業務で役立つ知識をこの開発を通して得られました。
Goで簡単なRESTful APIを作った。 handler <-> model <-> DB っていうすごい単純なやつだけど、RESTとWebアプリの構造への理解は深まったと思う。 #Goプログラミング実践入門 pic.twitter.com/abS2UczLMx
— kuwana-kb (@kuwana_kb_) 2019年3月4日
2.標準パッケージの基礎力が身につく
1と関連するのですが本書におけるWebアプリ開発では、基本的に標準パッケージを使っていきます。解説の仕方が、「まずは一回標準パッケージで実装してみてその後にサードパーティ製のパッケージで実装してみる」という手法なので、標準パッケージでどこまでできるか、サードパーティ製にはどういう利便性があるのかが明確に理解できました。標準パッケージを理解するの大事!
データの取り扱いについて、メモリからRDBまで色々な方法で扱うからそれぞれの関係性やメリデメを整理できた。特に標準のsqlパッケージで基本的な動作を実践した後にサードパーティのsqlやormパッケージを使うから、どういう恩恵があるのかわかりやすかった #Goプログラミング実践入門
— kuwana-kb (@kuwana_kb_) 2019年3月3日
3.図の解説がわかりやすかった
本書では細かな実装視点の解説も充実しているのですが、マクロなアプリケーション全体の解説も充実しています。
↑は私の雑な図で申し訳ないのですが、こういったアプリケーション全体のデザインに関する解説が随所にあります。今自分がどの部分を作っていて、どこと関連性があるのかがわかりやすかったです。
いまいちだった点
本書の内容にはとても満足しています。が、唯一不満だった点があります。それは…文章が読みづらい、ということです。訳がいけないのか原文がいけないのかは分からないですが、説明が回りくどかったり、関数AとBの説明が逆だったり、サンプルコードが間違っていたり…ちょっと校正の品質に難があると言わざるをえないです。この点を除けば本当にいい本なのに…!
まとめ
前回書評を上げた「スターティングGo言語」では、Goの基礎力が養えました。 今回の「Goプログラミング実践入門」は、その次のステップに最適な本といえます。これまで得たGoの知識が、この本を読み終える頃にはWebアプリケーションという一つの形になっていると思います。(実際に「デプロイ」の章ではherokuやGCPを通じてweb上に公開することになるので、本当に形になります!)
「Goプログラミング実践入門」はGoでWebアプリを作ってみたい人、Goの入門を学習し終えた人におすすめの本です!