GoͰςϯϓϨʔτ͔ΒϑΝΠϧΛࣗಈੜ͢ΔCLIΛ࡞ΔʲZOZO x ϕʔεϚΩφ x όΠηϧʳGoษڧձ #1ʲϋΠϒϦου։࠵ʳ2023.05.24
View Slide
ࣗݾհ໊લɿૣًܦྺɿBuySell Technologiesʹ2021ʹ৽ଔೖࣾॴଐɿ։ൃ2෦ ग़ཧSaaSνʔϜ৬ɿϑϧελοΫΤϯδχΞɺϓϩδΣΫτϦʔμʔझຯɿ։ൃɺϚϯΨɺΞχϝɺϕʔεɺόεέTwitterɿ@KazukiHayase
ΞδΣϯμCLIΛ࡞ͨ͠എܠ01࡞ͨ͠CLIͷհ02·ͱΊ03
01CLIΛ࡞ͨ͠എܠ
CLIΛ࡞ͨ͠എܠ● ݩʑੜ࢈ੑΛ্ͤ͞ΔCLIΛ࡞ΔจԽ͕νʔϜʹ͋ͬͨ● ϓϩμΫτͷಛੑ্ɺಉ͡Α͏ͳ࣮͕ෳՕॴଘࡏ͢Δ○ ※େಉ͕ͩ͡ɺڞ௨Խ͍͠
CLIΛ࡞ͨ͠എܠग़ཧSaaSෳͷECαΠτಉ࣌ग़Λߦ͏ECαΠτ1ECαΠτ2ECαΠτ3
CLIΛ࡞ͨ͠എܠECαΠτ͝ͱʹAPI͕ҟͳΔECαΠτ1ECαΠτ2ECαΠτ3jsonxml
CLIΛ࡞ͨ͠എܠ● ECαΠτ͝ͱʹAPI͕ҟͳΔͷͰڞ௨ԽͰ͖ͳ͍● มߋ͞ΕΔഎܠ͕ҟͳΔͷͰɺաͳநԽආ͚͍ͨ● ͨͩ͠ɺॲཧͷେͲͷECαΠτେମಉ͡ςϯϓϨʔτ͔ΒϑΝΠϧΛੜ࣮ͯ͠ΛޮԽ͍ͨ͠ʂʂ
02࡞ͨ͠CLIͷհ
࣮ߦίϚϯυରܗࣜͰೖྗ
ςϯϓϨʔτϑΝΠϧͱੜϑΝΠϧೖྗͨ͠ύοέʔδ໊ͱ໊ؔͰ ஔ͞ΕΔςϯϓϨʔτϑΝΠϧ ੜϑΝΠϧ
࣮
༻ͨ͠ϥΠϒϥϦ● cobra○ CLIΛ؆୯ʹ࡞Ͱ͖ΔϥΠϒϥϦ○ KubernetesGitHub CLIͰ༻͞Ε͍ͯΔ● text/template○ ςϯϓϨʔτΛݩʹจࣈྻΛੜ͢Δඪ४ϥΠϒϥϦ○ ؔมɺforifͳͲͷ੍ޚߏจςϯϓϨʔτʹຒΊࠐΊΔ
େͷ࡞cobra-cliΛར༻ͯ͠ ϘΠϥʔςϯϓϨʔτΛ࡞cmdύοέʔδʹCLIͷॲཧΛ࣮͍ͯ͘͠
ίϚϯυͷՃcobra.CommandߏମΛఆٛrootCmdʹՃ͢Δ͜ͱͰ CLI͔Β࣮ߦͰ͖ΔΑ͏ʹͳΔ
ඪ४ೖྗͷऔಘfmt.ScanlnͰඪ४ೖྗΛऔಘඪ४ೖྗΛݩʹςϯϓϨʔτʹ͢σʔλΛmapͰఆٛ
ೖग़ྗϑΝΠϧͷఆٛςϯϓϨʔτϑΝΠϧͱग़ྗઌͷϑΝΠϧΛmapͰఆ֤ٛೖग़ྗʹରͯ͠ϧʔϓͰॲཧ
ϑΝΠϧͷಡΈࠐΈͱੜςϯϓϨʔτΛಡΈࠐΈɺ ग़ྗઌͷϑΝΠϧΛੜ
ςϯϓϨʔτͷஔಡΈࠐΜͩςϯϓϨʔτʹରͯ͠ඪ४ೖྗͰड͚औͬͨσʔλΛ ༻ͯ͠ஔॲཧΛ࣮ߦ
ςϯϓϨʔτϑΝΠϧͷྫ
03·ͱΊ
·ͱΊ● cobraͱtext/templateͰ؆୯ʹࣗಈੜCLIΛ࡞Εͨ○ ੍ޚߏจར༻Ͱ͖ΔͷͰɺςϯϓϨʔτॊೈʹఆٛՄೳ● CLIΛ࡞ͨ͜͠ͱͰ࣮ΛޮԽ͢Δ͜ͱ͕Ͱ͖ͨ● σΟϨΫτϦߏͳͲͷϧʔϧͷڧ੍ʹ׆༻Ͱ͖Δ○ ϧʔϧʹैͬͨςϯϓϨʔτΛఆٛ͢Δ͜ͱͰɺ ࣗવͱϧʔϧʹै࣮ͬͨʹͳΔΑ͏ʹΈԽͰ͖Δ
THANK YOU