Slide 1

Slide 1 text

QPUBUPUJQT!ZJNBKP 044ͱͳͬͨTXJGUCVJMEͰ 9DPEFͷϏϧυΛࠩ͠ସ͑ΒΕΔͨΊ ࣗ෼Ͱ9DPEFΛ௚ͤΔ࣌୅ʹͳ͍ͬͯΔ μΠΞϞϯυ໰୊ฤ

Slide 2

Slide 2 text

w (6*ͷ9DPEF΋ϏϧυγεςϜΛαʔϏεͱͯ͠੾Γग़͍ͯ͠Δ w 9DPEF͸αʔϏεͱϓϩηεؒ௨৴Λͯ͠Δ ϏϧυΛ044൛ʹࠩ͠ସ͑Δ 9DPEF Ͳ͏͍͏࢓૊Έʁ 48##VJME4FSWJDF چ໊9$##VJME4FSWJDF

Slide 3

Slide 3 text

w (6*ͷ9DPEF΋ϏϧυγεςϜΛαʔϏεͱͯ͠੾Γग़͍ͯ͠Δ w 9DPEF͸αʔϏεͱϓϩηεؒ௨৴Λͯ͠Δ w ੾Γग़ͨ͠TXJGUCVJMEΛσόοά࣮ߦ͑͞΋Ͱ͖Δ ϏϧυΛ044൛ʹࠩ͠ସ͑Δ 9DPEF 9DPEFʹΑͬͯຊདྷ ىಈ͞ΕΔTXJGUCVJME DMPOFͨ͠TXJGUCVJME 044ͷTXJGUCVJMEΛࢀর͢ΔΑ͏ ʹ؀ڥม਺ͰύεΛม͑Δ Ͳ͏͍͏࢓૊Έʁ

Slide 4

Slide 4 text

ϏϧυΛ044൛ʹࠩ͠ସ͑σόοά͢Δ TXJGUCVJMEΛ9DPEFͰσόοά w (JU)VC͔ΒTXJGUCVJMEΛHJUDMPOF w 9DPEFͰTXJGUCVJME1BDLBHFTXJGUΛ։͘ w %FCVH"UUBDIUP1SPDFTTCZ1*%PS/BNF w A48##VJME4FSWJDF#VOEMFAΛࢦఆ w ϒϨʔΫϙΠϯτΛషͬͯTXJGUCVJMEΛͱΊΒΕΔΑ͏ʹ͓ͯ͘͠ w TXJGUQBDLBHFEJTBCMFTBOECPYMBVODIYDPEF w ࣗಈͰ9DPEF͕։͖ϓϩδΣΫτΛࢦఆͰ͖ΔΑ͏ʹͳΔͷͰࢦఆ w Ϗϧυ͢Δ

Slide 5

Slide 5 text

TXJGUQBDLBHFEJTBCMFTBOECPYMBVODIYDPEF TXJGUCVJMEΛ9DPEFͰ։͘ PQFO1BDLBHFTXJGU 9DPEFϏϧυ࣌ʹ9DPEFΛ TXJGUCVJMEʹࠩ͠ସ͍͑ͨ Έͳ͞ΜͷQSPKFDU 48##VJME4FSWJDF#VOEMF ϓϩηεʹରͯ͠ 48##VJME4FSWJDF#VOEMF ͱ͍͏໊Ͱ"UUBDI͠ͱ͘ͱ 9DPEFͰ։͍ͨTXJGUCVJMEଆ͕ σόοΨʔͱͯ͠࢖͑Δ 9DPEF͕։͖ ϓϩδΣΫτΛબ୒Ͱ͖Δɻ ͦͷ9DPEFͰ͸؀ڥม਺ 9$##6*-%4&37*$&@1"5)Λ ੾Γସ͑ɺ TXJGUCVJMEࣗମͷύε͕౉Δɻ 9DPEF͸ϓϩδΣΫτΛ։͚ͩ͘Ͱ΋ QSFCVJME͕ಈ͘͸ͣͰͦͷͱ͖ 9$##6*-%4&37*$&@1"5)ͷTXJGUCVJME ͕ىಈ͢Δ͸ͣɻ ϏϧυΛ044൛ʹࠩ͠ସ͑Δ

Slide 6

Slide 6 text

͜ΕͰࣗ෼ͷϓϩδΣΫτͰϏϧυ݁Ռ͕͓͔͠ͳ݁Ռʹ ͳͬͨ࣌ɺϏϧυͷաఔΛ࣮ࡍʹσόοά࣮ߦͤ͞ΒΕΔ -5͸Ҏ্Ͱ͢ɻ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠

Slide 7

Slide 7 text

͓·͚

Slide 8

Slide 8 text

Ϗϧυ݁Ռ͕͓͔͍͠ ͱ͸Կʁ ͦ΋ͦ΋TXJGUCVJMEͬͯԿͯ͠Μͷʁ

Slide 9

Slide 9 text

TXJGUCVJMEͬͯԿ͢Μͷʁ  ґଘͷ੔ཧ  ग़ྗ5BSHFU#VJME(SBQI  Ϗϧυܭըʢґଘͷௐ੔ʣ  ೖྗ5BSHFU#VJME(SBQI  ग़ྗ#VJME1MBO  ΠϯΫϦϝϯλϧϏϧυ൑ఆ  4XJGUίϯύΠϧ  $0CKFDUJWF$ίϯύΠϧ  -JOLFS  Ξηοτͷॲཧ

Slide 10

Slide 10 text

TXJGUCVJMEͬͯԿ͢Μͷʁ  ґଘͷ੔ཧ  ग़ྗ5BSHFU#VJME(SBQI  Ϗϧυܭըʢґଘͷௐ੔ʣ  ೖྗ5BSHFU#VJME(SBQI  ग़ྗ#VJME1MBO  ΠϯΫϦϝϯλϧϏϧυ൑ఆ  4XJGUίϯύΠϧ  $0CKFDUJWF$ίϯύΠϧ  -JOLFS  Ξηοτͷॲཧ ϏϧυܭըϑΣʔζ͸ 9DPEF಺ͷ5BSHFU΍ 1BDLBHFTXJGUͰఆٛͨ͠ґଘΛղܾ͠ ϥΠϒϥϦʢϑϨʔϜϫʔΫʣΛ ࣗಈͰ%ZOBNJD4UBUJD-JOLʹ ੾Γସ͑ͯ͘ΕΔ

Slide 11

Slide 11 text

TXJGUCVJMEͬͯԿ͢Μͷʁ  ґଘͷ੔ཧ  ग़ྗ5BSHFU#VJME(SBQI  Ϗϧυܭըʢґଘͷௐ੔ʣ  ೖྗ5BSHFU#VJME(SBQI  ग़ྗ#VJME1MBO  ΠϯΫϦϝϯλϧϏϧυ൑ఆ  4XJGUίϯύΠϧ  $0CKFDUJWF$ίϯύΠϧ  -JOLFS  Ξηοτͷॲཧ ϏϧυܭըϑΣʔζ͸ 9DPEF಺ͷ5BSHFU΍ 1BDLBHFTXJGUͰఆٛͨ͠ґଘΛղܾ͠ ϥΠϒϥϦʢϑϨʔϜϫʔΫʣΛ ࣗಈͰ%ZOBNJD4UBUJD-JOLʹ ੾Γସ͑ͯ͘ΕΔ "QQ 4UBUJD -JC ґଘؔ܎ʹ໰୊ͳ͘ࢦఆ΋ͳ͚Ε͹4UBUJD-JOL

Slide 12

Slide 12 text

͔͠͠Կ΋ґଘʹ໰୊͕ͳ͍ ͜ͱͳΜͯ͋ΔΜ͔ʜ

Slide 13

Slide 13 text

ͦ΋ͦ΋

Slide 14

Slide 14 text

9DPEFͷچདྷ͔Β͋Δ&NCFEEFE'SBNFXPSLͷ5BSHFUΛ࡞Δͱ σϑΥϧτ%ZOBNJD-JOLͰ͋Γɺ͜͜Ͱ4UBUJD-JCSBSZΛબͿ͜ ͱ͸΄ͱΜͲͳ͔ͬͨ͸ͣ "QQ &NCFEEFE'SBNFXPSL Ҏ߱&' %ZOBNJD-JOL

Slide 15

Slide 15 text

"QQ 4UBUJD -JC 4UBUJD-JOLϏϧυ࣌ʹ"QQͷόΠφϦʹ͸4UBUJD-JC͕औΓࠐ·ΕΔ ͓͞Β͍

Slide 16

Slide 16 text

"QQ 4UBUJD -JC 4UBUJD-JOLϏϧυ࣌ʹ"QQͷόΠφϦʹ͸4UBUJD-JC͕औΓࠐ·ΕΔ "QQ %ZOBNJD-JOLϏϧυ࣌ʹ"QQͷόΠφϦʹ͸ϦϯΫ͚͕ͩऔΓࠐ·ΕΔ &NCFEEFE'SBNFXPSL Ҏ߱&' ͓͞Β͍

Slide 17

Slide 17 text

"QQ 4UBUJD -JC 4UBUJD-JOLϏϧυ࣌ʹ"QQͷόΠφϦʹ͸4UBUJD-JC͕औΓࠐ·ΕΔ "QQ %ZOBNJD-JOLϏϧυ࣌ʹ"QQͷόΠφϦʹ͸ϦϯΫ͚͕ͩऔΓࠐ·ΕΔ &NCFEEFE'SBNFXPSL Ҏ߱&' "QQ %ZOBNJD-JOLͨ͠5BSHFU΁ͷ4UBUJD-JOLϏϧυ࣌ʹ %ZOBNJD-JOL͞Εͨ5BSHFUʢ&'ʣ΁4UBUJD-JOLͷ4UBUJD-JC͕औΓࠐ·ΕΔ &NCFEEFE'SBNFXPSL Ҏ߱&' 4UBUJD -JC ͓͞Β͍

Slide 18

Slide 18 text

΋͠%ZOBNJD-JOLͱ4UBUJD-JOLͷઌͷ5BSHFU͕ڞ௨ͷ৔߹ɺ ͦΕ͕4UBUJDͷ··ͩͱϏϧυޙͷόΠφϦʹ͸&'ͷதʹ΋$PNNPO ͕ଘࡏ͠ɺ"QQͷதʹ΋$PNNPO͕ଘࡏ͢Δঢ়ଶͱͳͬͯ͠·͏🥲 "QQ &NCFEEFE'SBNFXPSL Ҏ߱&' 6UJMJUZ $PNNPO %ZOBNJD-JOL 4UBUJD-JOL 4UBUJD-JOL 4UBUJD-JOL

Slide 19

Slide 19 text

TXJGUCVJME͸μΠΞϞϯυґଘ໰୊Λղܾ͠ɺ ࣗಈͰ%ZOBNJD-JOLʹมߋͯ͘͠ΕͯॏෳΛͳͯ͘͘͠ΕΔʂʂ😀 "QQ &NCFEEFE'SBNFXPSL Ҏ߱&' 6UJMJUZ $PNNPO %ZOBNJD-JOL 4UBUJD-JOL %ZOBNJD-JOL %ZOBNJD-JOL

Slide 20

Slide 20 text

࣮ࡍʹϓϩδΣΫτΛ࡞ͬͯΈΑ͏ ͋͑ͯμΠΞϞϯυґଘ໰୊ͷ͋ΔΑ͏ʹͭ͘Δ

Slide 21

Slide 21 text

·ͣ1BDLBHFTXJGUͰґଘؔ܎ٯసͷݪଇͷΑ͏ͳ͜ͱΛ΍Δ ʢҙਤͱͯ͠'FBUVSF͸*OGSBʹґଘͤͣ$POUSBDUT͸QSPUPDPM͚͕ͩ͋ΔɻԿ͕خ ͍͔͠ͱ͍͏ͱྫ͑͹*OGSBʹ'JSFCBTFJPTTELґଘ͕͋Δ͔Β'FBUVSF͕ͦͷढ͍ ʹґଘͤͣ'FBUVSFΛεΩʔϚʹͯ͠Ϗϧυͨ͠Β1SFWJFX͕ߴ଎ɺΈ͍ͨͳʣ products: [ .library( name: “Infrastructure” targets: [“Infrastructure”] ), .library( name: “Feature” targets: [“Feature”] ), .library( name: “Contracts” targets: [“Contracts”] ), ], targets: [ .target( name: “Feature” dependency: [“Contracts”] ), .target( name: “Contracts” dependency: [“”] ), .target( name: “Infrastructure ” dependency: [“Contracts”] ), ], $POUSBDUT 'FBUVSF *OGSBTUSVDUVSF staticͱ͔dynamicΛࢦఆͤͣ ͔ͭ֎෦ʹެ։͢Δͷ͸Target୯ҐͷΑ͏ʹͯ͠͠·͏ʢ͜Ε͕ϛεʣ

Slide 22

Slide 22 text

"QQͱ&NCFEEFE'SBNFXPSL͔Βͦͷ1SPEVDUʹґଘ͢Δ৔߹ɺ TXJGUCVJMEΛ৴͡Δͱ'FBUVSF͚͕ͩ4UBUJDͰ͋Ε͹ྑ͍͸ͣʜ $POUSBDUT 'FBUVSF *OGSBTUSVDUVSF "QQ &NCFEEFE'SBNFXPSL Ҏ߱&' %ZOBNJD-JOL

Slide 23

Slide 23 text

࣮ࡍʹPUPPMͱONίϚϯυͰௐ΂Δͱ $POUSBDUT͕%ZOBNJD-JOLͱͳͬͯ͘Εͳ͍ʜ ʢͭͷผ$POUSBDUT͕ੜ·ΕΔ🥲🥲ʣ $POUSBDUT 'FBUVSF *OGSBTUSVDUVSF "QQ &NCFEEFE'SBNFXPSL Ҏ߱&' %ZOBNJD-JOL 4UBUJD-JOL 4UBUJD-JOL 4UBUJD-JOL

Slide 24

Slide 24 text

9DPEFք۾Ͱ͸4UBUJDͳ૒ࢠҎ্͸٢ஹ ಉҰͷλʔήοτͱ͸Έͳ͞Εͳ͍ w ܕ͕ಉ͡Ͱ΋ϝλσʔλλΠϓ͕ҧ͍ಉҰͰ͸ͳ͍ w ܕͷΩϟετ͸ࣦഊ͢Δ w ܕͷύλʔϯϚον΋ࣦഊ͢Δ w TUBUJDͰγϯάϧτϯʹ͠Α͏ͱͯ͠΋ผʑʹ࡞ΒΕΔ

Slide 25

Slide 25 text

Կ͕%ZOBNJD4UBUJD͔ݟͯΈΑ͏ PUPPMONίϚϯυͰத਎͕Θ͔Δ "QQ/BNFBQQ 'SBNFXPSLT "QQ/BNF "QQ/BNFEFCVHEZMJC &'GSBNFXPSL *OGSBTUSVDUVSFGSBNFXPSL PUPPM-͸%ZOBNJD-JOL͍ͯ͠Δύε͕Θ͔Δ ONH6͸ϑΝΠϧͷߏ଄͕Θ͔ΔͷͰTXJGUEFNBOHMFͱ͘Έ߹ΘͤΔͱ 4UBUJD-JOL͞ΕͯΔ͔͕Θ͔ΔͷͰɺ ܕ͕ݟ͔ͭΒͳ͚Ε͹4UBUJD-JOLͰͳ͍ͱΈͳͤΔɻ $POUSBDUTGSBNFXPSL $POUSBDUTGSBNFXPSL

Slide 26

Slide 26 text

ݪҼ͸Կ͔ w TXJGUCVJMEʹ͸μΠΞϞϯυ໰୊Λղܾͯ͘͠ΕΔॲཧ͕͋ΔΜ΍ͯ w SFTPMWF%JBNPOE1SPCMFN*O1BDLBHFϝιου w ͲΜͳʓʓʓ͘ΕͨॲཧͳΜ΍Ζ

Slide 27

Slide 27 text

ݪҼ͸Կ͔ ͜ΕΛσόοάϏϧυͯ֬͠ೝͯ͠վળͰ͖Δͷ͕044ͷྑ͞ʂ ૣ଎ݟΑ͏ʂ w TXJGUCVJMEʹ͸μΠΞϞϯυ໰୊Λղܾͯ͘͠ΕΔॲཧ͕͋ΔΜ΍ͯ w SFTPMWF%JBNPOE1SPCMFN*O1BDLBHFϝιου w ͲΜͳʓʓʓ͘ΕͨॲཧͳΜ΍Ζ

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

ແݶϧʔϓʹ ͳΒͳ͍Α͏ʹ ࠷ޙͷ஋ͱݱࡏͷ஋͕ ҧ͏৔߹ʹͷΈ ϧʔϓΛଓ͚Δॲཧɻɻɻ ͜Ε͸ϧʔϓ͸ൈ͚ͯΔ͚Ͳ ໰୊͸ղܾ͍ͯ͠ͳ͍

Slide 30

Slide 30 text

ແݶϧʔϓʹ ͳΒͳ͍Α͏ʹ ࠷ޙͷ஋ͱݱࡏͷ஋͕ ҧ͏৔߹ʹͷΈ ϧʔϓΛଓ͚Δॲཧɻɻɻ ͜Ε͸ϧʔϓ͸ൈ͚ͯΔ͚Ͳ ໰୊͸ղܾ͍ͯ͠ͳ͍ %JBNPOET͕ͷ·· ղܾ͍ͯ͠ͳ͍΍Μ͚ʜ

Slide 31

Slide 31 text

ϫʔΫΞϥ΢ϯυͱ͔ͳ͍Μ͔ʁ w ݪҼ͔Βߟ࡯ w TXJGUCVJMEͷίʔυͰ͸ɺτοϓϨϕϧͷ֊૚ͷґଘΛվળͨ͠ޙɺ5BSHFUͷґଘͷνΣοΫ͕ෳ਺ஈ֊ w ཧ༝͸஌ΒΜ͚ͲɺτοϓϨϕϧͷνΣοΫͰ%ZOBNJD൑ఆ͸ߦͬͯΔ w ͦͷ%ZOBNJDʹͨ͠UBSHFUT΁ͷνΣοΫ͸εΩοϓͯ͠νΣοΫ͍ͯ͠ͳ͍Α͏ʹݟ͑Δ w ۩ମతʹ͸τοϓϨϕϧͷ"QQͱ&'͕ґଘ͍ͯ͠Δ*OGSBTUSVDUVSF1SPEVDUΛ%ZOBNJDʹͨ͠ޙɺͦ ͷ5BSHFUͰ͋Δ*OGSBTUSVDUVSFͷEFQFOEFODJFTͷνΣοΫΛεΩοϓͯ͠͠·͍ͬͯΔʁ w ͭ·Γɺஈ֊໨͚ͩͰॏෳνΣοΫͤ͞Ε͹ྑ͘ͳ͍ʁ w ۩ମతʹ͸τοϓϨϕϧͷஈ֊Ͱ5BSHFUͷॏෳݕ஌Λͤ͞ͳ͍Α͏ʹ͢ΔͨΊɺ1BDLBHFTXJGU Ͱެ։͢Δ1BDLBHF1SPEVDUΛ֎෦5BSHFUͱʹͳΔΑ͏ʹ͢Δ

Slide 32

Slide 32 text

ϫʔΫΞϥ΢ϯυ products: [ // τοϓϨϕϧͷAppͱEF͔ΒLink͞ΕͯΔɻ .library( name: “Infrastructure” // Dynamicʹ൑ఆ͞ΕΔ targets: [“Infrastructure”] // ͜Ε͕εΩοϓʁ ), .library( // App͔ΒͷΈLink͞Εͯͨ name: “Feature” // static൑ఆ targets: [“Feature”] // ͜ͷઌͷґଘνΣοΫ͠ͳ͍ʁ ), .library( // App͔ΒͷΈLink͞Εͯͨ name: “Contracts” // Static൑ఆ targets: [“Contracts”] // ͜ͷઌͷґଘνΣοΫ͠ͳ͍ʁ ), ],

Slide 33

Slide 33 text

ϫʔΫΞϥ΢ϯυ products: [ // τοϓϨϕϧͷAppͱEF͔ΒLink͞ΕͯΔɻ .library( name: “Infrastructure” // Dynamicʹ൑ఆ͞ΕΔ targets: [“Infrastructure”] // ͜Ε͕εΩοϓʁ ), .library( // App͔ΒͷΈLink͞Εͯͨ name: “Feature” // static൑ఆ targets: [“Feature”] // ͜ͷઌͷґଘνΣοΫ͠ͳ͍ʁ ), .library( // App͔ΒͷΈLink͞Εͯͨ name: “Contracts” // Static൑ఆ targets: [“Contracts”] // ͜ͷઌͷґଘνΣοΫ͠ͳ͍ʁ ), ], products: [ // ͜Ε͸App͔ΒͷΈLink͢Δ .library( name: “AppLib” targets: [ “Feature”, // Static൑ఆ // EFLibʹ΋͋ΔͷͰDynamic൑ఆ ”Infrastructure” ] ), // ͜Ε͸EF͔ΒͷΈLink͢Δ .library( name: “EFLib” targets: [ “Contracts” // Static൑ఆ // AppLibʹ΋͋ΔͷͰ “Infrastructure”, // Dynamic൑ఆ ɹ] ), ], // .targets: [] ͸ݩͷ··ґଘΛهड़ վળ

Slide 34

Slide 34 text

ࠜຊతʹ ΋͠ଞʹྑ͍΍Γํ͕͋Ε͹ ڭ͍͑ͯͩ͘͞