Successfully reported this slideshow.
Your SlideShare is downloading. ×

golintを使おう

golintを使おう

Download to read offline

GolangNotHttpNight(Gunosy.go#12)にて発表した内容に加筆修正を加えたものになります。
[GolangNotHttpNight]
http://gunosygo.connpass.com/event/13139/

[sample code]
https://github.com/evalphobia/golint-sample

GolangNotHttpNight(Gunosy.go#12)にて発表した内容に加筆修正を加えたものになります。
[GolangNotHttpNight]
http://gunosygo.connpass.com/event/13139/

[sample code]
https://github.com/evalphobia/golint-sample

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

golintを使おう

  1. 1. golintを使おう golint
  2. 2. Copyright © 2009-2015 eureka, inc. All rights reserved. もくじ ・じこしょうかい ・golintについて ・golintをみてみる ・わたしとgolint
  3. 3. じこしょうかい - なまえ: Takuma Morikawa - しょぞく: - たんとう:
  4. 4. じこしょうかい - なまえ: Takuma Morikawa - しょぞく: - たんとう: (Go, JS, たまにインフラ)
  5. 5. じこしょうかい - なまえ: Takuma Morikawa - しょぞく: - たんとう: (Go, JS, たまにインフラ) aws-sdk-goのラッパーとか https://github.com/evalphobia/aws-sdk-go-wrapper
  6. 6. じこしょうかい - なまえ: Takuma Morikawa - しょぞく: - たんとう: (Go, JS, たまにインフラ) aws-sdk-goのラッパーとか https://github.com/evalphobia/aws-sdk-go-wrapper
  7. 7. golintについて
  8. 8. Copyright © 2009-2015 eureka, inc. All rights reserved. golintについて みなさんつかってますか?
  9. 9. Copyright © 2009-2015 eureka, inc. All rights reserved. golintについて みなさんつかってますか?
  10. 10. Copyright © 2009-2015 eureka, inc. All rights reserved. golintについて みなさんつかってます か?
  11. 11. Copyright © 2009-2015 eureka, inc. All rights reserved. golintについて
  12. 12. Copyright © 2009-2015 eureka, inc. All rights reserved. golintについて もちろん私は
  13. 13. Copyright © 2009-2015 eureka, inc. All rights reserved. golintについて 設定していませんでした…orz
  14. 14. Copyright © 2009-2015 eureka, inc. All rights reserved. golintについて $ golint ./…
  15. 15. Copyright © 2009-2015 eureka, inc. All rights reserved. あのころのわたしたち 1) <XXX>でコードを書く
  16. 16. Copyright © 2009-2015 eureka, inc. All rights reserved. あのころのわたしたち 1) <XXX>でコードを書く 2) <XXX>でテストコードを書く
  17. 17. Copyright © 2009-2015 eureka, inc. All rights reserved. あのころのわたしたち 1) <XXX>でコードを書く 2) <XXX>でテストコードを書く 3) ʕº̫͡ºʔo00(git push origin dev [ターン!])
  18. 18. Copyright © 2009-2015 eureka, inc. All rights reserved. あのころのわたしたち 1) <XXX>でコードを書く 2) <XXX>でテストコードを書く 3) ʕº̫͡ºʔo00(git push origin dev [ターン!]) 4) CircleCIがエラーを検知
  19. 19. Copyright © 2009-2015 eureka, inc. All rights reserved. あのころのわたしたち 1) <XXX>でコードを書く 2) <XXX>でテストコードを書く 3) ʕº̫͡ºʔo00(git push origin dev [ターン!]) 4) CircleCIがエラーを検知 5) (Slackへのエラー通知でざわつく)
  20. 20. Copyright © 2009-2015 eureka, inc. All rights reserved. あのころのわたしたち 1) <XXX>でコードを書く 2) <XXX>でテストコードを書く 3) ʕº̫͡ºʔo00(git push origin dev [ターン!]) 4) CircleCIがエラーを検知 5) (Slackへのエラー通知でざわつく) 6) (*ノェノ)キャー m9(^Д^)プギャー
  21. 21. Copyright © 2009-2015 eureka, inc. All rights reserved. あのころのわたしたち 1) <XXX>でコードを書く 2) <XXX>でテストコードを書く 3) ʕº̫͡ºʔo00(git push origin dev [ターン!]) 4) CircleCIがエラーを検知 5) (Slackへのエラー通知でざわつく) 6) (*ノェノ)キャー m9(^Д^)プギャー < おっけー!
  22. 22. Copyright © 2009-2015 eureka, inc. All rights reserved. ある日 ʕº̫͡ºʔo00(あれ、、、)
  23. 23. Copyright © 2009-2015 eureka, inc. All rights reserved. ある日 ʕº̫͡ºʔo00(あれ、、、) ʕº̫͡ºʔo00(pre-commitがうまく動いてないぞ…)
  24. 24. $ golint ./… 2>&1 | wc -l
  25. 25. Copyright © 2009-2015 eureka, inc. All rights reserved. ある日 ʕº̫͡ºʔo00(ちゃんと動作を確認しましょう…) https://gist.github.com/evalphobia/cf79c1911df7a5ae3f00
  26. 26. golintをみてみる
  27. 27. golintをみてみる https://github.com/golang/lint/blob/master/lint.go
  28. 28. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lint() ← こ の 1 7 の関数内でファイルごと にチェックをかけている
  29. 29. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintPackageComment() ← パ ッ ケ ー ジ の コ メ ン ト を チ ェ ッ ク
  30. 30. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintPackageComment()
  31. 31. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintPackageComment() ↑ パ ッ ケ ー ジ コ メ ン ト が 離 れ て い る
  32. 32. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintPackageComment() ↑ パ ッ ケ ー ジ コ メ ン ト が な い
  33. 33. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintPackageComment() ↑ パ ッ ケ ー ジ コ メ ン ト の 前 に ス ペ ー ス が あ る
  34. 34. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintPackageComment() ↑ コ メ ン ト の 形 式 に 添 っ て い な い
  35. 35. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintImports() ← i m p o r t を チ ェ ッ ク
  36. 36. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintImports() ↑ ド ッ ト イ ン ポ ー ト 、 ダ メ 、 ゼ ッ タ イ
  37. 37. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintBlankImports() ← 無 名 i m p o r t 「 _ 」 を チ ェ ッ ク
  38. 38. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintBlankImports() ↑ ド ッ ト イ ン ポ ー ト 、 ダ メ 、 ゼ ッ タ イ↑ 無 名 イ ン ポ ー ト を テ ス ト や m a i n ( ) 以 外 で 使 っ て い る
  39. 39. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintExported() ← 大 文 字 で 始 ま る 変 数 や 関 数 を チ ェ ッ ク ( 公 開 状 態 )
  40. 40. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintExported() ↑ ド ッ ト イ ン ポ ー ト 、 ダ メ 、 ゼ ッ タ イ ↑ パ ッ ケ ー ジ 名 と 同 じ p r e f i x を 持 っ て い る
  41. 41. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintExported() ↑ 公 開 変 数 ( p u b l i c ) は 、 個 別 に 定 義 す る
  42. 42. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintExported() ↑ 公 開 し て い る も の に は コ メ ン ト を つ け ま し ょ う
  43. 43. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintExported() ↑ コ メ ン ト の 形 式 に 添 っ て い な い
  44. 44. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintNames() ← 命 名 を チ ェ ッ ク
  45. 45. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintNames() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ パ ッ ケ ー ジ 名 に ア ン ス コ 「 _ 」 は 使 わ な い
  46. 46. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintNames() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ 名 前 に 全 部 大 文 字 を 使 っ ち ゃ あ か ん
  47. 47. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintNames() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ k X X X の よ う な 化 石 命 名 も あ か ん
  48. 48. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintNames() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ 名 前 に も ア ン ス コ は 使 っ ち ゃ あ か ん
  49. 49. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintNames() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↓ ※ i d と か h t t p と か は 大 文 字 小 文 字 を 統 一 す る
  50. 50. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintNames() ← 変 数 の 宣 言 を チ ェ ッ ク
  51. 51. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintVarDecls() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ 0 値 で 初 期 化 し な く て も い い ん だ よ
  52. 52. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintVarDecls() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ 右 辺 が 類 推 可 能 な 値 の 場 合 は 型 宣 言 不 要 だ よ
  53. 53. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintElses() ← e l s e ブ ロ ッ ク を チ ェ ッ ク
  54. 54. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintElses() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ i f 文 最 後 の e l s e は r e t u r n 返 す な ら い ら な い よ !
  55. 55. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintRanges() ← r a n g e を チ ェ ッ ク
  56. 56. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintRanges() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ f o r r a n g e 文 で k e y し か 使 わ な い 場 合 は 、 2 番 目 の 変 数 を 「 _ 」 で 捨 て ず に 省 略 し た ほ う が え え
  57. 57. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintErrorf() ← e r r o r . N e w を チ ェ ッ ク
  58. 58. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintErrorf() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ e r r o r s . N e w ( f m t . S p r i n t f ( ) ) だ っ て ? f m t . E r r o r f ( ) っ て い う の が あ っ て だ な …
  59. 59. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintErrors() ← e r r o r 変 数 を チ ェ ッ ク
  60. 60. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintErrors() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ ↑ グ ロ ー バ ル な エ ラ ー 変 数 の p r e f i x は " e r r " に し ま し ょ う
  61. 61. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintErrorStrings() ← エ ラ ー 文 言 を チ ェ ッ ク
  62. 62. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintErrorStrings() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ ↑ エ ラ ー 文 言 を 大 文 字 で 始 め る の は 非 推 奨 ※ ↓ ※ し き い 値 は 0 . 6 な の で 通 常 は 表 示 さ れ な い
  63. 63. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintErrorStrings() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ ↑ エ ラ ー 文 言 に 句 読 点 を つ け て は い け な い
  64. 64. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintReceiverNames() ← メ ソ ッ ド の レ シ ー バ 名 を チ ェ ッ ク
  65. 65. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintReceiverNames() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ ↑ レ シ ー バ 変 数 を ア ン ス コ 「 _ 」 に し ち ゃ あ か ん
  66. 66. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintReceiverNames() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ ↑ 「 m e 」 「 t h i s 」 「 s e l f 」 も あ か ん よ な あ
  67. 67. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintReceiverNames() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ ↑ 同 じ 構 造 体 で レ シ ー バ 変 数 名 は 統 一 し よ う
  68. 68. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintIntDec() ← イ ン ク リ メ ン ト ・ デ ク リ メ ン ト を チ ェ ッ ク
  69. 69. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintIntDec() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ ↑ 「 i + = 1 」 は 「 i + + 」 に し た ほ う が い い よ
  70. 70. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintMake() ← m a k e ( ) を チ ェ ッ ク
  71. 71. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintMake() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ ↑ 空 の 配 列 は m a k e し な い で 宣 言 す る だ け の 方 が い い よ
  72. 72. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintErrorReturn() ← r e t u r n 時 の e r r o r 型 を チ ェ ッ ク
  73. 73. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintErrorReturn() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ ↑ 関 数 で 複 値 を 返 す 場 合 、 e r r o r 型 は 最 後 に し ま し ょ う
  74. 74. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintUnexportedReturn() ← 非 公 開 型 の r e t u r n を チ ェ ッ ク
  75. 75. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintUnexportedReturn() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ ↑ 公 開 関 数 で 非 公 開 の 構 造 体 を 返 す の は あ か ん !
  76. 76. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintTimeNames() ← t i m e の 命 名 を チ ェ ッ ク
  77. 77. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go lintTimeNames() ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑↑ t i m e . D u r a t i o n 型 に 時 間 の 単 位 の 名 前 は つ け て は い け な い
  78. 78. Copyright © 2009-2015 eureka, inc. All rights reserved. 続きコードはWebで ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ [golintのエラーサンプル] https://github.com/evalphobia/golint-sample
  79. 79. Copyright © 2009-2015 eureka, inc. All rights reserved. 続きコードはWebで ↑ コ メ ン ト の 形 式 に 添 っ て い な い ↑ [golintのエラーサンプル] https://github.com/evalphobia/golint-sample [公式にあった…orz] https://github.com/golang/lint/tree/master/testdata
  80. 80. Copyright © 2009-2015 eureka, inc. All rights reserved. lint.go しきい値
  81. 81. ↑ 「 - m i n _ c o n f i d e n c e 」
  82. 82. Copyright © 2009-2015 eureka, inc. All rights reserved. 0.8以下のエラー ↑ パ ッ ケ ー ジ コ メ ン ト が な い ↑ e r r o r s . N e w ( s t r i n g ) の 文 字 列 が 大 文 字 で 始 ま っ て い る
  83. 83. わたしとgolint
  84. 84. わたしとgolint もし、できることなら
  85. 85. わたしとgolint あなただけの専用lintを作ってみたいと思いませんか?
  86. 86. わたしとgolint …
  87. 87. わたしとgolint 間に合いませんでした…
  88. 88. thank you : ) Copyright © 2009-2015 eureka, inc. All rights reserved.

Editor's Notes

  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介
  • ・自己紹介

×