Slide 1

Slide 1 text

ϝϧΧϦࣾһ100ਓʹ ฉ͍ͨGoLandͷ࢖͍ํ JetBrains Night Tokyo 2018 Θ͔Ί ·͞ͻΖ

Slide 2

Slide 2 text

Θ͔Ί ·͞ͻΖ @v vakame Masahiro Wakame Go GraphQL TypeScript

Slide 3

Slide 3 text

Q. ຊ౰ʹ100ਓʹฉ͍ͨʁ

Slide 4

Slide 4 text

Q. ຊ౰ʹ100ਓʹฉ͍ͨʁ

Slide 5

Slide 5 text

Q. ຊ౰ʹ100ਓʹฉ͍ͨʁ ड़΂ਓ਺ 372ਓ ʹ ฉ͖·ͨ͠ʂʂ

Slide 6

Slide 6 text

ࠓ೔ͷαϚϦ ΈΜͳʹฉ͍ͨ ूେ੒Λ࿩͠·͢ʂ

Slide 7

Slide 7 text

ࠓ೔ͷαϚϦ •GoLand ཱࣗɾࣗशͷͨΊͷ࢓૊Έ •IDEʹٻΊΔػೳ •GoLandͷศརͳػೳͨͪ

Slide 8

Slide 8 text

֤OSຖͷ࿩ •๻͸macOSϢʔβͰ͢ •ࠓ೔͸جຊmacOSϕʔε •Action໊͕Θ͔Ε͹OK •͋ͱͰઆ໌͠·͢

Slide 9

Slide 9 text

ཱࣗɾࣗशͷͨΊͷ࢓૊Έ

Slide 10

Slide 10 text

GoLand͸ଟػೳͰ͋Δ •ػೳ͕ແݶʹ͋Δ •஌Βͳ͍ػೳ͸࢖͏͜ͱ͕Ͱ͖ͳ͍ •Ͳ͏΍ͬͯڧ͘ͳΕ͹͍͍Μͩ… ·ͣ͸ษڧͷ࢓ํ͔Β

Slide 11

Slide 11 text

Productivity Guide •௚༁͢Δͱੜ࢈ੑΨΠυ •Help > Productivity Guide •ීஈ࢖ͬͯͳ͍ػೳʹ஫໨ •ਓͷΛݟΔͱ݁ߏָ͍͠

Slide 12

Slide 12 text

Find Action •ActionΛ୳͢ •Help > Find Action •ࠓ೔͜Ε͚ͩ͸֮͑ͯؼͬͯʂ •͍͍ͩͨͷ΋ͷ͕Action Cmd+Shift+A

Slide 13

Slide 13 text

Find Action ͍͍ͩͨ Կ΋͔΋ Actionͩʂ

Slide 14

Slide 14 text

Find Action ຊࢿྉ΋ Action໊Λ ໌ه͠·͢

Slide 15

Slide 15 text

Search Everywhere •ͳΜͰ΋ݕࡧ • ͜Ε •ϑΝΠϧ, ܕ, Action ͳʹ΋͔΋͔Βݕࡧ Shift Shift ࠔͬͨΒShift࿈ଧϚϯ

Slide 16

Slide 16 text

Preferencesͷݕࡧ •ݕࡧܥػೳ΄Μͱॆ࣮͍ͯ͠Δ

Slide 17

Slide 17 text

ϖΞ ϓϩάϥϛϯά •Ұ൪ϕʔγοΫͳ΍ͭ •ਫ਼ਆతෑډ͸ͪΐͬͱߴ͍ •Ҋ֎ΈΜͳ࢖͍ํ͕όϥ͚Δ •γϣϧμʔαʔϑΟϯ͢Δͷָ͕ ڐՄ͸औΖ͏ʂ

Slide 18

Slide 18 text

Tip of the Day •ศར৘ใΛϥϯμϜʹදࣔ •Help > Tip of the Day •Ұؾʹෳ਺ݟΔͱָ͍͠ •গͣͭ͠ڧ͘ͳΖ͏ʂ

Slide 19

Slide 19 text

Presentation Assistant (Plugin) • github.com/chashnikov/IntelliJ-presentation- assistant • γϣʔτΧοτΩʔදࣔϓϥάΠϯ Unofficial PluginͰ͢

Slide 20

Slide 20 text

Key Promotor X (Plugin) • github.com/halirutan/IntelliJ-Key-Promoter-X • γϣʔτΧοτΩʔڭҭϓϥάΠϯ • Ϛ΢εͱ͔࢖͏ͱࢦಋ͞ΕΔ Unofficial PluginͰ͢

Slide 21

Slide 21 text

•Preference > Keymap > γϣʔτΧοτٯҾ͖ ਓ͔ΒڭΘΔ࣌ศར ͻͬͦΓͯ͠·͢

Slide 22

Slide 22 text

খ͍͞Ϙλϯશ෦ԡ͢ •݁ߏݟಀ͚͢Ͳਵॴʹ͋Δ ͱΓ͋͑ͣԡ͠·͠ΐ͏

Slide 23

Slide 23 text

ෆຬΛݟಀ͞ͳ͍ •ෆศʹ׳Εͳ͍΄͏͕Α͍ •ղফͯ͠৐Γӽ͍͖͍͑ͯͨ •ݴ͏͸қ͘ߦ͏͸೉͠… ୳ͤ͹(͍͍ͩͨ)͋Δʂ

Slide 24

Slide 24 text

ϒϩάͱ͔ݟΔ •blog.jetbrains.com/go/ •blog.jetbrains.com/jp/category/goland •samuraism.com/jetbrains/training ࡢ೔ϓογϡ͞ΕͨͷͰ…(ૉ௚

Slide 25

Slide 25 text

IDEʹٻΊΔػೳ

Slide 26

Slide 26 text

Goͷύοέʔδ؅ཧ •܈༤ׂڌ •Dep •Go Modules (Official) •↑Experimental GoLand͸Go Modulesαϙʔτࡁ

Slide 27

Slide 27 text

Go Modules •GO111MODULE=on •࠷ߴͷαϙʔτʂ ͜Εͦ͜ސ٬͕ٻΊ͍ͯͨ΋ͷ…ʂ

Slide 28

Slide 28 text

Go Module •GoLandͷGo Moduleαϙʔτ࠷ߴ(࠶ܝ •$GOPATH ͷมͳpackageरΘͳ͍ •↑ͪΐ͍ͪΐ͍ਏ͔ͬͨ… •IDEͱͯ͠ͷ׬੒౓͕͕͋ͬͨ(ؾʹͳΔ

Slide 29

Slide 29 text

σόοΨ •ී௨ʹ࢖͑Δ (Delve͕backend •Break point / Inspector •Unit TestपΓͷαϙʔτ΋ॆ࣮ •Ͱ͖ͳ͍… •ෳࡶͳEvaluate Expression / Set Value

Slide 30

Slide 30 text

AppEngineαϙʔτ •Google Cloud PlatformͷAppEngine •࢖ͬͯ·͔͢ʁ࢖ͬͯ·͢Ͷʁ •go111 runtimeͰΊͬͪΌָʹͳͬͨ •AppEngineଆ͕าΈد͖ͬͯͨܗ •2018.3 Ͱچruntimeͷαϙʔτ΋վળ ΊͬͪΌ࿩͍͚ͨ͠Ͳधཁബͦ͏ͳͷͰ࠙਌ձͰ…

Slide 31

Slide 31 text

ίʔυิ׬ •ී௨ͷαδΣετ •ςετੜ੒ •Struct ͷFieldຒΊ •etc…

Slide 32

Slide 32 text

πʔϧྨ…ʁ •gofmt, goimportsͳͲ •αϙʔτ༗Γ •νʔϜͰ౷Ұ͢ΔͨΊಛఆͷΤσΟλʹ ґଘͨ͘͠ͳ͍ؾ࣋ͪ΋… •gometalinter → File Watcher

Slide 33

Slide 33 text

ଞΤσΟλϢʔβʹฉ͍ͨ

Slide 34

Slide 34 text

Vim •IdeaVim Plugin •ΠέΔ೿ •ͭΒ͍೿ •Undoͷڍಈ͕ਏ͍… plugins.jetbrains.com/plugin/164-ideavim

Slide 35

Slide 35 text

ίʔυิ׬ͱ͔͍Δͷ೿ ݾΛ஁͑Ε͹ Α͘ͳ͍Ͱ͔͢ʁ ※ݸਓͷײ૝Ͱ͢(ͬͯݴ͑ͬͯ

Slide 36

Slide 36 text

GoLandͷศརͳػೳͨͪ ৭ʑग़͖ͯ·ͨ͠

Slide 37

Slide 37 text

Show Intention Action •ͦͷ࣌ศརͦ͏ͳΞΫγϣϯΛදࣔ •Կ͔͋Γͦ͏ͱࢥͬͨΒͱΓ͋͑ͣԡ͢ •Quick Fix ʹ͍ۙ •Warning΍Error͕ͳͯ͘΋ԡͤΔ Option + Enter

Slide 38

Slide 38 text

Test (Cmd+Shift+T) •Code ⇔ Test ͷҠಈ •Testͷੜ੒ •Table Driven TestͳςϯϓϨΛੜ੒ʂ •ςετؔ਺໊΋ΘΓͱྑ͍ Table Driven Testͯ͠·͔͢ʁ

Slide 39

Slide 39 text

Fill struct recursively •஋ͱͯ͠struct࡞Δ࣌ʹศར •zero஋ͰҰ୴શ෦ຒΊͯ͘ΕΔ Testॻ࣌͘ʹΑ͘࢖͍·͢

Slide 40

Slide 40 text

Mark Directory as •Excludes ͱ͔͢Δ •ݕࡧͱ͔ʹҾ͔͔ͬΒͳ͘ͳΔ ͿͬͪΌ͚͋Μ·࢖Θͳ͍

Slide 41

Slide 41 text

Declaration •ఆٛʹඈͿ΍ͭ •͜ͷϝιουͷ࣮૷Ͳ͏ͳͬͯΔͷʙ •Jump to Source ͱҧ͍͕Θ͔Βͳ͍… •GoҎ֎ͷݴޠͩͱҧ͏ͷ͔ͳ ͍ͭτϥοΫύουͰૢ࡞͢Δ΍ͭ

Slide 42

Slide 42 text

Back •1ݸલͷ৔ॴʹ໭Δ΍ͭ •Declarationͱ૊Έ߹Θͤͯසൟʹ࢖͏ •๻͸࠷ۙ·Ͱ஌Βͳͯ͘ෆศͩͱࢥͬͯ ·ͨ͠…

Slide 43

Slide 43 text

Next Project Window •ผ૭Ͱ։͍͍ͯΔProjectʹҠಈ͢Δ΍ͭ •ɹ͔ͨ͠ʹ •͔ɺ͔͍͍ͬ͜…

Slide 44

Slide 44 text

Edit Custom VM Options •GoLandͷىಈΦϓγϣϯ͍͡ΕΔ •-XmxΛ૿΍͢ʂͱ͍͏ਓ͕ଟ͔ͬͨ •JVMͷ࠷େώʔϓαΠζ •๻͸ -Xmx1920m ʹ͠·ͨ͠

Slide 45

Slide 45 text

Recent Files •Recent Edited Files ΋͋ΔΑʂ

Slide 46

Slide 46 text

•͜ͷInterfaceΛ࣮૷ͯ͠Δ΍ͭͲ͍ͭʁ •Methodͷ࣮૷ͷҰཡͱ͔΋ग़ͤΔ Implementations ݁ߏසൟʹ࢖͏…ʂΊͬͪΌྑ͍

Slide 47

Slide 47 text

Call Hierarchy •ؔ਺ͳͲͷݺͼग़͠πϦʔΛදࣔ •Find Usage ΑΓศར…ʂ •࠶ؼతʹḷΕΔ Find Usageͣͬͱ࢖ͬͯͨ…

Slide 48

Slide 48 text

Scratch File •GoͰ΋ී௨ʹ࢖͑Δ •ಉ྅ͱίʔυͷ૬ஊ͍ͨ͠… •Playground → ิ׬ͳͯ͘ࢮ͵ •Scratch FileͰॻ͍ͯShare͢Δ ৽نϫʔΫεϖʔε४උ͸ΊΜͲ͍

Slide 49

Slide 49 text

JetBrains Toolbox •www.jetbrains.com/toolbox/ •GoLand ͦͷଞIDEೖΕΔͷΒ͘Β͘ •όʔδϣϯݻఆͱ͔΋Ͱ͖Δ •Ξϓσ΋ϥΫϥΫʂ Actionͱ͔Ͱ͸ͳ͍͚Ͳ…

Slide 50

Slide 50 text

Implement Interface •͋Δstructͱ͔ʹඞཁͳϝιουΛ ͼΌͬʂͱੜ΍ͤΔ ๻͸ implement missing method ೿Ͱ͢

Slide 51

Slide 51 text

Implements missing method •଍Γͳ͍ϝιουΛͼΌͬʂͱੜ΍ͤΔ ίϯύΠϥʹinterface࣮૷νΣοΫͤ͞ΒΕΔ

Slide 52

Slide 52 text

File… :Line:Column •File Ͱ :ߦ൪߸:ྻ൪߸ Ͱ֘౰Ґஔʹඈ΂Δ σόοάָ͕ʂ

Slide 53

Slide 53 text

Next Highlighted Error •Warning, Error etc ʹδϟϯϓͰ͖Δ •ίϯύΠϧΤϥʔͷमਖ਼࣌ʹศར

Slide 54

Slide 54 text

Show tabs in one row •Preferences > Editor > General > Editor Tabs •Show tabs in one row Λ disable ʹ͢Δ •λϒද͕ࣔ1ߦʹͳΔͷෆศͩΑͶ… •શ෦ݟ͑ͯΔͱ޾ͤ

Slide 55

Slide 55 text

Camel Case matching •ೖྗิ׬Ͱ໊લΛશ෦ଧͭඞཁ͸ͳ͍ •େจࣈ෦෼͚ͩͱ͔Ұ෦෼͚ͩͰOK ͜͏͍͏໊લͷ΍ͭ͋ͬͨΑͳ…ʁ Ͱίʔυ͕ॻ͚·͢(υΩϡϝϯτ͸ಡ΋͏

Slide 56

Slide 56 text

Quick Documentation •υΩϡϝϯτ͕γϡοͱݟΕ·͢ •External Documentation΋͋ΔΑʂ •godocͷWebϖʔδ͕γϡοͱ։͘

Slide 57

Slide 57 text

Find in Path •ϓϩδΣΫτશମݕࡧͱ͔ •Τϥʔϝοηʔδ͔ΒൃੜՕॴௐ΂ͨΓ •Replace in Path ΋Α͘࢖͍·͢

Slide 58

Slide 58 text

࠷ޙʹ

Slide 59

Slide 59 text

We are hiring! •͞ΒͳΔ৘ใ͸ࣾ಺Wiki΍SlackͰʂ •ΞΫηε͢Δʹ͸ೖࣾ͢Δ͔͠ͳ͍…ʂ •ϝϧΧϦˠ careers.mercari.com/ •ϝϧϖΠˠ jp.merpay.com/careers/

Slide 60

Slide 60 text

No content