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

匠MethodとRDRAとICONIXとDDDで実現する一気通貫オブジェクト指向開発

haru860
March 24, 2024

 匠MethodとRDRAとICONIXとDDDで実現する一気通貫オブジェクト指向開発

Object-Oriented Conference 2024 (2024年3月24日) で発表したスライドです。

haru860

March 24, 2024
Tweet

More Decks by haru860

Other Decks in Technology

Transcript

  1. ϝλࢥߟͷޮՌͦͷʙྨਪʹΑΔڞ௨߲ͷൃݟ ˡ৽͍͠खஈͷൃݟ ந৅త ۩ମత ڞ௨߲ͷൃݟ ྨਪ ˠ ଞδϟϯϧ ຊ࣭ͷൃݟˠ ͭ·ΓͲ͏͍͏͜ͱʁ

    ͳͥʁ ͭ·ΓͲ͏͍͏͜ͱʁ ͳͥʁ ݟ͍͑ͯΔ΋ͷ ʙͷํ๏΋͋Γͦ͏ ʙͷํ๏΋͋Γͦ͏ ʙͱಉ͡ʂ ϞσϦϯά
  2. ϞσϦϯάʹΑΓந৅ࢥߟ͕Ͱ͖ΔΑ͏ʹͳΔ ந৅త ۩ମత ڞ௨߲ͷൃݟ ྨਪ ˠ ଞδϟϯϧ ຊ࣭ͷൃݟˠ ͭ·ΓͲ͏͍͏͜ͱʁ ͳͥʁ

    ͭ·ΓͲ͏͍͏͜ͱʁ ͳͥʁ ݟ͍͑ͯΔ΋ͷ ʙͷํ๏΋͋Γͦ͏ ʙͷํ๏΋͋Γͦ͏ ʙͱಉ͡ʂ ϞσϦϯά ˡ৽͍͠खஈͷൃݟ
  3. γεςϜ։ൃΛ၆ᛌ͢Δʹ͸ɺ7ࣈϞσϧΛ಄ʹೖΕΔ ࣄۀ ۀ຿ γεςϜ ιϑτ ΢ΣΞ اը ۀ຿ཁ݅ఆٛ جຊઃܭ ৄࡉઃܭ

    ϓϩάϥϛϯά ୯ମςετ ίʔυϨϏϡʔ ݁߹ςετ γεςϜςετ डೖΕςετ ӡ༻ςετ ӡ༻ɾධՁ γεςϜཁ݅ఆٛ ϝλࢥߟ 7ࣈϞσϧγεςϜ։ൃΛϞσϦϯάͨ͠΋ͷ
  4. 7ࣈϞσϧ͸ɺ΢ΥʔλʔϑΥʔϧͰ΋࢖͑Δ ࣄۀ ۀ຿ γεςϜ ιϑτ ΢ΣΞ اը ۀ຿ཁ݅ఆٛ جຊઃܭ ৄࡉઃܭ

    ϓϩάϥϛϯά ୯ମςετ ίʔυϨϏϡʔ ݁߹ςετ γεςϜςετ डೖΕςετ ӡ༻ςετ ӡ༻ɾධՁ γεςϜཁ݅ఆٛ
  5. 7ࣈϞσϧ͸ɺ൓෮ܕ։ൃʢΞδϟΠϧ։ൃʣͰ΋࢖͑Δ ࣄۀ ۀ຿ γεςϜ ιϑτ ΢ΣΞ اը ۀ຿ཁ݅ఆٛ جຊઃܭ ৄࡉઃܭ

    ϓϩάϥϛϯά ୯ମςετ ίʔυϨϏϡʔ ݁߹ςετ γεςϜςετ डೖΕςετ ӡ༻ςετ ӡ༻ɾධՁ γεςϜཁ݅ఆٛ
  6. 7ࣈϞσϧΛ಄ʹೖΕ্ͨͰ֤޻ఔΛਐΊΔ͜ͱ͕େࣄ ࣄۀ ۀ຿ γεςϜ ιϑτ ΢ΣΞ اը ۀ຿ཁ݅ఆٛ جຊઃܭ ৄࡉઃܭ

    ϓϩάϥϛϯά ୯ମςετ ίʔυϨϏϡʔ ݁߹ςετ γεςϜςετ डೖΕςετ ӡ༻ςετ ӡ༻ɾධՁ γεςϜཁ݅ఆٛ ঊ.FUIPE 3%3" *$0/*9 %%% ख๏໊ ঊ.FUIPEɺ3%3" ɺ *$0/*9 ɺ %%%ϞσϦϯάओମͷख๏
  7. اը ࣄۀ ۀ຿ γεςϜ ιϑτ ΢ΣΞ اը ۀ຿ཁ݅ఆٛ جຊઃܭ ৄࡉઃܭ

    ϓϩάϥϛϯά ୯ମςετ ίʔυϨϏϡʔ ݁߹ςετ γεςϜςετ डೖΕςετ ӡ༻ςετ ӡ༻ɾධՁ γεςϜཁ݅ఆٛ 8IZঊ.FUIPE
  8. ঊ.FUIPEͱ͸ ɾՁ஋ۦಈͷاըख๏ ɾϏδωεاըɺϓϩμΫτاըɺΩϟϦΞσβΠϯͳͲ  ΞΠσΞ ˠ اը ʹద͍ͯ͠Δ ɾঊ#VTJOFTT1MBDFͷഡຊॱࡾ͞Μ͕։ൃऀ ɾαΠτ

    IUUQXXXUBLVNJCVTJOFTTQMBDFDPKQUBLVNJNFUIPE ɾॻ੶ ঊ.FUIPEʙ৽ͨͳՁ஋؍ͰϓϩδΣΫτΛσβΠϯ͢ΔͨΊʹʙ ϏδωεՁ஋Λ૑ग़͢Δʮঊ.FUIPEʯ׆༻๏
  9. ίϯηϓτ ίϯηϓτ ίϯηϓτ Ϗδϣϯ Ձ஋σβΠϯϞσϧ Ωϟον ίϐʔ σβΠϯ ҙຯ ετʔϦʔ

    ՝୊ εςʔΫϗϧμʔϞσϧ ՝୊ ໨త Ձ஋ ໨త Ձ஋ Ձ஋෼ੳϞσϧ ໨త Ձ஋ ঊ.FUIPEͷશମ૾ Ϗδϣϯ ίϯηϓτ ίϯηϓτ ίϯηϓτ ໨త ໨త ໨త ۀ຿ཁٻ ۀ຿ཁٻ ۀ຿ཁٻ *5ཁٻ ׆ಈ *5ཁٻ ׆ಈ ʲઓུཁٻʳ ʲۀ຿ཁٻʳ ʲ*5ཁٻʳ ʲ׆ಈʳ ཁٻ෼ੳπϦʔ
  10. ίϯηϓτ ίϯηϓτ ίϯηϓτ Ϗδϣϯ Ձ஋σβΠϯϞσϧ Ωϟον ίϐʔ σβΠϯ ҙຯ ετʔϦʔ

    ՝୊ εςʔΫϗϧμʔϞσϧ ՝୊ ໨త Ձ஋ ໨త Ձ஋ Ձ஋෼ੳϞσϧ ໨త Ձ஋ ঊ.FUIPEͱந৅Խࢥߟ Ϗδϣϯ ίϯηϓτ ίϯηϓτ ίϯηϓτ ໨త ໨త ໨త ۀ຿ཁٻ ۀ຿ཁٻ ۀ຿ཁٻ *5ཁٻ ׆ಈ *5ཁٻ ׆ಈ ʲઓུཁٻʳ ʲۀ຿ཁٻʳ ʲ*5ཁٻʳ ʲ׆ಈʳ ཁٻ෼ੳπϦʔ ϝλࢥߟ ϝλࢥߟ ϝλࢥߟ ந৅త ۩ମత
  11. ཁ݅ఆٛ ࣄۀ ۀ຿ γεςϜ ιϑτ ΢ΣΞ اը ۀ຿ཁ݅ఆٛ جຊઃܭ ৄࡉઃܭ

    ϓϩάϥϛϯά ୯ମςετ ίʔυϨϏϡʔ ݁߹ςετ γεςϜςετ डೖΕςετ ӡ༻ςετ ӡ༻ɾධՁ γεςϜཁ݅ఆٛ 8IBU3%3"ͰϞσϦϯά
  12. γεςϜڥք γεςϜ γεςϜ֎෦؀ڥ γεςϜՁ஋ ۀ຿ ۀ຿ ϏδωείϯςΩετਤ ։ൃͷ໨త ۀ຿ɾγεςϜ ֎෦γεςϜ

    γεςϜίϯςΩετਤ ཁٻ ཁٻ ཁٻϞσϧਤ #6$ #6$ #6$ਤ 6$ ۀ຿ϑϩʔਤ 6$ ར༻γʔϯ γφϦΦ ར༻γʔϯਤ 6$ 6$ෳ߹ਤ ৘ใϞσϧਤ 6$ ঢ়ଶϞσϧਤ ঢ়ଶ ঢ়ଶ όϦΤʔγϣϯɾ৚݅ਤ ৚݅ ৄࡉԽ ৄࡉԽ ৄࡉԽ ৄࡉԽ ࢀর ࢀর ৄࡉԽ શମʹཁٻΛ൓ө ࢀর #6$#VTJOFTT6TF$BTF 6$6TF$BTF ৄࡉԽ ը໘ ৘ใ ৚݅ Πϕϯτ ৘ใ ৘ใ ৘ใ γεςϜཁ݅ఆٛ ۀ຿ཁ݅ఆٛ Ձ஋ɾཁٻ ͷ֬ೝ ୭͕ ͲͷΑ͏ͳཁٻͷ΋ͱͰ ͲͷΑ͏ͳ ۀ຿ͷ ͲͷΑ͏ͳ ৔໘Ͱ ۀ຿ Ϣʔεέʔε ཁٻ ը໘ Πϕϯτ ৘ใ ৚݅ ԿΛ࢖͏͔ 3%3"ͷશମ૾ͦͷʢৄࡉʣ
  13. γεςϜڥք γεςϜ γεςϜ֎෦؀ڥ γεςϜՁ஋ ۀ຿ ۀ຿ ϏδωείϯςΩετਤ ։ൃͷ໨త ۀ຿ɾγεςϜ ֎෦γεςϜ

    γεςϜίϯςΩετਤ ཁٻ ཁٻ ཁٻϞσϧਤ #6$ #6$ #6$ਤ 6$ ۀ຿ϑϩʔਤ 6$ ར༻γʔϯ γφϦΦ ར༻γʔϯਤ 6$ 6$ෳ߹ਤ ৘ใϞσϧਤ 6$ ঢ়ଶϞσϧਤ ঢ়ଶ ঢ়ଶ όϦΤʔγϣϯɾ৚݅ਤ ৚݅ ը໘ ৘ใ ৚݅ Πϕϯτ ৘ใ ৘ใ ৘ใ γεςϜཁ݅ఆٛ ۀ຿ཁ݅ఆٛ Ձ஋ɾཁٻ ͷ֬ೝ 3%3"ͱந৅Խࢥߟ ϝλࢥߟ ந৅త ۩ମత
  14. ঊ.FUIPEͱ3%3"ͷ࿈ܞ γεςϜՁ஋ ։ൃͷ໨త ۀ຿ɾγεςϜ ֎෦γεςϜ γεςϜίϯςΩετਤ ཁٻ ཁٻ ཁٻϞσϧਤ ཁٻ

    Ϗδϣϯ ίϯηϓτ ίϯηϓτ ίϯηϓτ ໨త ໨త ໨త ۀ຿ཁٻ ۀ຿ཁٻ ۀ຿ཁٻ *5ཁٻ ׆ಈ *5ཁٻ ׆ಈ ʲઓུཁٻʳ ʲۀ຿ཁٻʳ ʲ*5ཁٻʳ ʲ׆ಈʳ ཁٻ෼ੳπϦʔ ໨త Ձ஋ ໨త Ձ஋ Ձ஋෼ੳϞσϧ ໨త Ձ஋ ঊ.FUIPE 3%3" Ϗδϣϯˠ։ൃͷ໨త ཁٻϞσϧਤΛཁٻ෼ੳπϦʔɺՁ஋෼ੳϞσϧͰ୅ସ͢Δ
  15. ઃܭɺϓϩάϥϛϯά ࣄۀ ۀ຿ γεςϜ ιϑτ ΢ΣΞ اը ۀ຿ཁ݅ఆٛ جຊઃܭ ৄࡉઃܭ

    ϓϩάϥϛϯά ୯ମςετ ίʔυϨϏϡʔ ݁߹ςετ γεςϜςετ डೖΕςετ ӡ༻ςετ ӡ༻ɾධՁ γεςϜཁ݅ఆٛ )PX*$0/*9ɺ%%%ͰϞσϦϯά
  16. *$0/*9ͱந৅Խࢥߟ ࢴࣳډ ϢʔεέʔεϞσϧ γʔέϯεਤ ςετܭը ϩόετωεਤ ಈత υϝΠϯϞσϧ ੩త ߋ৽ޙͷ

    υϝΠϯϞσϧ ΫϥεϞσϧ ίʔυ ୯ମςετ ϝλࢥߟ ϝλࢥߟ ϝλࢥߟ ϝλࢥߟ ۩ମత ந৅త ۩ମత
  17. 3%3"ͱ*$0/*9ͷ࿈ܞ ͦͷ ϢʔεέʔεϞσϧ γεςϜ֎෦؀ڥ γεςϜՁ஋ ۀ຿ ۀ຿ ϏδωείϯςΩετਤ ։ൃͷ໨త ۀ຿ɾγεςϜ

    ֎෦γεςϜ γεςϜίϯςΩετਤ #6$ #6$ #6$ਤ 6$ ۀ຿ϑϩʔਤ ৄࡉԽ ৄࡉԽ ৄࡉԽ ࢴࣳډ ϢʔεέʔεϞσϧ
  18. 3%3"ͱ*$0/*9ͷ࿈ܞ ͦͷ 6$ ۀ຿ϑϩʔਤ 6$ 6$ෳ߹ਤ ৘ใϞσϧਤ ৄࡉԽ ࢀর ը໘

    ৘ใ ৚݅ Πϕϯτ ৘ใ ৘ใ ৘ใ ϩόετωεਤ 6$ ۀ຿ϑϩʔਤ ৚݅ υϝΠϯϞσϧ ߋ৽ޙͷ υϝΠϯϞσϧ ΫϥεϞσϧ ίʔυ ୯ମςετ ৘ใϞσϧਤʹ֘౰
  19. %%%ࣄۀɺۀ຿Λιϑτ΢ΣΞͰදݱ͢Δ ࣄۀ ۀ຿ γεςϜ ιϑτ ΢ΣΞ اը ۀ຿ཁ݅ఆٛ جຊઃܭ ৄࡉઃܭ

    ϓϩάϥϛϯά ୯ମςετ ίʔυϨϏϡʔ ݁߹ςετ γεςϜςετ डೖΕςετ ӡ༻ςετ ӡ༻ɾධՁ γεςϜཁ݅ఆٛ Ҿ༻ιϑτ΢ΣΞσβΠϯ೥݄߸ ʮυϝΠϯۦಈઃܭೖ໳ʯ
  20. %%%ͷશମ૾ ݱ࣮ੈքͷ஌ࣝ ώτɺϞϊɺΧωɺ৘ใͳͲ ܦӦऀ ։ൃऀ ۀ຿୲౰ऀ ϢϏΩλεݴޠ ʢಉ͡༻ޠͰ࿩͢ 1SFTFOUBUJPO૚ *OGSBTUSVDUVSF૚

    "QQMJDBUJPO૚ %PNBJO૚ ϨΠϠʔυΞʔΩςΫνϟ υϝΠϯϞσϧ ϞσϦϯά ݱ࣮Λந৅Խ ˞ଞʹҎԼͷΑ͏ͳ΋ͷ͕ଘࡏ͢Δ ɾϔΩαΰφϧΞʔΩςΫνϟ ɾΦχΦϯΞʔΩςΫνϟ ɾΫϦʔϯΞʔΩςΫνϟ ˣ υϝΠϯ૚͕ɺଞͷ૚ͷมߋʹӨڹ͞Ε ͳ͍͜ͱΛ໨ࢦͨ͠ΞʔΩςΫνϟʔ Ϋϥεɺ஋ΦϒδΣΫτɺू໿ ͳͲΛ࢖ͬͯදݱ͢Δ ˞Ϟσϧ Ϋϥεਤ ͱίʔυ͕Ұக ผͷυϝΠϯ ڥք͚ͮΒΕͨίϯςΩετ υϝΠϯ ΤΩεύʔτ ։ൃऀͱର࿩ ιϑτ΢ΣΞΞʔΩςΫνϟ
  21. %%%ͱந৅Խࢥߟ 1SFTFOUBUJPO૚ *OGSBTUSVDUVSF૚ "QQMJDBUJPO૚ %PNBJO૚ ϨΠϠʔυΞʔΩςΫνϟ υϝΠϯϞσϧ ϞσϦϯά ݱ࣮Λந৅Խ Ϋϥεɺ஋ΦϒδΣΫτɺू໿

    ͳͲΛ࢖ͬͯදݱ͢Δ ˞Ϟσϧ Ϋϥεਤ ͱίʔυ͕Ұக ผͷυϝΠϯ ڥք͚ͮΒΕͨίϯςΩετ ݱ࣮ੈքͷ஌ࣝ ώτɺϞϊɺΧωɺ৘ใͳͲ υϝΠϯ ΤΩεύʔτ ந৅త ۩ମత ίʔυ Ϋϥεਤ ۩ମత ந৅త ιϑτ΢ΣΞΞʔΩςΫνϟ
  22. ঊ.FUIPEɺ3%3"ͱ%%%ͷ࿈ܞ υϝΠϯϞσϧ ϞσϦϯά ݱ࣮Λந৅Խ اըɾཁ݅ఆٛ ʲঊ.FUIPEʳ ɾཁٻ෼ੳπϦʔ ʲ3%3"ʳ ɾγεςϜίϯςΩετਤ ɾϏδωείϯςΩετਤ

    ɾϏδωεϢʔεέʔεਤ ɾۀ຿ϑϩʔਤ ɾར༻γʔϯਤ ɾόϦΤʔγϣϯɾ৚݅ਤ ɾϢʔεέʔεෳ߹ਤ ϞσϦϯά ݱ࣮Λந৅Խ υϝΠϯϞσϧ ݱ࣮ੈքͷ஌ࣝ ώτɺϞϊɺΧωɺ৘ใͳͲ υϝΠϯ ΤΩεύʔτ
  23. ঊ.FUIPEɺ3%3"ɺ*$0/*9ɺ%%%͸૬ੑ͕ྑ͍ ۀ຿ ը໘ Πϕϯτ ৘ใ ཁٻ Ϣʔε έʔε Ϗδωε ϧʔϧ

    Ձ஋ ՝୊ ΞΠσΞ σʔλ ৼ෣͍ ϓϩάϥϜ Ϋϥε ࢓༷ ΞΠίϯͱؔ࿈Λ׆༻ͨ͠ख๏ͳͷͰɺͭͳ͛ͯ࢖͏ͱޮՌత