Upload
nakaji-s
View
2.255
Download
3
Embed Size (px)
DESCRIPTION
第15回 Cloud Foundry 輪読会
Citation preview
gopher と学ぶ golang ~ go fmt 編 ~
2013/11/29
自己紹介
Name : Sota Nakajima
Twitter : @soldier_nakaji
最近の活動 :
golangとは
既存言語のアイデアをもとに生み出された
新しいプログラミング言語 (2009/11/10 誕生 )
golangの特徴
・早いコンパイル速度、実行速度
・メモリ管理 (GC)
・マルチコア活用 (goroutine)
・便利なコマンド
・整形 (go fmt)
・パッケージ収集 (go get)
・テスト (go test)
・ドキュメント作成・閲覧 (go doc)
・その他
go fmtって?
・ go のコードを整形
・使い方は、 $go fmt ファイル名
※ $go fmt ./... とするとカレントディレクトリ
以下の全ファイルに対し実行
※ ... は / を含めたワイルドカード
go fmt誕生の経緯
全てのコーディング規約論争を生まれる前に消し去りたい
go fmt誕生の経緯
全てのコーディング規約論争を生まれる前に消し去りたい
go fmtの特徴1
・余計な () や ; 許さない、 { の後は強制改行
- if (a == b) { fmt.Println("Hello, 世界 "); }
+ if a == b {
+ fmt.Println("Hello, 世界 ")
+ }
go fmtの特徴2
・ import 文の記述順入れ替え
import (
- "strings"
"fmt"
+ "strings"
)
go fmtの特徴3
・改行コードを LF に変換
・ハードタブでインデント
(差分略)
ソフトタブも使える、が・・
$ gofmt -tabs=false -tabwidth=4 -l -w ファイル名
しかし、
http://golang.org/doc/effective_go.html
訳)インデントはデフォルトで tab を使います。
スペースはどうしても必要なときだけ使ってね。
Indentation
We use tabs for indentation and gofmt emits them by default. Use spaces only if you must.
ソフトタブも使える、が・・
$ gofmt -tabs=false -tabwidth=4 -l -w ファイル名
しかし、
http://golang.org/doc/effective_go.html
訳)インデントはデフォルトで tab を使います。
スペースはどうしても必要なときだけ使ってね。
Indentation
We use tabs for indentation and gofmt emits them by default. Use spaces only if you must.
結局、使うなってこと?
・「どのオプションでフォーマットしても良い」状態は良くない
=> 他人のソースを go fmt したらバージョン
管理システムで差分発生
=> オプション合わせるためにワンアクション 増える
・ golang 開発側はベースとなる立場を示した
結論
・バージョン管理システムに commit する前に必ず go fmt 。ソフトタブは極力使わない
※ ファイル保存時などに自動的に go fmt してくれる仕組みを使うのがオススメ
・ IDE
・テキストエディタの GoPlugin
・ git hook
おわり