at backyard

Color my life with the chaos of trouble.

JavaScriptやPythonを書いていた自分がGoを書き始めるために読んだ本、3冊

最近、自身の事業として運用しているソフトウェアをGoですべて書き直した。
元はPythonで書かれていたソフトウェアだったが、それをGoに書き換えた形となる。

なぜGoに書き換えたのか?というのにはいくつか理由があるのだが、そこについては表題から外れるのでここには書かない。

私は普段JavaScriptをメインに書いており時折Pythonも書くのだが、そんな私がGoでソフトウェアを書く際に知識のキャッチアップとしてどのような書籍を読んだかをここに書き残しておくことにした。

非常にありきたりな内容ではあるが、まあ無事にGoで書き直せた達成感から、こんなポストを書いているのだと甘く見てほしい。

前提となる知識のキャッチアップ

前提としてGo TourなどでGoの知識は学んでいた。

go.dev

またGoの有名なOSSなども興味本位でソースを覗いていたりした。
あと自分でちょっとしたCLIツールなどを書いたりはしていた、というところから本格的にGoで書いていくにはどうしたらよいか?という観点で書籍を読んだ。

改訂2版 みんなのGo言語

私が読んだのは1版の方だが、まずはみんなのGo言語を読んだ。

gihyo.jp

他の言語を触っていたが、そんな人がGo言語を触る際に読む、という立ち位置ではかなり読み勧めやすい本だと思う。

実際にGoでCLIツールやWebアプリを書くときなど、様々なシチュエーションでのGoの使い方が学べて良い。

Go言語による並行処理

様々な人々が口々に名著だと言っている書籍。
そこまで言うなら、と購入してみたら実際に名著だった一冊。

Goでの並行処理の書き方、バッドノウハウ、様々なTIPSがいい感じに書かれている「これはたしかに名著だ」と読みながら心から言葉が溢れる一冊。

www.oreilly.co.jp

Goでの書き直しで並行処理なども使っているが、それらの設計をするときには大いに参考になった一冊。

逆に読まないでここらへんの設計していたらと思うと、若干怖くもある。
(と言ってもまだまだ未熟者ゆえ、改善点は見つかるのだが...)

実用 Go言語

Go言語で本格的に書き換え対象のソフトウェアを書き直し始めてから、一つの迷いが常に頭をよぎり続けた。

Goでこんな書き方は良くないのではないか?

私はそんなときGoで有名な方々のOSSリポジトリでの書き方を参考にしていたが、それでも時にはGoっぽくないコードも書いてしまっていた。
Goのベテランエンジニアにコードレビューしてもらいたい...と思っていたときに出会った、まさにGoベテランエンジニアのありがたいTIPSをたくさん知れる一冊。
(ちなみにソフトウェア書き換えるという件は私一人でやっていたので、誰にも相談できないまますすめるという状況だった)

www.oreilly.co.jp

Go言語でソフトウェアを書く際に現場レベルで役立つ、実用的なTIPSが散りばめられた一冊。
私は最初から読まず気になるところから、つまみ食いして、その場ですぐに自身の書いているコードにも反映させた。

私と同じようにGoのベテランエンジニアはこういうときにどうするんだろう?って考えが頭の中をよぎり始めたら、購入を検討したほうが良い一冊。
少なくとも私は買ってよかったと思った。

というわけで3冊書いたが、どの本も購入金額以上に役立ったと思える本だった。この場を借りてこれらの本の著者に感謝である。