Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
make and learn minimum golint
Search
Masayuki Morita
June 05, 2017
Programming
0
5.4k
make and learn minimum golint
Masayuki Morita
June 05, 2017
Tweet
Share
More Decks by Masayuki Morita
See All by Masayuki Morita
.terraform.lock.hcl 完全に理解した / How to update .terraform.lock.hcl efficiently
minamijoyo
16
16k
tfschemaの仕組み / How tfschema works
minamijoyo
2
570
SRE Lounge#2: SRE at CrowdWorks
minamijoyo
1
2.3k
BigData-JAWS #9: Data Analytics Infra for CrowdWorks
minamijoyo
3
470
20170605_make_and_learn_minimum_golint.pdf
minamijoyo
0
43
private_homebrew_20170525.pdf
minamijoyo
0
42
非公開な社内限のCLIツールを Homebrewで配布したい
minamijoyo
3
910
Other Decks in Programming
See All in Programming
PHPはいつから死んでいるかの調査
chiroruxx
1
360
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
7
1.7k
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
670
HUIT新歓2024「競技プログラミング、やってみませんか?」
slephy2784
1
260
⼤規模⾔語モデルの拡張(RAG)が 終わったかも知れない件について
nearme_tech
22
15k
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
8
3.9k
Hanami and htmx
bkuhlmann
0
200
Elm 0.19.0 Changes
bkuhlmann
0
490
Behind VS Code Extensions for JavaScript / TypeScript Linnting and Formatting
unvalley
5
860
サイコロで理解する統計的仮説検定の考え方
tatamiya
4
850
CQRS/ES avec Symfony, c’est (trop) bien !
jeremyfreeagent
1
640
Compose-View Interop in Practice (mDevCamp 2024)
stewemetal
0
100
Featured
See All Featured
Done Done
chrislema
178
15k
VelocityConf: Rendering Performance Case Studies
addyosmani
320
23k
Design by the Numbers
sachag
274
18k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
186
16k
The MySQL Ecosystem @ GitHub 2015
samlambert
242
12k
The Cult of Friendly URLs
andyhume
74
5.7k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
154
14k
Practical Orchestrator
shlominoach
181
9.7k
The Brand Is Dead. Long Live the Brand.
mthomps
48
28k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
77
42k
StorybookのUI Testing Handbookを読んだ
zakiyama
12
4.6k
Transcript
࡞ֶͬͯͿ ϛχϚϜgolint GoݴޠLTେձ 2017/06/05 @minamijoyo
ࣗݾհ • ా ਅ೭ (Masayuki Morita) • Twitter/GitHub: @minamijoyo •
CrowdWorks Inc. • Πϯϑϥ୲ • ͍͍ͩͨAWS/Terraform/Dockerͱ͔͍ͬͯ͡Δ
Πϯϑϥ୲͕ࠓ͙͢ GoΛֶͿ͖3ͭͷཧ༝ 1. GoϛυϧΣΞCLIπʔϧ͕૿͖͑ͯͨɻ 2. bashεΫϦϓτͭΒ͍ɻGoॻָ͍͍ͯͯ͠ɻ 3. Gopher͘Μ͕͔Θ͍͍ɻ The Go
gopher was designed by Renée French.
ࠓͷςʔϚ: ࠷ۙɺgolintͰ༡ΜͰΈͨ
golintͯ͠·͔͢ʁ
golint • ެࣜͷLinter • GoͬΆ͘ͳ͍ίʔσΟϯάελΠϧΛࢦఠ $ go get -u github.com/golang/lint/golint
$ golint main.go main.go:6:2: var instanceId should be instanceID
Ͳ͏ͬͯఆͯ͠Δͷ͔ʁ
ͨͩͷࣙॻͩͬͨ (※࣮ࡍʹ୯ޠͷ్தͷͷݕग़͍ͯ͠ΔͷͰগ͠ෳࡶʣ https://github.com/golang/lint/blob/master/lint.go
͔͠͠ golintͷίʔυΛͨͩோΊͯͯ ੩తղੳ͕ ॳ৺ऀʹΑ͘Θ͔ΒΜͷͰ͢
ͦ͏ͩ golint࡞Ζ͏
ϓϩάϥϛϯάֶशͷجຊ: ·ͶΔ
࡞ֶͬͯͿ golint
ϛχϚϜͳཁ݅ • ػೳɿಛఆͷม໊Λ୳͢ • ೖྗɿ1ϑΝΠϧͷΈҾͰϑΝΠϧ໊Λ͢ • ग़ྗɿϚονͨ͠ϑΝΠϧ໊:ߦ:ΧϥϜΛදࣔ
80ߦ͙Β͍Ͱॻ͚ͨ
←ඪ४ͷgoύοέʔδΛ͏ ↓ҾͰೖྗϑΝΠϧ໊ΛΒ͏
↓ϑΝΠϧΛύʔεͯ͠ASTΛऔಘ
↑ࠨลͷࣝผࢠΛऔΓग़ͯ͠νΣοΫ ↑ASTΛ࠶ؼతʹ୳ࡧ ←มೖࣜΛ୳͢visitor
↑ม໊ʹϚονͨ͠ΒҐஔΛग़ྗ ←୳͢ม໊ͷఆٛ
มwallyΛ୳ͤ
wally + golint = wallint
$ wallint data/wally.go data/wally.go:6:2: wally was found
͔ͤͬ͘ͳͷͰ ΤσΟλʹΈࠐΜͰΈͨ
มwallyΛ୳ͤ
ҰॠͰӅΕͨมwallyΛݕग़
·ͱΊ • ϓϩάϥϛϯάͷجຊ·ͶΔ͜ͱ • ࡞ֶͬͯͿͱཧղ͕ਂ·Δ • આ໌ʹͬͨίʔυˣ • https://github.com/minamijoyo/wallint