memoメモ

最近はGo言語関連で。φ(..)メモメモ

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)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

プログラミング言語Goフレーズブック

プログラミング言語Goフレーズブック

  • 作者: David Chisnall,デイビッド・チズナール,柴田芳樹
  • 出版社/メーカー: ピアソン桐原
  • 発売日: 2012/10/04
  • メディア: 単行本(ソフトカバー)
  • 購入: 1人 クリック: 5回
  • この商品を含むブログを見る

基礎からわかる Go言語

基礎からわかる Go言語