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
Building An Editor Package For Go
Search
Joe Fitzgerald
July 24, 2014
Technology
8
1.2k
Building An Editor Package For Go
A lightning talk for the Denver Gophers Meetup On 7/24/2014.
Joe Fitzgerald
July 24, 2014
Tweet
Share
Other Decks in Technology
See All in Technology
ウォンテッドリーのアラート設計と Datadog 移行での知見
donkomura
0
280
いま、あらためて考えてみるアカウント管理 with IaC / Account management with IaC
kohbis
2
590
メルカリIBIS:AIが拓く次世代インシデント対応
0gm
2
500
認知戦の理解と、市民としての対抗策
hogehuga
0
240
第4回 関東Kaggler会 [Training LLMs with Limited VRAM]
tascj
11
1.5k
サービスロボット最前線:ugoが挑むPhysical AI活用
kmatsuiugo
0
180
自治体職員がガバクラの AWS 閉域ネットワークを理解するのにやって良かった個人検証環境
takeda_h
2
370
Yahoo!広告ビジネス基盤におけるバックエンド開発
lycorptech_jp
PRO
0
180
AIドリブンのソフトウェア開発 - うまいやり方とまずいやり方
okdt
PRO
9
510
LLMエージェント時代に適応した開発フロー
hiragram
1
350
Goでマークダウンの独自記法を実装する
lag129
0
200
ABEMAにおける 生成AI活用の現在地 / The Current Status of Generative AI at ABEMA
dekatotoro
0
610
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Building Adaptive Systems
keathley
43
2.7k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
470
Side Projects
sachag
455
43k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
Designing for Performance
lara
610
69k
How to Ace a Technical Interview
jacobian
279
23k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Transcript
BUILDING AN EDITOR PLUGIN PACKAGE FOR GO Joe Fitzgerald, DIRECTOR,
CLOUD FOUNDRY SERVICES @ PIVOTAL
MEET JOE ▸ I work @ (http://pivotal.io) ▸ I sell
and deliver professional services for ▸ You can find me at: ▸ : @joefitzgerald ▸ : @joefitzgerald ▸ :
[email protected]
AND... SINCE MARCH I'VE BEEN WORKING ON A GO PACKAGE
FOR ATOM
I KNOW WHAT YOU ARE THINKING...
YOU ARE CRAZY BECAUSE I : Vim, Emacs, Sublime, IntelliJ,
Eclipse, LiteIDE... Acme (?)
None
YOU'RE RIGHT I'M NOT HERE TO CHANGE YOUR MIND
SO WHY'D YOU DO IT?
IT WAS MARCH AND IT SOUNDED LIKE A GOOD IDEA
(?)
MEET ATOM ▸ Built By: ▸ Find It At: atom.io
▸ License: MIT – Yes, It's Open Source!
BUT... + = SLOW, RIGHT?
REACT THE DEFAULT EDITOR VIEW AS OF JULY 23, 2014
= Much Faster
I CREATED A PACKAGE IT'S CALLED: go-plus
RIGHT NOW IT SUPPORTS: ▸ Formatting source using gofmt ▸
Formatting and managing imports using goimports ▸ Code quality inspection using go vet ▸ Linting using golint ▸ Syntax checking using go build and go test ▸ Display of test coverage using go test -coverprofile
None
None
None
None
A TOUR OF VERSION 1:
None
I MADE SOME ROOKIE MISTAKES (BUT I'M NOT SO SURE
OTHERS HAVE REALIZED IT) (BECAUSE THESE SEEM LIKE COMMON EDITOR MISTAKES)
WHY SHOULD SOMEONE HAVE TO CONFIGURE THE PATH TO TOOLS?
LIKE gofmt
WOULDN'T IT BE BETTER TO USE... go env ?
$ go env GOARCH="amd64" GOBIN="" GOCHAR="6" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOOS="darwin"
GOPATH="/Users/jfitzgerald/go" GORACE="" GOROOT="/usr/local/Cellar/go/1.3/libexec" GOTOOLDIR="/usr/local/Cellar/go/1.3/libexec/pkg/tool/darwin_amd64" CC="clang" GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common" CXX="clang++" CGO_ENABLED="1"
GOBIN="" + GOEXE="" + GOPATH="/Users/jfitzgerald/go" + GOROOT="/usr/local/Cellar/go/1.3/libexec" + GOTOOLDIR="/usr/local/Cellar/go/1.3/libexec/pkg/tool/darwin_amd64" IS
EVERYTHING YOU NEED TO FIND GO TOOLS (PLUS $PATH / %Path%)
SO WE JUST NEED TO FIND go
WHERE IS GO, YOU ASK? 1. Start With $PATH /
%PATH% Segments, Then: 2. OSX: /usr/local/go/bin (Package Installer) 3. OSX: /usr/local/bin (Homebrew) 4. Windows: C:\Go\bin (Package Installer)
SO NOW WE CAN FIND: 1. go 2. godoc 3.
gofmt 4. vet 5. cover
BUT WHAT ABOUT: 1. goimports 2. golint 3. oracle 4.
And Other $GOPATH / %GOPATH% Bin Executables? They aren't in GOTOOLDIR or GOROOT...
THEY BE HERE, SOMEWHERE: 1. Start With $PATH / %PATH%
Segments, Then: 2. Look In $GOBIN / %GOBIN% 3. Look In $GOPATH / %GOPATH% Segments In The bin Directory
AND THEN IF YOU CAN'T FIND THEM, OFFER TO: go
get -u THE REQUIRED TOOLS! (THERE IS NO MAGIC, THIS CAN BE DISABLED)
THIS REVELATION LED TO go-plus V2 (PLUS A LOAD OF
OTHER INTERNAL AWESOMENESS) TO PREPARE FOR THE ADDITION OF:
AUTOCOMPLETE (POWERED BY gocode)
ORACLE (POWERED BY oracle) ;)
GO TO DEFINITION (POWERED BY godef)
GO TO DOCUMENTATION (POWERED BY godoc)
AND ctags SUPPORT (POWERED BY gotags)
ALSO THE PACKAGE IS WRITTEN IN COFFEESCRIPT (Yeah, I Made
A Few Mistakes As I Learned CoffeeScript) IS THIS AS IRONIC TO YOU AS IT IS TO ME?
AND ON THAT BOMBSHELL... Goodnight GOT ANY QUESTIONS? TWITTER: @JOEFITZGERALD