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
メルカリ社員100人に聞いたGoLandの使い方 / JetBrains Night Toky...
Search
Masahiro Wakame
November 20, 2018
Programming
27
13k
メルカリ社員100人に聞いたGoLandの使い方 / JetBrains Night Tokyo 2018
https://info.jetbrains.com/jetbrains-night-tokyo-2018.html
Masahiro Wakame
November 20, 2018
Tweet
Share
More Decks by Masahiro Wakame
See All by Masahiro Wakame
社内フレームワークとその依存性解決 / in-house framework and its dependency management
vvakame
1
670
DatastoreからSpannerに 移行したいぞ途中編 / migrate Datastore to Spanner in progress
vvakame
0
1.2k
Google Cloud Next 2019 わくわく報告会 / Google Cloud Next 2019 WakuWaku Report
vvakame
1
440
OSS入門 世界に参加する最初のひと押し / OSS first step
vvakame
7
740
GCP Compute 概要と選定 / DevFest Tokyo 2018
vvakame
12
1.7k
GoでGraphQLサーバを立てるぞ! / Building GraphQL server by go
vvakame
15
4.8k
『Re:VIEW+CSS組版やっていき』を やった話とWebエンジニアが期待する未来 / CSS Publishinng for Web Developers
vvakame
3
9k
go.mercari.io/datastore はいいぞ! / go.mercari.io/datastore is pretty good!
vvakame
4
1.1k
最強のDatastoreライブラリを作った / golang.tokyo #11
vvakame
3
11k
Other Decks in Programming
See All in Programming
SidekiqでAIに商品説明を生成させてみた
akinko_0915
0
130
OSS開発者の憂鬱
yusukebe
7
3k
Claude Code on the Web を超える!? Codex Cloud の実践テク5選
sunagaku
0
470
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
420
オンデバイスAIとXcode
ryodeveloper
0
450
Dive into Triton Internals
appleparan
0
480
Functional Calisthenics in Kotlin: Kotlinで「関数型エクササイズ」を実践しよう
lagenorhynque
0
110
自動テストを活かすためのテスト分析・テスト設計の進め方/JaSST25 Shikoku
goyoki
2
560
Vueで学ぶデータ構造入門 リンクリストとキューでリアクティビティを捉える / Vue Data Structures: Linked Lists and Queues for Reactivity
konkarin
1
160
Introducing RemoteCompose: break your UI out of the app sandbox.
camaelon
2
540
エンジニアに事業やプロダクトを理解してもらうためにやってること
murabayashi
0
140
予防に勝る防御なし(2025年版) - 堅牢なコードを導く様々な設計のヒント / Growing Reliable Code PHP Conference Fukuoka 2025
twada
PRO
36
11k
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
Speed Design
sergeychernyshev
32
1.2k
KATA
mclloyd
PRO
32
15k
Optimizing for Happiness
mojombo
379
70k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Documentation Writing (for coders)
carmenintech
76
5.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Raft: Consensus for Rubyists
vanstee
140
7.2k
Practical Orchestrator
shlominoach
190
11k
Mobile First: as difficult as doing things right
swwweet
225
10k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Transcript
ϝϧΧϦࣾһ100ਓʹ ฉ͍ͨGoLandͷ͍ํ JetBrains Night Tokyo 2018 Θ͔Ί ·͞ͻΖ
Θ͔Ί ·͞ͻΖ @v vakame Masahiro Wakame Go GraphQL TypeScript
Q. ຊʹ100ਓʹฉ͍ͨʁ
Q. ຊʹ100ਓʹฉ͍ͨʁ
Q. ຊʹ100ਓʹฉ͍ͨʁ ड़ਓ 372ਓ ʹ ฉ͖·ͨ͠ʂʂ
ࠓͷαϚϦ ΈΜͳʹฉ͍ͨ ूେΛ͠·͢ʂ
ࠓͷαϚϦ •GoLand ཱࣗɾࣗशͷͨΊͷΈ •IDEʹٻΊΔػೳ •GoLandͷศརͳػೳͨͪ
֤OSຖͷ •macOSϢʔβͰ͢ •ࠓجຊmacOSϕʔε •Action໊͕Θ͔ΕOK •͋ͱͰઆ໌͠·͢
ཱࣗɾࣗशͷͨΊͷΈ
GoLandଟػೳͰ͋Δ •ػೳ͕ແݶʹ͋Δ •Βͳ͍ػೳ͏͜ͱ͕Ͱ͖ͳ͍ •Ͳ͏ͬͯڧ͘ͳΕ͍͍Μͩ… ·ͣษڧͷํ͔Β
Productivity Guide •༁͢Δͱੜ࢈ੑΨΠυ •Help > Productivity Guide •ීஈͬͯͳ͍ػೳʹ •ਓͷΛݟΔͱ݁ߏָ͍͠
Find Action •ActionΛ୳͢ •Help > Find Action •ࠓ͜Ε͚֮ͩ͑ͯؼͬͯʂ •͍͍ͩͨͷͷ͕Action Cmd+Shift+A
Find Action ͍͍ͩͨ Կ͔ Actionͩʂ
Find Action ຊࢿྉ Action໊Λ ໌ه͠·͢
Search Everywhere •ͳΜͰݕࡧ • ͜Ε •ϑΝΠϧ, ܕ, Action ͳʹ͔͔Βݕࡧ Shift
Shift ࠔͬͨΒShift࿈ଧϚϯ
Preferencesͷݕࡧ •ݕࡧܥػೳ΄Μͱॆ࣮͍ͯ͠Δ
ϖΞ ϓϩάϥϛϯά •Ұ൪ϕʔγοΫͳͭ •ਫ਼ਆతෑډͪΐͬͱߴ͍ •Ҋ֎ΈΜͳ͍ํ͕όϥ͚Δ •γϣϧμʔαʔϑΟϯ͢Δͷָ͕ ڐՄऔΖ͏ʂ
Tip of the Day •ศརใΛϥϯμϜʹදࣔ •Help > Tip of the
Day •ҰؾʹෳݟΔͱָ͍͠ •গͣͭ͠ڧ͘ͳΖ͏ʂ
Presentation Assistant (Plugin) • github.com/chashnikov/IntelliJ-presentation- assistant • γϣʔτΧοτΩʔදࣔϓϥάΠϯ Unofficial PluginͰ͢
Key Promotor X (Plugin) • github.com/halirutan/IntelliJ-Key-Promoter-X • γϣʔτΧοτΩʔڭҭϓϥάΠϯ • Ϛεͱ͔͏ͱࢦಋ͞ΕΔ
Unofficial PluginͰ͢
•Preference > Keymap > γϣʔτΧοτٯҾ͖ ਓ͔ΒڭΘΔ࣌ศར ͻͬͦΓͯ͠·͢
খ͍͞Ϙλϯશ෦ԡ͢ •݁ߏݟಀ͚͢Ͳਵॴʹ͋Δ ͱΓ͋͑ͣԡ͠·͠ΐ͏
ෆຬΛݟಀ͞ͳ͍ •ෆศʹ׳Εͳ͍΄͏͕Α͍ •ղফͯ͠Γӽ͍͖͍͑ͯͨ •ݴ͏қ͘ߦ͏͠… ୳ͤ(͍͍ͩͨ)͋Δʂ
ϒϩάͱ͔ݟΔ •blog.jetbrains.com/go/ •blog.jetbrains.com/jp/category/goland •samuraism.com/jetbrains/training ࡢϓογϡ͞ΕͨͷͰ…(ૉ
IDEʹٻΊΔػೳ
Goͷύοέʔδཧ •܈༤ׂڌ •Dep •Go Modules (Official) •↑Experimental GoLandGo Modulesαϙʔτࡁ
Go Modules •GO111MODULE=on •࠷ߴͷαϙʔτʂ ͜Εͦ͜ސ٬͕ٻΊ͍ͯͨͷ…ʂ
Go Module •GoLandͷGo Moduleαϙʔτ࠷ߴ(࠶ܝ •$GOPATH ͷมͳpackageरΘͳ͍ •↑ͪΐ͍ͪΐ͍ਏ͔ͬͨ… •IDEͱͯ͠ͷ͕͕͋ͬͨ(ؾʹͳΔ
σόοΨ •ී௨ʹ͑Δ (Delve͕backend •Break point / Inspector •Unit TestपΓͷαϙʔτॆ࣮ •Ͱ͖ͳ͍…
•ෳࡶͳEvaluate Expression / Set Value
AppEngineαϙʔτ •Google Cloud PlatformͷAppEngine •ͬͯ·͔͢ʁͬͯ·͢Ͷʁ •go111 runtimeͰΊͬͪΌָʹͳͬͨ •AppEngineଆ͕าΈد͖ͬͯͨܗ •2018.3 Ͱچruntimeͷαϙʔτվળ
ΊͬͪΌ͍͚ͨ͠Ͳधཁബͦ͏ͳͷͰ࠙ձͰ…
ίʔυิ •ී௨ͷαδΣετ •ςετੜ •Struct ͷFieldຒΊ •etc…
πʔϧྨ…ʁ •gofmt, goimportsͳͲ •αϙʔτ༗Γ •νʔϜͰ౷Ұ͢ΔͨΊಛఆͷΤσΟλʹ ґଘͨ͘͠ͳ͍ؾ࣋ͪ… •gometalinter → File Watcher
ଞΤσΟλϢʔβʹฉ͍ͨ
Vim •IdeaVim Plugin •ΠέΔ •ͭΒ͍ •Undoͷڍಈ͕ਏ͍… plugins.jetbrains.com/plugin/164-ideavim
ίʔυิͱ͔͍Δͷ ݾΛ͑Ε Α͘ͳ͍Ͱ͔͢ʁ ※ݸਓͷײͰ͢(ͬͯݴ͑ͬͯ
GoLandͷศརͳػೳͨͪ ৭ʑग़͖ͯ·ͨ͠
Show Intention Action •ͦͷ࣌ศརͦ͏ͳΞΫγϣϯΛදࣔ •Կ͔͋Γͦ͏ͱࢥͬͨΒͱΓ͋͑ͣԡ͢ •Quick Fix ʹ͍ۙ •WarningError͕ͳͯ͘ԡͤΔ Option
+ Enter
Test (Cmd+Shift+T) •Code ⇔ Test ͷҠಈ •Testͷੜ •Table Driven TestͳςϯϓϨΛੜʂ
•ςετ໊ؔΘΓͱྑ͍ Table Driven Testͯ͠·͔͢ʁ
Fill struct recursively •ͱͯ͠struct࡞Δ࣌ʹศར •zeroͰҰ୴શ෦ຒΊͯ͘ΕΔ Testॻ࣌͘ʹΑ͍͘·͢
Mark Directory as •Excludes ͱ͔͢Δ •ݕࡧͱ͔ʹҾ͔͔ͬΒͳ͘ͳΔ ͿͬͪΌ͚͋Μ·Θͳ͍
Declaration •ఆٛʹඈͿͭ •͜ͷϝιουͷ࣮Ͳ͏ͳͬͯΔͷʙ •Jump to Source ͱҧ͍͕Θ͔Βͳ͍… •GoҎ֎ͷݴޠͩͱҧ͏ͷ͔ͳ ͍ͭτϥοΫύουͰૢ࡞͢Δͭ
Back •1ݸલͷॴʹΔͭ •DeclarationͱΈ߹Θͤͯසൟʹ͏ •࠷ۙ·ͰΒͳͯ͘ෆศͩͱࢥͬͯ ·ͨ͠…
Next Project Window •ผ૭Ͱ։͍͍ͯΔProjectʹҠಈ͢Δͭ •ɹ͔ͨ͠ʹ •͔ɺ͔͍͍ͬ͜…
Edit Custom VM Options •GoLandͷىಈΦϓγϣϯ͍͡ΕΔ •-XmxΛ૿͢ʂͱ͍͏ਓ͕ଟ͔ͬͨ •JVMͷ࠷େώʔϓαΠζ • -Xmx1920m ʹ͠·ͨ͠
Recent Files •Recent Edited Files ͋ΔΑʂ
•͜ͷInterfaceΛ࣮ͯ͠ΔͭͲ͍ͭʁ •Methodͷ࣮ͷҰཡͱ͔ग़ͤΔ Implementations ݁ߏසൟʹ͏…ʂΊͬͪΌྑ͍
Call Hierarchy •ؔͳͲͷݺͼग़͠πϦʔΛදࣔ •Find Usage ΑΓศར…ʂ •࠶ؼతʹḷΕΔ Find Usageͣͬͱͬͯͨ…
Scratch File •GoͰී௨ʹ͑Δ •ಉ྅ͱίʔυͷ૬ஊ͍ͨ͠… •Playground → ิͳͯ͘ࢮ͵ •Scratch FileͰॻ͍ͯShare͢Δ ৽نϫʔΫεϖʔε४උΊΜͲ͍
JetBrains Toolbox •www.jetbrains.com/toolbox/ •GoLand ͦͷଞIDEೖΕΔͷΒ͘Β͘ •όʔδϣϯݻఆͱ͔Ͱ͖Δ •ΞϓσϥΫϥΫʂ Actionͱ͔Ͱͳ͍͚Ͳ…
Implement Interface •͋Δstructͱ͔ʹඞཁͳϝιουΛ ͼΌͬʂͱੜͤΔ implement missing method Ͱ͢
Implements missing method •Γͳ͍ϝιουΛͼΌͬʂͱੜͤΔ ίϯύΠϥʹinterface࣮νΣοΫͤ͞ΒΕΔ
File… :Line:Column •File Ͱ :ߦ൪߸:ྻ൪߸ Ͱ֘ҐஔʹඈΔ σόοάָ͕ʂ
Next Highlighted Error •Warning, Error etc ʹδϟϯϓͰ͖Δ •ίϯύΠϧΤϥʔͷमਖ਼࣌ʹศར
Show tabs in one row •Preferences > Editor > General
> Editor Tabs •Show tabs in one row Λ disable ʹ͢Δ •λϒද͕ࣔ1ߦʹͳΔͷෆศͩΑͶ… •શ෦ݟ͑ͯΔͱͤ
Camel Case matching •ೖྗิͰ໊લΛશ෦ଧͭඞཁͳ͍ •େจࣈ෦͚ͩͱ͔Ұ෦͚ͩͰOK ͜͏͍͏໊લͷͭ͋ͬͨΑͳ…ʁ Ͱίʔυ͕ॻ͚·͢(υΩϡϝϯτಡ͏
Quick Documentation •υΩϡϝϯτ͕γϡοͱݟΕ·͢ •External Documentation͋ΔΑʂ •godocͷWebϖʔδ͕γϡοͱ։͘
Find in Path •ϓϩδΣΫτશମݕࡧͱ͔ •Τϥʔϝοηʔδ͔ΒൃੜՕॴௐͨΓ •Replace in Path Α͍͘·͢
࠷ޙʹ
We are hiring! •͞ΒͳΔใࣾWikiSlackͰʂ •ΞΫηε͢Δʹೖࣾ͢Δ͔͠ͳ͍…ʂ •ϝϧΧϦˠ careers.mercari.com/ •ϝϧϖΠˠ jp.merpay.com/careers/
None