Slide 1

Slide 1 text

vgo HPMBOHUPLZP

Slide 2

Slide 2 text

λϯΫླ໦ !UBOLTV[VLJ גࣜձࣾΤʔϐʔίϛϡχέʔγϣϯζ ("&(Pɾ'JSFCBTFɾHPQBDLFU 3FBDU3FEVY

Slide 3

Slide 3 text

λϯΫླ໦ !UBOLTV[VLJ גࣜձࣾΤʔϐʔίϛϡχέʔγϣϯζ (PͰωοτϫʔΫϓϩάϥϛϯά ("&(PͷαʔϏε։ൃ ࠷ۙ࡞ͬͨ΋ͷ ը૾ΛΞοϓϩʔυ͢Δͱ $MPVE7JTJPO"1*ͰإΛݕग़ͯ͠ (PQIFSͬΆͯ͘͘͠ΕΔαʔϏε IUUQTHPQIFSJ[FDPN

Slide 4

Slide 4 text

λϯΫླ໦ !UBOLTV[VLJ גࣜձࣾΤʔϐʔίϛϡχέʔγϣϯζ (PͰωοτϫʔΫϓϩάϥϛϯά ("&(PͷαʔϏε։ൃ ࠷ۙ࡞ͬͨ΋ͷ ը૾ΛΞοϓϩʔυ͢Δͱ $MPVE7JTJPO"1*ͰإΛݕग़ͯ͠ (PQIFSͬΆͯ͘͘͠ΕΔαʔϏε IUUQTHPQIFSJ[FDPN

Slide 5

Slide 5 text

ʁ vgo

Slide 6

Slide 6 text

HPίϚϯυʹ૊Έࠐ·ΕΔ༧ఆͷύοέʔδ؅ཧػೳ ैདྷEFQ΍HMJEFଞͰߦ͍ͬͯͨ͜ͱΛHPͰߦ͏

Slide 7

Slide 7 text

ϩʔυϚοϓ Α͏΍͘ύοέʔδ؅ཧ·ΘΓ͕མͪண͖ͦ͏ ݱࡏ (P (P ϓϩτλΠϓͱͯ͠WHPίϚϯυ͕ެ։ ςΫχΧϧϓϨϏϡʔ ਖ਼ࣜಋೖ

Slide 8

Slide 8 text

WHPʹΑͬͯมΘΔ͜ͱ #1ɹґଘؔ܎ͷղܾ͸Ϗϧυ࣌ʹߦ͏ #2ɹWFOEPSσΟϨΫτϦ͕ෆཁʹͳΔ #3ɹഁյతͳมߋΛՃ͑Δࡍ͸JNQPSUQBUIΛม͑Δ #4ɹՄೳͳݶΓݹ͍όʔδϣϯ͕બ୒͞ΕΔ

Slide 9

Slide 9 text

#1ɹґଘؔ܎ͷղܾ͸Ϗϧυ࣌ʹߦ͏

Slide 10

Slide 10 text

Ϗϧυର৅ͷίʔυ package main // import "github.com/you/hello" import ( "fmt" "rsc.io/quote" ) func main() { fmt.Println(quote.Hello()) }

Slide 11

Slide 11 text

WHPCVJME $ vgo build vgo: resolving import "rsc.io/quote" vgo: finding rsc.io/quote (latest) vgo: adding rsc.io/quote v1.5.2 vgo: finding rsc.io/quote v1.5.2 vgo: finding rsc.io/sampler v1.3.0 vgo: finding golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c vgo: downloading rsc.io/quote v1.5.2 vgo: downloading rsc.io/sampler v1.3.0 vgo: downloading golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c WHPCVJME࣌ͷϩά

Slide 12

Slide 12 text

WHPCVJME $ vgo build vgo: resolving import "rsc.io/quote" vgo: finding rsc.io/quote (latest) vgo: adding rsc.io/quote v1.5.2 vgo: finding rsc.io/quote v1.5.2 vgo: finding rsc.io/sampler v1.3.0 vgo: finding golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c vgo: downloading rsc.io/quote v1.5.2 vgo: downloading rsc.io/sampler v1.3.0 vgo: downloading golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c HPHFUແ͠Ͱ͍͖ͳΓWHPCVJME͢Δ

Slide 13

Slide 13 text

WHPCVJME $ vgo build vgo: resolving import "rsc.io/quote" vgo: finding rsc.io/quote (latest) vgo: adding rsc.io/quote v1.5.2 vgo: finding rsc.io/quote v1.5.2 vgo: finding rsc.io/sampler v1.3.0 vgo: finding golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c vgo: downloading rsc.io/quote v1.5.2 vgo: downloading rsc.io/sampler v1.3.0 vgo: downloading golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c ະ஌ͷJNQPSUzRVPUFzΛݕग़͠ɺ࠷৽൛Λμ΢ϯϩʔυ͢Δ

Slide 14

Slide 14 text

WHPCVJME $ vgo build vgo: resolving import "rsc.io/quote" vgo: finding rsc.io/quote (latest) vgo: adding rsc.io/quote v1.5.2 vgo: finding rsc.io/quote v1.5.2 vgo: finding rsc.io/sampler v1.3.0 vgo: finding golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c vgo: downloading rsc.io/quote v1.5.2 vgo: downloading rsc.io/sampler v1.3.0 vgo: downloading golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c ͞ΒʹlRVPUFz͕ґଘ͢ΔύοέʔδΛμ΢ϯϩʔυ͢Δ

Slide 15

Slide 15 text

HPNPE module "github.com/you/hello" require ( "rsc.io/quote" v1.5.2 ) ґଘؔ܎͸HPNPEϑΝΠϧͰ؅ཧ͞ΕΔ

Slide 16

Slide 16 text

HPNPE module "github.com/you/hello" require ( "rsc.io/quote" v1.5.2 ) ࣗ෼ͷJNQPSUQBUIͷએݴ

Slide 17

Slide 17 text

HPNPE module "github.com/you/hello" require ( "rsc.io/quote" v1.5.2 ) ௚઀ґଘͷύοέʔδΛηϚϯςΟοΫόʔδϣχϯάͰ؅ཧ

Slide 18

Slide 18 text

#2ɹWFOEPSσΟϨΫτϦ͕ෆཁʹͳΔ

Slide 19

Slide 19 text

WFOEPSσΟϨΫτϦ͕ෆཁʹͳΔ ✱ WHP͸WFOEPSσ ΟϨΫτϦΛ࡞੒͠ͳ͍ ✱ ͦͷͨΊɺWFOEPSJOHͷͨΊʹ(01"5)ͷதͰ࡞ۀ͢Δඞཁ͕ͳ͍

Slide 20

Slide 20 text

WFOEPSσΟϨΫτϦ͕ෆཁʹͳΔ $GOPATH/src/v/ !"" rsc.io #"" [email protected] #"" [email protected] !"" [email protected] WHPCVJMEͰऔಘͨ͠ύοέʔδ͸(01"5)TSDWʹอଘ͞ΕΔ

Slide 21

Slide 21 text

WFOEPSσΟϨΫτϦ͕ෆཁʹͳΔ $GOPATH/src/v/ !"" rsc.io #"" [email protected] #"" [email protected] !"" [email protected] ಉ໊ͷύοέʔδ͸όʔδϣϯผʹอଘ͞ΕɺHPNPE͔Βࢀর͢Δ

Slide 22

Slide 22 text

#3ɹഁյతͳมߋΛՃ͑Δࡍ͸JNQPSUQBUIΛม͑Δ
 *NQPSU$PNQBUJCJMJUZ3VMF

Slide 23

Slide 23 text

*NQPSU$PNQBUJCJMJUZ3VMF ✱ WHPͰѻ͏ύοέʔδ͸ɺޙํޓ׵Λ࣋ͭ͜ͱ͕ٛ຿Խ͞ΕΔ ✱ Ͳ͏ͯ͠΋ഁյతͳมߋ͕ඞཁͳ৔߹͸ɺ
 JNQPSUQBUIΛม͑Δ͜ͱͰผύοέʔδѻ͍ʹ͢Δ

Slide 24

Slide 24 text

*NQPSU$PNQBUJCJMJUZ3VMF HJUIVCDPNUBOLTV[VLJQLH HJUIVCDPNUBOLTV[VLJQLHW ผύοέʔδʹݟ͑ΔͷͰɺW͔ΒW΁ͷॱ࣍Ҡߦ͕ՄೳʹͳΔ $BTF ੜύε HPQLHJOUBOLTV[VLJQLHW HPQLHJOUBOLTV[VLJQLHW $BTF HPQLHJO࢖༻

Slide 25

Slide 25 text

#4ɹՄೳͳݶΓݹ͍όʔδϣϯ͕બ୒͞ΕΔ
 .JOJNBM7FSTJPO4FMFDUJPO

Slide 26

Slide 26 text

.JOJNBM7FSTJPO4FMFDUJPO EFQ͸ʮՄೳͳݶΓ࠷৽ͷόʔδϣϯʯΛબ୒͢Δ

Slide 27

Slide 27 text

.JOJNBM7FSTJPO4FMFDUJPO #͸%Λظ଴͠ɺ$͸%Λظ଴͢Δ " # $ % % %

Slide 28

Slide 28 text

.JOJNBM7FSTJPO4FMFDUJPO ʮՄೳͳݶΓ࠷৽ʯͰ͋Δ%͕બ୒͞ΕΔ " # $ % % %

Slide 29

Slide 29 text

.JOJNBM7FSTJPO4FMFDUJPO ʮՄೳͳݶΓ࠷৽ʯ͸ৗʹҠΓมΘΔˠϏϧυ࠶ݱੑʹ໰୊͕ग़ΔՄೳੑ " # $ % % % %

Slide 30

Slide 30 text

.JOJNBM7FSTJPO4FMFDUJPO WHP͸ʮՄೳͳݶΓݹ͍όʔδϣϯʯΛબ୒͢Δ

Slide 31

Slide 31 text

.JOJNBM7FSTJPO4FMFDUJPO #͸%Λظ଴͠ɺ$͸%Λظ଴͢Δ " # $ % % %

Slide 32

Slide 32 text

.JOJNBM7FSTJPO4FMFDUJPO ʮՄೳͳݶΓҰ൪ݹ͍όʔδϣϯʯͰ͋Δ%͕બ୒͞ΕΔ " # $ % % %

Slide 33

Slide 33 text

.JOJNBM7FSTJPO4FMFDUJPO ΑΓݹ͍όʔδϣϯ͸ϦϦʔε͞Εͳ͍ͷͰɺϏϧυ΋҆ఆ͢Δ " # $ % % % %

Slide 34

Slide 34 text

.JOJNBM7FSTJPO4FMFDUJPO ͨͩ͠ɺ৽όʔδϣϯͷॏཁͳมߋ͕ɺ"ʹࣗಈͰద༻͞Εͳ͍໰୊͕͋Δ " # $ % % % %

Slide 35

Slide 35 text

.JOJNBM7FSTJPO4FMFDUJPO ղܾํ๏$ͷ։ൃऀ͕HPNPEΛ%ʹ޲͚Δ " # $ % % % %

Slide 36

Slide 36 text

.JOJNBM7FSTJPO4FMFDUJPO ղܾํ๏ࣗ෼Ͱ$ΛGPSLͯ͠ɺHPNPEΛ%ʹ޲͚Δ " # $ % % % % $ GPSLFE

Slide 37

Slide 37 text

WHPʹΑͬͯมΘΔ͜ͱ #1ɹґଘؔ܎ͷղܾ͸Ϗϧυ࣌ʹߦ͏ #2ɹWFOEPSσΟϨΫτϦ͕ෆཁʹͳΔ #3ɹഁյతͳมߋΛՃ͑Δࡍ͸JNQPSUQBUIΛม͑Δ #4ɹՄೳͳݶΓݹ͍όʔδϣϯ͕બ୒͞ΕΔ

Slide 38

Slide 38 text

·ͱΊ ✱ WFOEPSσΟϨΫτϦഇࢭʹΑΓɺ(01"5)͔Βղ์͞ΕΔ ✱ *NQPSU$PNQBUJCJMJUZ3VMFʹΑΓɺόʔδϣϯͷॱ࣍Ҡߦ͕ՄೳʹͳΔ ✱ .JOJNBM7FSTJPO4FMFDUJPOʹΑΓɺϏϧυͷ҆ఆੑ͕ߴ·Δ

Slide 39

Slide 39 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠