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

ソフトウェアアーキテクチャ・ ハードパーツ: Software Architecture Th...

Koji SHIMADA
November 29, 2022

ソフトウェアアーキテクチャ・ ハードパーツ: Software Architecture The Hard Parts

ソフトウェアアーキテクチャ・ハードパーツ - Forkwell Library #12 での発表資料です
https://forkwell.connpass.com/event/265858/

動画: https://www.youtube.com/watch?v=6eCiC8oISYc

#Forkwell_Library

Koji SHIMADA

November 29, 2022
Tweet

More Decks by Koji SHIMADA

Other Decks in Technology

Transcript

  1. ʰιϑτ΢ΣΞΞʔΩςΫνϟͷجૅʱ ୈ*෦جૅ ɾΞʔΩςΫνϟࢥߟ ɾϞδϡʔϧੑ ɾΞʔΩςΫνϟಛੑ ɾΞʔΩςΫνϟಛੑΛ໌Β͔ʹ͢Δ ɾΞʔΩςΫνϟಛੑͷܭଌͱ౷੍ ɾΞʔΩςΫνϟಛੑͷείʔϓ ɾίϯϙʔωϯτϕʔεࢥߟ ୈ**෦ΞʔΩςΫνϟελΠϧ

    ɾϨΠϠʔυΞʔΩςΫνϟ ɾύΠϓϥΠϯΞʔΩςΫνϟ ɾϚΠΫϩΧʔωϧΞʔΩςΫνϟ ɾαʔϏεϕʔεΞʔΩςΫνϟ ɾΠϕϯτۦಈΞʔΩςΫνϟ ɾεϖʔεϕʔεΞʔΩςΫνϟ ɾΦʔέετϨʔγϣϯۦಈαʔϏεࢦ޲ΞʔΩςΫνϟ ɾϚΠΫϩαʔϏεΞʔΩςΫνϟ ɾద੾ͳΞʔΩςΫνϟελΠϧΛબͿ ୈ***෦ςΫχοΫͱιϑτεΩϧ ɾΞʔΩςΫνϟܾఆ ɾΞʔΩςΫνϟ্ͷϦεΫΛ෼ੳ͢Δ ɾΞʔΩςΫνϟͷਤղ΍ϓϨθϯςʔγϣϯ ɾޮՌతͳνʔϜʹ͢Δ ɾަবͱϦʔμʔγοϓͷεΩϧ ɾΩϟϦΞύεΛ։͘
  2. 4ZTPQT4RVBEαʔΨ ໰୊Λଟ๊͑ͨ͘ϨΨγʔͰେن໛ͳϞϊϦγοΫγεςϜͷ໰୊Λʢ෼ࢄγεςϜʹ͢Δ͜ ͱͰʣͲ͏ղܾ͍͔ͯ͘͠ ސ٬ 4ZTPQT4RVBEΤΩεύʔτ ผγεςϜ Ϛωʔδϟʔ γεςϜ؅ཧऀ w Ϣʔβʔొ࿥

    w νέοτ࡞੒ w Ξϯέʔτొ࿥ w νέοτׂΓ౰ͯ w νέοτ׬ྃ w φϨοδϕʔεݕࡧ w Ϣʔβʔ؅ཧ w ΤΩεύʔτ؅ཧ w Ϩϙʔτ࡞੒ w ੥ٻॲཧ
  3. ɹষʮϕετϓϥΫςΟεʯ͕ͳ͍ͱͲ͏ͳΔʁ ɹষιϑτ΢ΣΞΞʔΩςΫνϟʹ͓͚Δ݁߹ͷݟ͚ͭํ ɹষιϑτ΢ΣΞΞʔΩςΫνϟͷϞδϡʔϧԽ ɹষΞʔΩςΫνϟͷ෼ղ ɹষίϯϙʔωϯτϕʔε෼ղύλʔϯ ɹষۀ຿σʔλͷ෼ղ ɹষαʔϏεͷཻ౓ ɹষ࠶ར༻ύλʔϯ ɹষσʔλͷॴ༗ݖͱ෼ࢄτϥϯβΫγϣϯ ষ෼ࢄσʔλΞΫηε

    ষ෼ࢄϫʔΫϑϩʔͷ؅ཧ ষτϥϯβΫγϣφϧαʔΨ ষίϯτϥΫτ ষ෼ੳσʔλͷ؅ཧ ষಠࣗͷτϨʔυΦϑ෼ੳΛߏங͢Δ 4ZTPQT4RVBEαʔΨͰͷΤϐιʔυΛϕʔεʹ ΞʔΩςΫνϟ্ͷ໰୊ʹऔΓ૊ΜͰ͍͘ ϞϊϦγοΫͳγεςϜΛͲ͏෼ղ͍͔ͯ͘͠
  4. ɹষʮϕετϓϥΫςΟεʯ͕ͳ͍ͱͲ͏ͳΔʁ ɹষιϑτ΢ΣΞΞʔΩςΫνϟʹ͓͚Δ݁߹ͷݟ͚ͭํ ɹষιϑτ΢ΣΞΞʔΩςΫνϟͷϞδϡʔϧԽ ɹষΞʔΩςΫνϟͷ෼ղ ɹষίϯϙʔωϯτϕʔε෼ղύλʔϯ ɹষۀ຿σʔλͷ෼ղ ɹষαʔϏεͷཻ౓ ɹষ࠶ར༻ύλʔϯ ɹষσʔλͷॴ༗ݖͱ෼ࢄτϥϯβΫγϣϯ ষ෼ࢄσʔλΞΫηε

    ষ෼ࢄϫʔΫϑϩʔͷ؅ཧ ষτϥϯβΫγϣφϧαʔΨ ষίϯτϥΫτ ষ෼ੳσʔλͷ؅ཧ ষಠࣗͷτϨʔυΦϑ෼ੳΛߏங͢Δ 4ZTPQT4RVBEαʔΨͰͷΤϐιʔυΛϕʔεʹ ΞʔΩςΫνϟ্ͷ໰୊ʹऔΓ૊ΜͰ͍͘ ϞϊϦγοΫͳγεςϜΛͲ͏෼ղ͍͔ͯ͘͠ ෼ࢄγεςϜͰ௚໘͢Δ೉୊ΛͲ͏ܾఆ͍͔ͯ͘͠
  5. σʔλॴ༗ݖΛ Ͳ͏ׂΓ౰ͯΔ͔ ϫʔΫϑϩʔΛ Ͳ͏࣮ݱ͢Δ͔ αʔϏεͷద੾ͳཻ౓Λ Ͳ͏ݟ͚ͭΔ͔ ຌྫ ӨڹΛड͚Δߟྀ͢Δඞཁ͕͋Δ αʔϏεؒ௨৴ͷ ํࣜΛͲ͏͢Δ͔

    ίϯτϥΫτ ಉظඇಉظ બ୒ࢶʹΑͬͯ͸ӨڹΛड͚Δߟྀ͢Δඞཁ͕͋Δ ෼ࢄγεςϜͷ࣮ݱͰ௚໘͢Δ͞·͟·ͳྗͱτϨʔυΦϑ
  6. σʔλॴ༗ݖΛ Ͳ͏ׂΓ౰ͯΔ͔ ϫʔΫϑϩʔΛ Ͳ͏࣮ݱ͢Δ͔ ڞ௨తͳίʔυΛ Ͳ͏ѻ͏͔ αʔϏεͷద੾ͳཻ౓Λ Ͳ͏ݟ͚ͭΔ͔ ຌྫ ӨڹΛड͚Δߟྀ͢Δඞཁ͕͋Δ

    αʔϏεؒ௨৴ͷ ํࣜΛͲ͏͢Δ͔ ίϯτϥΫτ ಉظඇಉظ બ୒ࢶʹΑͬͯ͸ӨڹΛड͚Δߟྀ͢Δඞཁ͕͋Δ ෼ࢄγεςϜͷ࣮ݱͰ௚໘͢Δ͞·͟·ͳྗͱτϨʔυΦϑ
  7. σʔλॴ༗ݖΛ Ͳ͏ׂΓ౰ͯΔ͔ ϫʔΫϑϩʔΛ Ͳ͏࣮ݱ͢Δ͔ ڞ௨తͳίʔυΛ Ͳ͏ѻ͏͔ ॴ༗͍ͯ͠ͳ͍σʔλʹ Ͳ͏ΞΫηε͢Δ͔ αʔϏεͷద੾ͳཻ౓Λ Ͳ͏ݟ͚ͭΔ͔

    ຌྫ ӨڹΛड͚Δߟྀ͢Δඞཁ͕͋Δ αʔϏεؒ௨৴ͷ ํࣜΛͲ͏͢Δ͔ ίϯτϥΫτ ಉظඇಉظ બ୒ࢶʹΑͬͯ͸ӨڹΛड͚Δߟྀ͢Δඞཁ͕͋Δ ෼ࢄγεςϜͷ࣮ݱͰ௚໘͢Δ͞·͟·ͳྗͱτϨʔυΦϑ
  8. σʔλॴ༗ݖΛ Ͳ͏ׂΓ౰ͯΔ͔ σʔλ੔߹ੑΛ Ͳ͏֬อ͢Δ͔ ϫʔΫϑϩʔΛ Ͳ͏࣮ݱ͢Δ͔ ڞ௨తͳίʔυΛ Ͳ͏ѻ͏͔ ॴ༗͍ͯ͠ͳ͍σʔλʹ Ͳ͏ΞΫηε͢Δ͔

    αʔϏεͷద੾ͳཻ౓Λ Ͳ͏ݟ͚ͭΔ͔ ຌྫ ӨڹΛड͚Δߟྀ͢Δඞཁ͕͋Δ αʔϏεؒ௨৴ͷ ํࣜΛͲ͏͢Δ͔ ίϯτϥΫτ ಉظඇಉظ બ୒ࢶʹΑͬͯ͸ӨڹΛड͚Δߟྀ͢Δඞཁ͕͋Δ ෼ࢄγεςϜͷ࣮ݱͰ௚໘͢Δ͞·͟·ͳྗͱτϨʔυΦϑ
  9. σʔλॴ༗ݖΛ Ͳ͏ׂΓ౰ͯΔ͔ σʔλ੔߹ੑΛ Ͳ͏֬อ͢Δ͔ ϫʔΫϑϩʔΛ Ͳ͏࣮ݱ͢Δ͔ ڞ௨తͳίʔυΛ Ͳ͏ѻ͏͔ ॴ༗͍ͯ͠ͳ͍σʔλʹ Ͳ͏ΞΫηε͢Δ͔

    αʔϏεͷద੾ͳཻ౓Λ Ͳ͏ݟ͚ͭΔ͔ ຌྫ ӨڹΛड͚Δߟྀ͢Δඞཁ͕͋Δ αʔϏεؒ௨৴ͷ ํࣜΛͲ͏͢Δ͔ ίϯτϥΫτ ಉظඇಉظ બ୒ࢶʹΑͬͯ͸ӨڹΛड͚Δߟྀ͢Δඞཁ͕͋Δ ෼ࢄγεςϜͷ࣮ݱͰ௚໘͢Δ͞·͟·ͳྗͱτϨʔυΦϑ
  10. σʔλॴ༗ݖΛ Ͳ͏ׂΓ౰ͯΔ͔ σʔλ੔߹ੑΛ Ͳ͏֬อ͢Δ͔ ϫʔΫϑϩʔΛ Ͳ͏࣮ݱ͢Δ͔ ڞ௨తͳίʔυΛ Ͳ͏ѻ͏͔ ॴ༗͍ͯ͠ͳ͍σʔλʹ Ͳ͏ΞΫηε͢Δ͔

    αʔϏεͷద੾ͳཻ౓Λ Ͳ͏ݟ͚ͭΔ͔ ຌྫ ӨڹΛड͚Δߟྀ͢Δඞཁ͕͋Δ αʔϏεؒ௨৴ͷ ํࣜΛͲ͏͢Δ͔ ίϯτϥΫτ ಉظඇಉظ બ୒ࢶʹΑͬͯ͸ӨڹΛड͚Δߟྀ͢Δඞཁ͕͋Δ ෼ࢄγεςϜͷ࣮ݱͰ௚໘͢Δ͞·͟·ͳྗͱτϨʔυΦϑ ষ࠶ར༻ύλʔϯ ̓ষαʔϏεͷཻ౓ ̕ষσʔλͷॴ༗ݖͱ෼ࢄτϥϯβΫγϣϯ ষ෼ࢄσʔλΞΫηε ষ෼ࢄϫʔΫϑϩʔͷ؅ཧ ষίϯτϥΫτ ষτϥϯβΫγϣφϧαʔΨ
  11. σʔλॴ༗ݖΛ Ͳ͏ׂΓ౰ͯΔ͔ σʔλ੔߹ੑΛ Ͳ͏֬อ͢Δ͔ ϫʔΫϑϩʔΛ Ͳ͏࣮ݱ͢Δ͔ ڞ௨తͳίʔυΛ Ͳ͏ѻ͏͔ ॴ༗͍ͯ͠ͳ͍σʔλʹ Ͳ͏ΞΫηε͢Δ͔

    αʔϏεͷద੾ͳཻ౓Λ Ͳ͏ݟ͚ͭΔ͔ ຌྫ ӨڹΛड͚Δߟྀ͢Δඞཁ͕͋Δ αʔϏεؒ௨৴ͷ ํࣜΛͲ͏͢Δ͔ ίϯτϥΫτ ಉظඇಉظ બ୒ࢶʹΑͬͯ͸ӨڹΛड͚Δߟྀ͢Δඞཁ͕͋Δ ෼ࢄγεςϜͷ࣮ݱͰ௚໘͢Δ͞·͟·ͳྗͱτϨʔυΦϑ ষ࠶ར༻ύλʔϯ ̓ষαʔϏεͷཻ౓ ̕ষσʔλͷॴ༗ݖͱ෼ࢄτϥϯβΫγϣϯ ষ෼ࢄσʔλΞΫηε ষ෼ࢄϫʔΫϑϩʔͷ؅ཧ ষίϯτϥΫτ ষτϥϯβΫγϣφϧαʔΨ
  12. αʔϏεͷཻ౓͸ɺཻ౓෼ղཁҼͱཻ౓౷߹ཁҼͷόϥϯεʹΑܾͬͯఆ͞ΕΔ w αʔϏεͷൣғͱػೳ w ίʔυมಈ཰ w εέʔϥϏϦςΟͱεϧʔϓοτ w ֦ுੑ w

    ଱ো֐ੑ w ηΩϡϦςΟ w σʔλϕʔετϥϯβΫγϣϯ w ϫʔΫϑϩʔͱίϨΦάϥϑΟ w ڞ༗ίʔυ w σʔλؔ܎
  13. αʔϏεͷཻ౓͸ɺཻ౓෼ղཁҼͱཻ౓౷߹ཁҼͷόϥϯεʹΑܾͬͯఆ͞ΕΔ w αʔϏεͷൣғͱػೳ w ίʔυมಈ཰ w εέʔϥϏϦςΟͱεϧʔϓοτ w ֦ுੑ w

    ଱ো֐ੑ w ηΩϡϦςΟ w σʔλϕʔετϥϯβΫγϣϯ w ϫʔΫϑϩʔͱίϨΦάϥϑΟ w ڞ༗ίʔυ w σʔλؔ܎ ཧ૝ ݱ࣮
  14. σʔλॴ༗ݖΛ Ͳ͏ׂΓ౰ͯΔ͔ σʔλ੔߹ੑΛ Ͳ͏֬อ͢Δ͔ ϫʔΫϑϩʔΛ Ͳ͏࣮ݱ͢Δ͔ ڞ௨తͳίʔυΛ Ͳ͏ѻ͏͔ ॴ༗͍ͯ͠ͳ͍σʔλʹ Ͳ͏ΞΫηε͢Δ͔

    αʔϏεͷద੾ͳཻ౓Λ Ͳ͏ݟ͚ͭΔ͔ ຌྫ ӨڹΛड͚Δߟྀ͢Δඞཁ͕͋Δ αʔϏεؒ௨৴ͷ ํࣜΛͲ͏͢Δ͔ ίϯτϥΫτ ಉظඇಉظ બ୒ࢶʹΑͬͯ͸ӨڹΛड͚Δߟྀ͢Δඞཁ͕͋Δ ෼ࢄγεςϜͷ࣮ݱͰ௚໘͢Δ͞·͟·ͳྗͱτϨʔυΦϑ ষ࠶ར༻ύλʔϯ ̓ষαʔϏεͷཻ౓ ̕ষσʔλͷॴ༗ݖͱ෼ࢄτϥϯβΫγϣϯ ষ෼ࢄσʔλΞΫηε ষ෼ࢄϫʔΫϑϩʔͷ؅ཧ ষίϯτϥΫτ ষτϥϯβΫγϣφϧαʔΨ