「プログラミング言語Goフレーズブック」と「基礎からわかる Go言語」を読みました。 #golang

Posted by kwmt on Sun, Dec 23, 2012

2012/10/4発売の「プログラミング言語Goフレーズブック」(以下、フレーズブック)と

2012/11/21発売の「基礎からわかる Go言語」(以下、基礎Go)をようやく読み終えました。

フレーズブック

  <div class="amazlet-powered-date" style="font-size:80%;margin-top:5px;line-height:120%">
    posted with <a href="http://www.amazlet.com/" title="amazlet" target="_blank">amazlet</a> at 12.12.22
  </div>
</div>

<div class="amazlet-detail">
  David Chisnall デイビッド・チズナール <br />ピアソン桐原 <br />売り上げランキング: 414,479
</div>

<div class="amazlet-sub-info" style="float: left;">
  <div class="amazlet-link" style="margin-top: 5px">
    <a href="http://www.amazon.co.jp/exec/obidos/ASIN/486401096X/kwmt27-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a>
  </div>
</div>

フレーズブックは、下記の2012/4/30に発売された「The Go Programming Language Phrasebook (Developer’s Library)」という本の日本語版です。

  <div class="amazlet-powered-date" style="font-size:80%;margin-top:5px;line-height:120%">
    posted with <a href="http://www.amazlet.com/" title="amazlet" target="_blank">amazlet</a> at 12.12.22
  </div>
</div>

<div class="amazlet-detail">
  David Chisnall <br />Addison-Wesley Professional <br />売り上げランキング: 173,081
</div>

<div class="amazlet-sub-info" style="float: left;">
  <div class="amazlet-link" style="margin-top: 5px">
    <a href="http://www.amazon.co.jp/exec/obidos/ASIN/0321817141/kwmt27-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a>
  </div>
</div>

どうでもいいかもですが、フレーズブックの日本語版は、原著よりサイズ的に大きそうです。

(参考記事:Goフレーズブックと原著のサイズ比較 #golang)

フレーズブックは、訳者まえがきにもありますが、初心者向けではないとのことです。

Go言語のインストール手順が明記されていないことからみても、超初心者向けではないことがわかります。

この本のサブタイトルに「使いこなすためのコード&イディオム100+」とあり、使いこなすためのコードが多く紹介されています。

内容はGo言語の特徴はすべて網羅していると思います。

いろいろ役に立ちそうなコードがあったのですが、ひとつだけ紹介すると、6.2で出てくる下記のコードです。

package main

import "fmt"

func main() {
  str := "Go言語"
  //これを行なってはいけない・・・①
  for i := 0; i < len(str); i++ {
    fmt.Printf("%c", str[i])
  }
  fmt.Printf("\n")
  //代わりにこちらを使う・・・②
  for _, c := range str {
    fmt.Printf("%c", c)
  }
  fmt.Printf("\n")
}

文字列中の文字をループする単純な方法は、forループを使用することですが、

①の方法はバイト単位でループし、文字単位ではないため、

マルチバイト文字なんかは、Go言語の文字列はUTF-8なので、正しく読み取れないことになります。

②ではrangeを使っていますが、これを使えばたいていは正しく読み取れるとのこと。

このような使いこなすためのコードが他にもたくさんあります。

読み終える期間としては、昼間仕事して夜や土日に写経したりして、本でも分からないところは

公式ページみたりして勉強したとしても1ヶ月かからないくらいでした。

基礎Go

  <div class="amazlet-powered-date" style="font-size:80%;margin-top:5px;line-height:120%">
    posted with <a href="http://www.amazlet.com/" title="amazlet" target="_blank">amazlet</a> at 12.12.22
  </div>
</div>

<div class="amazlet-detail">
  古川 昇 <br />シーアンドアール研究所 <br />売り上げランキング: 147,016
</div>

<div class="amazlet-sub-info" style="float: left;">
  <div class="amazlet-link" style="margin-top: 5px">
    <a href="http://www.amazon.co.jp/exec/obidos/ASIN/4863541171/kwmt27-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a>
  </div>
</div>

この本は表紙にも書いてありますが、Go言語の入門に最適な1冊だと思います。

開発環境の構築方法から始まり(Windows,Mac,Linuxに対応)、

Go言語の基本的な文法が8章まで続き、最後に9章で逆引きサンプルが57サンプルもあり

充実した内容となっていると思います。

フレーズブックとかぶっていることころも多いのですが、

フレーズブックは訳本ということもあり、すこし癖が強く若干読みづらい箇所があります。

それにくらべて、基礎Goは、日本人が書いているためとても読みやすいと思います。

少し残念なのは、フレーズブックには1ページちょっとですがユニットテストの説明がありましたが、

基礎Goにはユニットテストの説明がなかったことぐらいでしょうか。

次回、基礎からわかるGo言語2なるものが出る際は、ご検討ください。

期間ですが、これもフレーズブックと同じように写経したりして、

全部で51節ありそのうち最初の20節はさっと読んだだけですが、

だいたい20日ぐらいでした。

補足

上記の本の順番は、発売順に書いたものです。また、どちらの本もGoバージョン1に対応しています。

Go1に対応していませんが、Google App Engineであれば、こちらが参考になると思います。(私は持ってませんが、、、すみませn)

  <div class="amazlet-powered-date" style="font-size:80%;margin-top:5px;line-height:120%">
    posted with <a href="http://www.amazlet.com/" title="amazlet" target="_blank">amazlet</a> at 12.12.23
  </div>
</div>

<div class="amazlet-detail">
  横山 隆司 <br />秀和システム <br />売り上げランキング: 535,048
</div>

<div class="amazlet-sub-info" style="float: left;">
  <div class="amazlet-link" style="margin-top: 5px">
    <a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798031801/kwmt27-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a>
  </div>
</div>


comments powered by Disqus