Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
࡞ֶͬͯͿ ϛχϚϜgolint GoݴޠLTେձ 2017/06/05 @minamijoyo
Slide 2
Slide 2 text
ࣗݾհ • ా ਅ೭ (Masayuki Morita) • Twitter/GitHub: @minamijoyo • CrowdWorks Inc. • Πϯϑϥ୲ • ͍͍ͩͨAWS/Terraform/Dockerͱ͔͍ͬͯ͡Δ
Slide 3
Slide 3 text
Πϯϑϥ୲͕ࠓ͙͢ GoΛֶͿ͖3ͭͷཧ༝ 1. GoϛυϧΣΞCLIπʔϧ͕૿͖͑ͯͨɻ 2. bashεΫϦϓτͭΒ͍ɻGoॻָ͍͍ͯͯ͠ɻ 3. Gopher͘Μ͕͔Θ͍͍ɻ The Go gopher was designed by Renée French.
Slide 4
Slide 4 text
ࠓͷςʔϚ: ࠷ۙɺgolintͰ༡ΜͰΈͨ
Slide 5
Slide 5 text
golintͯ͠·͔͢ʁ
Slide 6
Slide 6 text
golint • ެࣜͷLinter • GoͬΆ͘ͳ͍ίʔσΟϯάελΠϧΛࢦఠ $ go get -u github.com/golang/lint/golint
Slide 7
Slide 7 text
$ golint main.go main.go:6:2: var instanceId should be instanceID
Slide 8
Slide 8 text
Ͳ͏ͬͯఆͯ͠Δͷ͔ʁ
Slide 9
Slide 9 text
ͨͩͷࣙॻͩͬͨ (※࣮ࡍʹ୯ޠͷ్தͷͷݕग़͍ͯ͠ΔͷͰগ͠ෳࡶʣ https://github.com/golang/lint/blob/master/lint.go
Slide 10
Slide 10 text
͔͠͠ golintͷίʔυΛͨͩோΊͯͯ ੩తղੳ͕ ॳ৺ऀʹΑ͘Θ͔ΒΜͷͰ͢
Slide 11
Slide 11 text
ͦ͏ͩ golint࡞Ζ͏
Slide 12
Slide 12 text
ϓϩάϥϛϯάֶशͷجຊ: ·ͶΔ
Slide 13
Slide 13 text
࡞ֶͬͯͿ golint
Slide 14
Slide 14 text
ϛχϚϜͳཁ݅ • ػೳɿಛఆͷม໊Λ୳͢ • ೖྗɿ1ϑΝΠϧͷΈҾͰϑΝΠϧ໊Λ͢ • ग़ྗɿϚονͨ͠ϑΝΠϧ໊:ߦ:ΧϥϜΛදࣔ
Slide 15
Slide 15 text
80ߦ͙Β͍Ͱॻ͚ͨ
Slide 16
Slide 16 text
←ඪ४ͷgoύοέʔδΛ͏ ↓ҾͰೖྗϑΝΠϧ໊ΛΒ͏
Slide 17
Slide 17 text
↓ϑΝΠϧΛύʔεͯ͠ASTΛऔಘ
Slide 18
Slide 18 text
↑ࠨลͷࣝผࢠΛऔΓग़ͯ͠νΣοΫ ↑ASTΛ࠶ؼతʹ୳ࡧ ←มೖࣜΛ୳͢visitor
Slide 19
Slide 19 text
↑ม໊ʹϚονͨ͠ΒҐஔΛग़ྗ ←୳͢ม໊ͷఆٛ
Slide 20
Slide 20 text
มwallyΛ୳ͤ
Slide 21
Slide 21 text
wally + golint = wallint
Slide 22
Slide 22 text
$ wallint data/wally.go data/wally.go:6:2: wally was found
Slide 23
Slide 23 text
͔ͤͬ͘ͳͷͰ ΤσΟλʹΈࠐΜͰΈͨ
Slide 24
Slide 24 text
มwallyΛ୳ͤ
Slide 25
Slide 25 text
ҰॠͰӅΕͨมwallyΛݕग़
Slide 26
Slide 26 text
·ͱΊ • ϓϩάϥϛϯάͷجຊ·ͶΔ͜ͱ • ࡞ֶͬͯͿͱཧղ͕ਂ·Δ • આ໌ʹͬͨίʔυˣ • https://github.com/minamijoyo/wallint