Go言語ベストプラクティス12コ
Twelve Go Best Practices よりメモ。
各行の # はスライドの番号
コード
- エラーを先に処理して、ネストするのを避ける #4
- 可能なら同じことの繰り返しを避ける #5
- Type switchを特別なケースのために使う #6
- Type switchには変数宣言を使う #7
- Function adapterを使う #8,9
構成
- 重要なコードは先に書く #11
- コードにドキュメントを書く #12
- 短いほどいい(パッケージ名、関数名、、) #13
- 複数のファイルでパッケージを構成する #14
- go get-ableなパッケージをつくる #15
API
- 必要なもの(メソッド)を聞くようにする #17
- 独立したパッケージで、独立を保つ #18
- インターフェースを使って依存を避ける #20
- 決まった型の代わりにインターフェースを使うと、テストがより簡単になる #21
- APIで並行性(concurrency)は避ける #22
並行性(concurrency)
- 状態を管理するためにgoroutineを使う #25,26
- バッファーチャネルでgoroutineを避ける #27,28,29
- quitチャネルでgoroutineのリークを避ける #30
感想
Goをそれなりに書いてるひとを対象としたスライドだと思います。
「APIで並行性のあるものを避けるべし #22」というのは、確かにそうかなと思いました。標準ライブラリにも見られませんし、Goは並行性が得意だからといってAPIに仕込まないほうがいいかもしれません。
「エラーは先に処理すべし #4」は、他の言語でも言えることですが、Goではメソッドの戻り値をもらう際にerrorをちゃんと処理する必要がありますので、すぐに習慣づくと思います。くれぐれも _ (アンダースコア)でerrorを廃棄しないようにしましょう。
一般的なコードの書き方については、リーダブルコード(リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice))も参考になります。
おわり。
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/06/23
- メディア: 単行本(ソフトカバー)
- 購入: 68人 クリック: 1,802回
- この商品を含むブログ (102件) を見る
- 作者: David Chisnall,デイビッド・チズナール,柴田芳樹
- 出版社/メーカー: ピアソン桐原
- 発売日: 2012/10/04
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 5回
- この商品を含むブログを見る
- 作者: 古川昇
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2012/11/21
- メディア: 単行本(ソフトカバー)
- クリック: 7回
- この商品を含むブログ (2件) を見る