Slide 1

Slide 1 text

ُؕؠٞئ٭لتכ .POP3FQP $"54 $ZCFS"HFOU *OD )JSPBLJ&HBTIJSB娡꯽㱳◽

Slide 2

Slide 2 text

娡꯽㱳◽)JSPBLJ&HBTIJSB 䇗僖劔䌋⚡炘ئؕف٭ؙ٭ةؘ٤ع⪌炘 $"54 8JO5JDLFUفشؠؙ٤غطشؠٛ٭غ IJSP @IJSP

Slide 3

Slide 3 text

8JO5JDLFU ˝ ؛٤ٚؕ٤琂魸䤷烨ئؕع ˝ 侇ꝴ䤷烨⯈؅頇⪌⺎耆 ˝ ⪒㎁⚡㕙סٚؕه何⥼؅鿥⟓ ˝ "CFNB57ס琂魸زٔ٤ؾٜכ鵽Ⳃ

Slide 4

Slide 4 text

ُؕؠٞئ٭لت َٝةعٛלֹ׊יױ׌־

Slide 5

Slide 5 text

.VMUJQMF3FQPTJUPSJFT WT .POP3FQPTJUPSZ

Slide 6

Slide 6 text

.POP3FQPTJUPSZ ˝ (PPHMF 'BDFCPPL 5XJUUFS׵⺱喋 ˝ ❣㰆畘杼؅ب٤وٜמך׀׾ ˝ ┉鞉䓪סֵ׾㚺催 ˝ ؤ٭غס⪦僗כ⫋⮵榫ֿ㳊佄 ˝ 㛻׀םٛنؒؠذٛ٤ءֿ㳊佄 חסَٝةعٛךخ٭تؤ٭غ؅畘杼

Slide 7

Slide 7 text

.POP3FQPTJUPSZ ˝ .VMUJQMF3FQPTJUPSJFTס㕙⺬
 邾丗סَٝةعٛמ㚺催؅ⱶֻיյ㚺催؅⹦׽鱮׳סֿꪫ⠠ ❣㰆꞊➟؅ب٤وٜמך׀׾

Slide 8

Slide 8 text

.POP3FQPTJUPSZ ˝ (PPHMF 'BDFCPPL 5XJUUFS׵⺱喋 ˝ ❣㰆畘杼؅ب٤وٜמך׀׾ ˝ ┉鞉䓪סֵ׾㚺催 ˝ ؤ٭غס⪦僗כ⫋⮵榫ֿ㳊佄 ˝ 㛻׀םٛنؒؠذٛ٤ءֿ㳊佄 חסَٝةعٛךخ٭تؤ٭غ؅畘杼

Slide 9

Slide 9 text

.POP3FQPTJUPSZ ˝ 邾丗סُؕؠٞئ٭لتמ㚺催؅ⱶֻ׾כ׀׵ؓعِشؠםؤِشعך⺎耆 ˝ ف٭ة٘٤畘杼׵㳊佄 ┉鞉䓪סֵ׾㚺催

Slide 10

Slide 10 text

.POP3FQPTJUPSZ ˝ (PPHMF 'BDFCPPL 5XJUUFS׵⺱喋 ˝ ❣㰆畘杼؅ب٤وٜמך׀׾ ˝ ┉鞉䓪סֵ׾㚺催 ˝ ؤ٭غס⪦僗כ⫋⮵榫ֿ㳊佄 ˝ 㛻׀םٛنؒؠذٛ٤ءֿ㳊佄 חסَٝةعٛךخ٭تؤ٭غ؅畘杼

Slide 11

Slide 11 text

لٜغכطتع؅Ⲗ曍荁ׂ׊גַ

Slide 12

Slide 12 text

#B[FM ˝ (P 1SPUPDPM#VFS $ +"7" "OESPJE J04 םל喋չם銧鏤מ㵚䑴 ˝ 䑒釐ם甙䢥דׄ؅لٜغ٬طتع׌׾סך鵭ַ ˝ تآ٭ٚهٜ ˝ 䦡䍖⺎耆 لٜغ٬طتعبتطّ

Slide 13

Slide 13 text

(PMBOHXJUI#B[FM ˝ #B[FMסؕ٤تع٭ٜ CSFXJOTUBMMCB[FM
 ˝ 803,41"$&نٜؒؕס⛼䡗 㛙鼧ס❣㰆꞊➟םל؅鋗鳭׌׾
 ˝ #6*-%نٜؒؕ؅⛼䡗 لٜغ亠嫎؅炐׊ג׵ס (B[FMMF؅⮵榫׊י舅Ⳃ榟䡗ך׀׾

Slide 14

Slide 14 text

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "io_bazel_rules_go", urls = [ "https://storage.googleapis.com/bazel-mirror/github.com/bazelbuild/rules_go/releases/download/0.19.1/rules_go-0.19.1.tar.gz", "https://github.com/bazelbuild/rules_go/releases/download/0.19.1/rules_go-0.19.1.tar.gz", ], sha256 = "8df59f11fb697743cbb3f26cfb8750395f30471e9eabde0d174c3aebc7a1cd39", ) load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies", "go_register_toolchains") go_rules_dependencies() go_register_toolchains() http_archive( name = "bazel_gazelle", urls = [ "https://storage.googleapis.com/bazel-mirror/github.com/bazelbuild/bazel-gazelle/releases/download/0.18.1/bazel-gazelle-0.18.1.tar.gz", "https://github.com/bazelbuild/bazel-gazelle/releases/download/0.18.1/bazel-gazelle-0.18.1.tar.gz", ], sha256 = "be9296bfd64882e3c08e3283c58fcb461fa6dd3c171764fcc4cf322f60615a9b", ) load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") gazelle_dependencies() 803,41"$& SVMFT@HP (B[FMMF

Slide 15

Slide 15 text

load("@bazel_gazelle//:def.bzl", "gazelle") # gazelle:prefix github.com/hiro511/golang-bazel gazelle(name = “gazelle”) #6*-%CB[FM

Slide 16

Slide 16 text

$ tree . !"" BUILD.bazel !"" WORKSPACE #"" cmd #"" main.go $ bazel run //:gazelle (B[FMMF

Slide 17

Slide 17 text

$ tree . !"" BUILD.bazel !"" WORKSPACE #"" cmd !"" BUILD.bazel #"" main.go $ cat cmd/BUILD.bazel load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", srcs = ["main.go"], importpath = "github.com/hiro511/golang-bazel/cmd", visibility = ["//visibility:public"], ) (B[FMMF ̚舅Ⳃ榟䡗׈׿׾

Slide 18

Slide 18 text

$ cat cmd/BUILD.bazel load("@io_bazel_rules_go//go:def.bzl", “go_library”, “go_binary”) go_library( name = "go_default_library", srcs = ["main.go"], importpath = "github.com/hiro511/golang-bazel/cmd", visibility = ["//visibility:public"], ) go_binary( name = “hello", embed = [":go_default_library"], visibility = ["//visibility:public"], ) $ bazel run //cmd:hello INFO: Analyzed target //cmd:hello (1 packages loaded, 3 targets configured). INFO: Found 1 target... Target //cmd:hello up-to-date: bazel-bin/cmd/darwin_amd64_stripped/hello INFO: Elapsed time: 0.533s, Critical Path: 0.37s INFO: 2 processes: 2 darwin-sandbox. INFO: Build completed successfully, 5 total actions INFO: Build completed successfully, 5 total actions hello world 3VO فؕػٜٛ٭ٜ

Slide 19

Slide 19 text

㛙鼧❣㰆꞊➟ ˝ HPNPE (PQLHMPDLنٜؒؕ־׼❣㰆قشآ٭ة؅⹦׽鱮ײ
 803,41"$&نٜؒؕמ傴׀鱮׳
 
 HB[FMMFVQEBUFSFQPTGSPN@MFHPNPE
 HB[FMMFVQEBUFSFQPTGSPN@MF(PQLHMPDL (P.PEVMFTכEFQמ㵚䑴

Slide 20

Slide 20 text

1SPUPDPM#VFS ˝ HPMBOHQSPUPCVGכHPHPQSPUPמ㵚䑴 ˝ #6*-%CB[FMמٜ٭ٜ؅鴑鋗׌׾דׄ (P銧鏤סؤ٭غ榟䡗⺎耆

Slide 21

Slide 21 text

ٛٓ٭ع؞ٔشبٖ ˝ ꝧ氦縖׷$*םלךلٜغؓؗعوشع؅⪦僗ך׀׾ ˝ لٜغ؅냕鵭⴫ך׀׾
 ˝ ؞ٔشبٖفشؠؙ٤غ OHJOY 8FC%"7NPEVMF 
 #B[FM3FNPUF$BDIF
 (PPHMF$MPVE4UPSBHF لٜغؓؗعوشع؅ٛٓ٭عמ؞ٔشبٖ⺎耆

Slide 22

Slide 22 text

ױכ״ ˝ .POP3FQPTJUPSZ ❣㰆畘杼ֿب٤وٜյ┉鞉䓪ֵֿ׾յؤ٭غס⪦僗٬⫋⮵榫ֿ㳊佄 ˝ #B[FM لٜغ٬طتعص٭ٜյ❣㰆꞊➟؅杼鉮׊י㲔产׌׾סך鵭ַ
 (B[FMMF؅⮵榫׊י(PMBOHסخ٭تؤ٭غסلٜغٜ٭ٜ؅舅Ⳃ榟䡗⺎耆 (P.PEVMFT׷EFQס錃㲊؅אסױױ✳ֻ׾ 1SPUPDPM#VFSס(PMBOHؤ٤قٜؕ⺎耆 ٛٓ٭ع؞ٔشبٖךلٜغؓؗعوشع؅⪦僗⺎耆 


Slide 23

Slide 23 text

ֵ׽ֿכׇֹ׉ַױ׊ג