Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CLI構築のススメ

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 CLI構築のススメ

Avatar for nyankotaro

nyankotaro

May 23, 2022
Tweet

More Decks by nyankotaro

Other Decks in Programming

Transcript

  1. $6* ίϚϯυͷ஌͕ࣝඞཁ %FMFUFܥίϚϯυΛෆ༻ҙʹ ࣮ߦ͢ΔՄೳੑ͕͋Δ ॲཧͷࣗಈԽ ը໘͕มΘΒͳ͍ (6*Ͱ͸Ͱ͖ͳ͍ૢ࡞͕ Ͱ͖Δ (6* ΞοϓσʔτͰը໘͕มΘΔ

    Ϧιʔε͕ଟ͍ͱಡΈࠐΈʹ࣌ ͕͔͔ؒΔ ௚ײతʹૢ࡞Ͱ͖Δ ը૾ಈըԽʹ࢖͑Δ 8 (6*ͱ$6* ϝϦοτ σϝϦοτ
  2. 32 $-*ߏஙͷεεϝ $-*ͷ࢝Ίํ IUUQTBXTDMJBNB[POBXTDPNWEPDVNFOUBUJPOBQJMBUFTUJOEFYIUNM ɾ ɾ ɾ ɾ ɾ ɾ

    IUUQTBXTDMJBNB[POBXTDPNWEPDVNFOUBUJPOBQJMBUFTUSFGFSFODFFDJOEFYIUNM
  3. 33 $-*ߏஙͷεεϝ $-*ͷ࢝Ίํ IUUQTBXTDMJBNB[POBXTDPNWEPDVNFOUBUJPOBQJMBUFTUJOEFYIUNM ɾ ɾ ɾ ɾ ɾ ɾ

    IUUQTBXTDMJBNB[POBXTDPNWEPDVNFOUBUJPOBQJMBUFTUSFGFSFODFFDJOEFYIUNM &$Ͱ࢖༻Ͱ͖Δ"1*ͷҰཡ͕ࡌ͍ͬͯΔ ࣌఺Ͱݸ ಈࢺ˓˓Ͱ"1*໊͕ܾ·ͬͯΔͷ͕ಛ௃ ͳʹ͔ͱࢀরܥͷEFTDSJCF˓˓ʹ͓ੈ࿩ʹͳΔ ࠓճ͸SVOJOTUBODFTΛݟͯΈΔ
  4. 41 $-*ߏஙͷεεϝ $-*εέϧτϯ HFOFSBUFDMJTLFMFUPO BXT FDSVOJOTUBODFTHFOFSBUFDMJTLFMFUPOJOQVUFDSVOJOTUKTPO \ #MPDL%FWJDF.BQQJOHT< \ %FWJDF/BNF

    7JSUVBM/BNF &CT\ %FMFUF0O5FSNJOBUJPOUSVF *PQT 4OBQTIPU*E 7PMVNF4J[F 7PMVNF5ZQFJP ,NT,FZ*E 5ISPVHIQVU 0VUQPTU"SO &ODSZQUFEUSVF ^ /P%FWJDF ^ > *NBHF*E *OTUBODF5ZQFNEOYMBSHF *QW"EESFTT$PVOU *QW"EESFTTFT< \ *QW"EESFTT ^ > ,FSOFM*E ,FZ/BNF .BY$PVOU .JO$PVOU .POJUPSJOH\ &OBCMFEUSVF ^ 1MBDFNFOU\ "WBJMBCJMJUZ;POF "GGJOJUZ (SPVQ/BNF 1BSUJUJPO/VNCFS )PTU*E 5FOBODZIPTU 4QSFBE%PNBJO )PTU3FTPVSDF(SPVQ"SO ^ 3BNEJTL*E 4FDVSJUZ(SPVQ*ET<  > 4FDVSJUZ(SPVQT<  > ^ Ұ෦লུͨ͠αϯϓϧ ίϚϯυ࣮ߦʹඞཁͳύϥϝʔλʔΛ͢΂ͯग़ྗ͢ΔΦϓγϣϯ DMJJOQVUKTPO BXT FDSVOJOTUBODFTDMJJOQVUKTPO GJMFFDSVOJOTUKTPO ύϥϝʔλʔϑΝΠϧΛಡΈࠐΈ"84$-*Λ࣮ߦ͢ΔΦϓγϣϯ "84$-*εέϧτϯͱೖྗϑΝΠϧIUUQTEPDTBXTBNB[PODPNKB@KQDMJMBUFTUVTFSHVJEFDMJVTBHFTLFMFUPOIUNM
  5. 42 $-*ߏஙͷεεϝ $-*ΫΤϦ RVFSZ BXT FDEFTDSJCFWPMVNFT "84$-*ͷग़ྗΛՃ޻͢ΔΦϓγϣϯ ϘϦϡʔϜ͕Ξλον͞ΕͯΔ*OTUBODF*EΛௐ΂Δ৔߹ BXT FDEFTDSJCFWPMVNFT=

    RVFSZ ΫϥΠΞϯτଆͷϑΟϧλϦϯάIUUQTEPDTBXTBNB[PODPNKB@KQDMJMBUFTUVTFSHVJEFDMJVTBHFGJMUFSIUNMDMJVTBHFGJMUFSDMJFOUTJEF \ 7PMVNFT< \ "UUBDINFOUT< \ "UUBDI5JNF5 %FWJDF%FWJDF *OTUBODF*E*OTUBODF*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E %FMFUF0O5FSNJOBUJPOUSVF ^ > "WBJMBCJMJUZ;POF"WBJMBCJMJUZ;POF $SFBUF5JNF5 &ODSZQUFEUSVF ,NT,FZ*E,NT,FZ*E 0VUQPTU"SO0VUQPTU"SO 4J[F 4OBQTIPU*E4OBQTIPU*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E *PQT 7PMVNF5ZQF7PMVNF5ZQF 'BTU3FTUPSFEUSVF .VMUJ"UUBDI&OBCMFEUSVF 5ISPVHIQVU ^ \ "UUBDINFOUT< \ *OTUBODF*E*OTUBODF*E ^ > ^ > ^
  6. 43 $-*ߏஙͷεεϝ $-*ΫΤϦ RVFSZ BXT FDEFTDSJCFWPMVNFT BXT FDEFTDSJCFWPMVNFT= RVFSZ7PMVNFT<> ΫϥΠΞϯτଆͷϑΟϧλϦϯάIUUQTEPDTBXTBNB[PODPNKB@KQDMJMBUFTUVTFSHVJEFDMJVTBHFGJMUFSIUNMDMJVTBHFGJMUFSDMJFOUTJEF

    \ 7PMVNFT< \ "UUBDINFOUT< \ "UUBDI5JNF5 %FWJDF%FWJDF *OTUBODF*E*OTUBODF*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E %FMFUF0O5FSNJOBUJPOUSVF ^ > "WBJMBCJMJUZ;POF"WBJMBCJMJUZ;POF $SFBUF5JNF5 &ODSZQUFEUSVF ,NT,FZ*E,NT,FZ*E 0VUQPTU"SO0VUQPTU"SO 4J[F 4OBQTIPU*E4OBQTIPU*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E *PQT 7PMVNF5ZQF7PMVNF5ZQF 'BTU3FTUPSFEUSVF .VMUJ"UUBDI&OBCMFEUSVF 5ISPVHIQVU ^ \ "UUBDINFOUT< \ *OTUBODF*E*OTUBODF*E ^ > ^ > ^ "84$-*ͷग़ྗΛՃ޻͢ΔΦϓγϣϯ ϘϦϡʔϜ͕Ξλον͞ΕͯΔ*OTUBODF*EΛௐ΂Δ৔߹
  7. 44 $-*ߏஙͷεεϝ $-*ΫΤϦ RVFSZ BXT FDEFTDSJCFWPMVNFT BXT FDEFTDSJCFWPMVNFT= RVFSZ7PMVNFT<> ΫϥΠΞϯτଆͷϑΟϧλϦϯάIUUQTEPDTBXTBNB[PODPNKB@KQDMJMBUFTUVTFSHVJEFDMJVTBHFGJMUFSIUNMDMJVTBHFGJMUFSDMJFOUTJEF

    \ 7PMVNFT< \ "UUBDINFOUT< \ "UUBDI5JNF5 %FWJDF%FWJDF *OTUBODF*E*OTUBODF*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E %FMFUF0O5FSNJOBUJPOUSVF ^ > "WBJMBCJMJUZ;POF"WBJMBCJMJUZ;POF $SFBUF5JNF5 &ODSZQUFEUSVF ,NT,FZ*E,NT,FZ*E 0VUQPTU"SO0VUQPTU"SO 4J[F 4OBQTIPU*E4OBQTIPU*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E *PQT 7PMVNF5ZQF7PMVNF5ZQF 'BTU3FTUPSFEUSVF .VMUJ"UUBDI&OBCMFEUSVF 5ISPVHIQVU ^ \ "UUBDINFOUT< \ *OTUBODF*E*OTUBODF*E ^ > ^ > ^ "84$-*ͷग़ྗΛՃ޻͢ΔΦϓγϣϯ ϘϦϡʔϜ͕Ξλον͞ΕͯΔ*OTUBODF*EΛௐ΂Δ৔߹
  8. 45 $-*ߏஙͷεεϝ $-*ΫΤϦ RVFSZ BXT FDEFTDSJCFWPMVNFT BXT FDEFTDSJCFWPMVNFT= RVFSZ7PMVNFT<>"UUBDINFOUT<> ΫϥΠΞϯτଆͷϑΟϧλϦϯάIUUQTEPDTBXTBNB[PODPNKB@KQDMJMBUFTUVTFSHVJEFDMJVTBHFGJMUFSIUNMDMJVTBHFGJMUFSDMJFOUTJEF

    \ 7PMVNFT< \ "UUBDINFOUT< \ "UUBDI5JNF5 %FWJDF%FWJDF *OTUBODF*E*OTUBODF*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E %FMFUF0O5FSNJOBUJPOUSVF ^ > "WBJMBCJMJUZ;POF"WBJMBCJMJUZ;POF $SFBUF5JNF5 &ODSZQUFEUSVF ,NT,FZ*E,NT,FZ*E 0VUQPTU"SO0VUQPTU"SO 4J[F 4OBQTIPU*E4OBQTIPU*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E *PQT 7PMVNF5ZQF7PMVNF5ZQF 'BTU3FTUPSFEUSVF .VMUJ"UUBDI&OBCMFEUSVF 5ISPVHIQVU ^ \ "UUBDINFOUT< \ *OTUBODF*E*OTUBODF*Ez ^ > ^ > ^ "84$-*ͷग़ྗΛՃ޻͢ΔΦϓγϣϯ ϘϦϡʔϜ͕Ξλον͞ΕͯΔ*OTUBODF*EΛௐ΂Δ৔߹
  9. 46 $-*ߏஙͷεεϝ $-*ΫΤϦ RVFSZ BXT FDEFTDSJCFWPMVNFT BXT FDEFTDSJCFWPMVNFT= RVFSZ7PMVNFT<>"UUBDINFOUT<> ΫϥΠΞϯτଆͷϑΟϧλϦϯάIUUQTEPDTBXTBNB[PODPNKB@KQDMJMBUFTUVTFSHVJEFDMJVTBHFGJMUFSIUNMDMJVTBHFGJMUFSDMJFOUTJEF

    \ 7PMVNFT< \ "UUBDINFOUT< \ "UUBDI5JNF5 %FWJDF%FWJDF *OTUBODF*E*OTUBODF*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E %FMFUF0O5FSNJOBUJPOUSVF ^ > "WBJMBCJMJUZ;POF"WBJMBCJMJUZ;POF $SFBUF5JNF5 &ODSZQUFEUSVF ,NT,FZ*E,NT,FZ*E 0VUQPTU"SO0VUQPTU"SO 4J[F 4OBQTIPU*E4OBQTIPU*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E *PQT 7PMVNF5ZQF7PMVNF5ZQF 'BTU3FTUPSFEUSVF .VMUJ"UUBDI&OBCMFEUSVF 5ISPVHIQVU ^ \ "UUBDINFOUT< \ *OTUBODF*E*OTUBODF*E ^ > ^ > ^ "84$-*ͷग़ྗΛՃ޻͢ΔΦϓγϣϯ ϘϦϡʔϜ͕Ξλον͞ΕͯΔ*OTUBODF*EΛௐ΂Δ৔߹
  10. 47 $-*ߏஙͷεεϝ $-*ΫΤϦ RVFSZ BXT FDEFTDSJCFWPMVNFT BXT FDEFTDSJCFWPMVNFT= RVFSZ7PMVNFT<>"UUBDINFOUT<>*OTUBODF*E ΫϥΠΞϯτଆͷϑΟϧλϦϯάIUUQTEPDTBXTBNB[PODPNKB@KQDMJMBUFTUVTFSHVJEFDMJVTBHFGJMUFSIUNMDMJVTBHFGJMUFSDMJFOUTJEF

    \ 7PMVNFT< \ "UUBDINFOUT< \ "UUBDI5JNF5 %FWJDF%FWJDF *OTUBODF*E*OTUBODF*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E %FMFUF0O5FSNJOBUJPOUSVF ^ > "WBJMBCJMJUZ;POF"WBJMBCJMJUZ;POF $SFBUF5JNF5 &ODSZQUFEUSVF ,NT,FZ*E,NT,FZ*E 0VUQPTU"SO0VUQPTU"SO 4J[F 4OBQTIPU*E4OBQTIPU*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E *PQT 7PMVNF5ZQF7PMVNF5ZQF 'BTU3FTUPSFEUSVF .VMUJ"UUBDI&OBCMFEUSVF 5ISPVHIQVU ^ \ "UUBDINFOUT< \ *OTUBODF*E*OTUBODF*E ^ > ^ > ^ "84$-*ͷग़ྗΛՃ޻͢ΔΦϓγϣϯ ϘϦϡʔϜ͕Ξλον͞ΕͯΔ*OTUBODF*EΛௐ΂Δ৔߹
  11. 48 $-*ߏஙͷεεϝ $-*ΫΤϦ RVFSZ BXT FDEFTDSJCFWPMVNFT BXT FDEFTDSJCFWPMVNFT= RVFSZ7PMVNFT<>"UUBDINFOUT<>*OTUBODF*E ΫϥΠΞϯτଆͷϑΟϧλϦϯάIUUQTEPDTBXTBNB[PODPNKB@KQDMJMBUFTUVTFSHVJEFDMJVTBHFGJMUFSIUNMDMJVTBHFGJMUFSDMJFOUTJEF

    \ 7PMVNFT< \ "UUBDINFOUT< \ "UUBDI5JNF5 %FWJDF%FWJDF *OTUBODF*E*OTUBODF*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E %FMFUF0O5FSNJOBUJPOUSVF ^ > "WBJMBCJMJUZ;POF"WBJMBCJMJUZ;POF $SFBUF5JNF5 &ODSZQUFEUSVF ,NT,FZ*E,NT,FZ*E 0VUQPTU"SO0VUQPTU"SO 4J[F 4OBQTIPU*E4OBQTIPU*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E *PQT 7PMVNF5ZQF7PMVNF5ZQF 'BTU3FTUPSFEUSVF .VMUJ"UUBDI&OBCMFEUSVF 5ISPVHIQVU ^ \ "UUBDINFOUT< \ *OTUBODF*E*OTUBODF*E ^ > ^ > ^ "84$-*ͷग़ྗΛՃ޻͢ΔΦϓγϣϯ ϘϦϡʔϜ͕Ξλον͞ΕͯΔ*OTUBODF*EΛௐ΂Δ৔߹
  12. 49 $-*ߏஙͷεεϝ $-*ΫΤϦ RVFSZ BXT FDEFTDSJCFWPMVNFT BXT FDEFTDSJCFWPMVNFT= RVFSZ7PMVNFT<>"UUBDINFOUT<>*OTUBODF*E <

    z*OTUBODF*E z*OTUBODF*E > ΫϥΠΞϯτଆͷϑΟϧλϦϯάIUUQTEPDTBXTBNB[PODPNKB@KQDMJMBUFTUVTFSHVJEFDMJVTBHFGJMUFSIUNMDMJVTBHFGJMUFSDMJFOUTJEF \ 7PMVNFT< \ "UUBDINFOUT< \ "UUBDI5JNF5 %FWJDF%FWJDF *OTUBODF*E*OTUBODF*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E %FMFUF0O5FSNJOBUJPOUSVF ^ > "WBJMBCJMJUZ;POF"WBJMBCJMJUZ;POF $SFBUF5JNF5 &ODSZQUFEUSVF ,NT,FZ*E,NT,FZ*E 0VUQPTU"SO0VUQPTU"SO 4J[F 4OBQTIPU*E4OBQTIPU*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E *PQT 7PMVNF5ZQF7PMVNF5ZQF 'BTU3FTUPSFEUSVF .VMUJ"UUBDI&OBCMFEUSVF 5ISPVHIQVU ^ \ "UUBDINFOUT< \ *OTUBODF*E*OTUBODF*Ez ^ > ^ > ^ "84$-*ͷग़ྗΛՃ޻͢ΔΦϓγϣϯ ϘϦϡʔϜ͕Ξλον͞ΕͯΔ*OTUBODF*EΛௐ΂Δ৔߹
  13. 50 $-*ߏஙͷεεϝ $-*ΫΤϦ RVFSZ BXT FDEFTDSJCFWPMVNFT BXT FDEFTDSJCFWPMVNFT= RVFSZ7PMVNFT<>"UUBDINFOUT<>*OTUBODF*E <

    z*OTUBODF*Ez > ΫϥΠΞϯτଆͷϑΟϧλϦϯάIUUQTEPDTBXTBNB[PODPNKB@KQDMJMBUFTUVTFSHVJEFDMJVTBHFGJMUFSIUNMDMJVTBHFGJMUFSDMJFOUTJEF \ 7PMVNFT< \ "UUBDINFOUT< \ "UUBDI5JNF5 %FWJDF%FWJDF *OTUBODF*E*OTUBODF*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E %FMFUF0O5FSNJOBUJPOUSVF ^ > "WBJMBCJMJUZ;POF"WBJMBCJMJUZ;POF $SFBUF5JNF5 &ODSZQUFEUSVF ,NT,FZ*E,NT,FZ*E 0VUQPTU"SO0VUQPTU"SO 4J[F 4OBQTIPU*E4OBQTIPU*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E *PQT 7PMVNF5ZQF7PMVNF5ZQF 'BTU3FTUPSFEUSVF .VMUJ"UUBDI&OBCMFEUSVF 5ISPVHIQVU ^ \ "UUBDINFOUT< \ *OTUBODF*E*OTUBODF*Ez ^ > ^ > ^ "84$-*ͷग़ྗΛՃ޻͢ΔΦϓγϣϯ ϘϦϡʔϜ͕Ξλον͞ΕͯΔ*OTUBODF*EΛͭௐ΂Δ৔߹
  14. 51 $-*ߏஙͷεεϝ $-*ΫΤϦ RVFSZ BXT FDEFTDSJCFWPMVNFT BXT FDEFTDSJCFWPMVNFT= RVFSZ7PMVNFT<>"UUBDINFOUT<>*OTUBODF*E <

    z*OTUBODF*Ez > ΫϥΠΞϯτଆͷϑΟϧλϦϯάIUUQTEPDTBXTBNB[PODPNKB@KQDMJMBUFTUVTFSHVJEFDMJVTBHFGJMUFSIUNMDMJVTBHFGJMUFSDMJFOUTJEF \ 7PMVNFT< \ "UUBDINFOUT< \ "UUBDI5JNF5 %FWJDF%FWJDF *OTUBODF*E*OTUBODF*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E %FMFUF0O5FSNJOBUJPOUSVF ^ > "WBJMBCJMJUZ;POF"WBJMBCJMJUZ;POF $SFBUF5JNF5 &ODSZQUFEUSVF ,NT,FZ*E,NT,FZ*E 0VUQPTU"SO0VUQPTU"SO 4J[F 4OBQTIPU*E4OBQTIPU*E 4UBUF4UBUF 7PMVNF*E7PMVNF*E *PQT 7PMVNF5ZQF7PMVNF5ZQF 'BTU3FTUPSFEUSVF .VMUJ"UUBDI&OBCMFEUSVF 5ISPVHIQVU ^ \ "UUBDINFOUT< \ *OTUBODF*E*OTUBODF*Ez ^ > ^ > ^ "84$-*ͷग़ྗΛՃ޻͢ΔΦϓγϣϯ ϘϦϡʔϜ͕Ξλον͞ΕͯΔ*OTUBODF*EΛͭௐ΂Δ৔߹ ΑΓΫΤϦΛ୳ٻ͍ͨ͠ํ͸ ྫ͔ΒֶͿ "84$-*ͷ ΫΤϦ RVFSZ ׆༻
  15. 52 $-*ߏஙͷεεϝ $-*ग़ྗϑΥʔϚοτ "84$-*ग़ྗϑΥʔϚοτͷઃఆIUUQTEPDTBXTBNB[PODPNKB@KQDMJMBUFTUVTFSHVJEFDMJVTBHFPVUQVUGPSNBUIUNM PVUQVU "84$-*ͷग़ྗܗࣜΛࢦఆ͢ΔΦϓγϣϯɻ KTPO  UFYU UBCMF

    ZBNMZBNMTUSFBN KTPOܗࣜͷग़ྗɻσϑΥϧτ λϒ۠੾Γͷจࣈྻܗࣜɻ΄͔ίϚϯυͱ૊Έ߹ΘͤΔࡍʹͳʹ͔ͱ࢖͏ ςʔϒϧܗࣜͷग़ྗɻݟͨ໨ॏࢹ͢Δͱ͖ʹ࢖͏ ZBNMܗࣜͷग़ྗɻݸਓతʹ͋·Γݟ͔͚ͳ͍ɻɻ
  16. 53 $-*ߏஙͷεεϝ $-*ग़ྗϑΥʔϚοτ "84$-*ग़ྗϑΥʔϚοτͷઃఆIUUQTEPDTBXTBNB[PODPNKB@KQDMJMBUFTUVTFSHVJEFDMJVTBHFPVUQVUGPSNBUIUNM PVUQVUUFYUΛ࢖ͬͨޮ཰ԽͷҰྫ ҎԼͷίϚϯυΛ࣮ߦͨ͠৔߹ɺͭͷΠϯελϯε*%͕ग़ྗ͞ΕΔ BXT FDEFTDSJCFWPMVNFTRVFSZ7PMVNFT<>"UUBDINFOUT<>*OTUBODF*E PVUQVUUFYU *OTUBODF*E

    BXT FDEFTDSJCFWPMVNFTRVFSZ7PMVNFT<>"UUBDINFOUT<>*OTUBODF*E PVUQVUUFYU= cYBSHT BXT FDEFTDSJCFJOTUBODFTJOTUBODFJET \ Πϯελϯε৘ใ͕ग़ྗ͞ΕΔ ^ ্ͷίϚϯυͰग़ྗ͞ΕͨΠϯελϯε*%ΛAEFTDSJCFJOTUBODFTAͷίϚϯυͷҾ਺ʹ౉͢ྫ YBSHT ௚લͷίϚϯυͷ࣮ߦ݁ՌΛผͷίϚϯυͰ࣮ߦ͢Δ
  17. 57