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

PSA review

73b0a25ed03f649ec63ded82ce4ac7cb?s=47 nunulk
August 30, 2017

PSA review

「現場で役立つシステム設計の原則」をウェブサービスの現場で役立てたい at DDD Alliance! 現場で役立つシステム設計の原則 Night!

73b0a25ed03f649ec63ded82ce4ac7cb?s=128

nunulk

August 30, 2017
Tweet

More Decks by nunulk

Other Decks in Programming

Transcript

  1. ʮݱ৔Ͱ໾ཱͭγεςϜઃܭͷݪଇʯΛ ΢ΣϒαʔϏεͷݱ৔Ͱ໾ཱ͍ͯͨ OVOVML BU%%%"MMJBODFݱ৔Ͱ໾ཱͭγεςϜઃܭͷݪଇ/JHIU

  2. ࣗݾ঺հ w OVOVML w ϑϦʔϥϯεͷϓϩάϥϚʔ w ओʹ΢ΣϒαʔϏεͷΞϓϦέʔγϣϯ։ൃ w 1)1X-BSBWFM w

    +BWB΍/&5Ͱۀ຿ܥγεςϜ΍ͬͯͨ͜ͱ΋͋Γ ·ͨ͠
  3. w ʮݱ৔Ͱ໾ཱͭγεςϜઃܭ ͷݪଇʯͷॻධ w ΢ΣϒαʔϏε։ൃͷݱ৔ w ΢ΣϒαʔϏε։ൃͷݱ৔ʹ ͓͚Δຊॻͷ໾ཱͯํ ࠓ೔࿩͢͜ͱ

  4. ຊॻͷಛ௃  w ΦϒδΣΫτࢦ޲ઃܭʗϓϩάϥϛϯάΛɺ໨తͰ ͸ͳ͘ɺมߋΛָͰ҆શʹ͢ΔͨΊͷखஈͱ͍ͯ͠ Δ w ϦϑΝΫλϦϯάલͱޙͷίʔυྫʢ+BWBʣ͕ଟ਺ ࡌ͍ͬͯΔ w

    ΞϓϦέʔγϣϯͷίʔυͷΈΛର৅ͱͤͣɺςʔ ϒϧઃܭ΍63-ઃܭʹ΋ݴٴ͍ͯ͠Δ
  5. ຊॻͷಛ௃  w ܁Γฦ͠ମݧ͢Δ͜ͱΛਪ঑ w ෼ੳʗઃܭʗ࣮૷ͦΕͧΕͷϑΣʔζͰ୲౰ऀΛ෼ ͚ͳ͍͜ͱΛਪ঑ w ۀ຿ͷؔ৺ࣄͷ୯ҐΛɺͦͷ··ϓϩάϥϛϯά୯ Ґͱͯ͠ΫϥεͰදݱ͢Δ͜ͱΛਪ঑

  6. ΢ΣϒαʔϏεͷݱ৔ lҰํͰɺΠϯλʔωοταʔϏεͷ։ൃͳͲͰ͸ɺগ਺ͷ ٕज़ऀ͕͢΂ͯͷ޻ఔΛ୲౰͢Δέʔε͕૿͍͑ͯ·͢ɻ͠ ͔͠ɺͪ͜Βͷ৔߹͸ɺ෼ੳ΍ઃܭʹ΄ͱΜͲ࣌ؒΛ͔͚ͣ ʹɺͱʹ͔͘ϓϩάϥϛϯά͢Δɺͱ͍͏΍Γํ͕ଟ͍Α͏ Ͱ͢ɻ͜ͷ΍Γํ΋ɺ෼ੳ͠ͳ͕Βઃܭ͢Δͱ͍͏ΦϒδΣ Ϋτࢦ޲Β͍͠։ൃͷ΍ΓํͰ͸͋Γ·ͤΜɻz 1 ʮΦϒδΣΫτࢦ޲ͷ։ൃ͸͏·͍͍ͬͯ͘Δͷ͔ʯ

  7. ΢ΣϒαʔϏεͷݱ৔ lҰํͰɺΠϯλʔωοταʔϏεͷ։ൃͳͲͰ͸ɺগ਺ͷ ٕज़ऀ͕͢΂ͯͷ޻ఔΛ୲౰͢Δέʔε͕૿͍͑ͯ·͢ɻ͠ ͔͠ɺͪ͜Βͷ৔߹͸ɺ෼ੳ΍ઃܭʹ΄ͱΜͲ࣌ؒΛ͔͚ͣ ʹɺͱʹ͔͘ϓϩάϥϛϯά͢Δɺͱ͍͏΍Γํ͕ଟ͍Α͏ Ͱ͢ɻ͜ͷ΍Γํ΋ɺ෼ੳ͠ͳ͕Βઃܭ͢Δͱ͍͏ΦϒδΣ Ϋτࢦ޲Β͍͠։ൃͷ΍ΓํͰ͸͋Γ·ͤΜɻz 1 ʮΦϒδΣΫτࢦ޲ͷ։ൃ͸͏·͍͍ͬͯ͘Δͷ͔ʯ

  8. ΢ΣϒαʔϏεͷݱ৔ lҰํɺ෼ੳ΍ઃܭΛ͋·ΓߦΘͳ͍ϓϩάϥϛϯάॏࢹͷ ։ൃελΠϧ͸ɺͪΐͬͱن໛͕େ͖͘ͳΔͱɺίʔυͷݟ ௨͕͠ٸ଎ʹѱԽ͠·͢ɻ
 ͞Βʹ͔࣍Β࣍΁ͱ૿վஙΛ܁Γฦ͍ͯ͠Δ͏ͪʹɺख͕෇ ͚ΒΕͳ͍΄Ͳཧղ͕೉͘͠ɺ͓͍ͦΕͱมߋ͕Ͱ͖ͳ͍େ ͖ͳίʔυͷ͔ͨ·Γ͕ੜΈग़͞Ε·͢ɻz 1 ʮͲͪΒͷ΍ΓํͰ΋΍͔͍ͬͳιϑτ΢ΣΞ͕ੜ·Ε΍͍͢ʯ

  9. ΢ΣϒαʔϏεͷݱ৔ lҰํɺ෼ੳ΍ઃܭΛ͋·ΓߦΘͳ͍ϓϩάϥϛϯάॏࢹͷ ։ൃελΠϧ͸ɺͪΐͬͱن໛͕େ͖͘ͳΔͱɺίʔυͷݟ ௨͕͠ٸ଎ʹѱԽ͠·͢ɻ
 ͞Βʹ͔࣍Β࣍΁ͱ૿վஙΛ܁Γฦ͍ͯ͠Δ͏ͪʹɺख͕෇ ͚ΒΕͳ͍΄Ͳཧղ͕೉͘͠ɺ͓͍ͦΕͱมߋ͕Ͱ͖ͳ͍େ ͖ͳίʔυͷ͔ͨ·Γ͕ੜΈग़͞Ε·͢ɻz 1 ʮͲͪΒͷ΍ΓํͰ΋΍͔͍ͬͳιϑτ΢ΣΞ͕ੜ·Ε΍͍͢ʯ

  10. ͸͍ɺ͓ͬ͠ΌΔ௨ΓͰ͢ স

  11. ݴ͍༁͍ͤͯͩ͘͞͞

  12. TUBHFTPGCVTJOFTTHMPXUI TUBHFTPGCVTJOFTTHMPXUI &YJTUFODF 4VSWJWBM 4VDDFTT 5BLFP⒎ .BUVSJUZ

  13. ΢ΣϒαʔϏεͷݱ৔ w εϐʔυʼ඼࣭ w ΞδϟΠϧ˺ߦ͖౰ͨΓ͹ͬͨΓ w গ਺ਫ਼Ӷˠߴ͍ଐਓੑ ˞ݸਓͷײ૝Ͱ͢

  14. ͦ͏͍͏ݱ৔Ͱɺগ͠Ͱ΋ʮΦϒ δΣΫτࢦ޲Β͍͠։ൃʯΛ͢Δ ʹ͸Ͳ͏͢Ε͹͍͍ͩΖ͏͔ʁ

  15. ։ൃϓϩηεʗମ੍ lۀ຿Λཧղ͠੔ཧ͢ΔͨΊͷʮ෼ੳʯͱɺιϑτ΢Σ Ξͱͯ͠ͷ࣮ݱํ๏Λߟ͑ΔʮઃܭʯΛɺಉ͡ਓؒʗ νʔϜ͕Ұ؏ͯ͠୲౰͢Δ͜ͱ͕ޮՌతͰ͢ɻz 1 ʮυϝΠϯϞσϧΛத৺ʹͨ͠ιϑτ΢ΣΞ։ൃͷਐΊํʯ

  16. lۀ຿Λཧղ͠੔ཧ͢ΔͨΊͷʮ෼ੳʯͱɺιϑτ΢Σ Ξͱͯ͠ͷ࣮ݱํ๏Λߟ͑ΔʮઃܭʯΛɺಉ͡ਓؒʗ νʔϜ͕Ұ؏ͯ͠୲౰͢Δ͜ͱ͕ޮՌతͰ͢ɻz 1 ʮυϝΠϯϞσϧΛத৺ʹͨ͠ιϑτ΢ΣΞ։ൃͷਐΊํʯ ։ൃϓϩηεʗମ੍ Ͱ͖ͦ͏

  17. υΩϡϝϯςʔγϣϯ l෼ੳ͢Δਓ͕ؒઃܭ͠ɺઃܭ಺༰Λιʔείʔυͱ ͯ͠௚઀ه࿥͢ΔͷͰ͋Ε͹ɺ෼ੳऀͱઃܭऀɺઃܭ ऀͱ࣮૷ऀͷؒͰɺυΩϡϝϯτΛ࢖ͬͯ఻ୡ͢Δඞ ཁ͸͋Γ·ͤΜɻʢதུʣ෼ੳͱઃܭ͕Ұக͢Ε͹ɺ ιʔείʔυ͕υΩϡϝϯτͱͯ͠ػೳ͠·͢ɻz 1 ʮιʔείʔυΛୈҰڃͷυΩϡϝϯτͱͯ͠׆༻͢Δʯ

  18. l෼ੳ͢Δਓ͕ؒઃܭ͠ɺઃܭ಺༰Λιʔείʔυͱ ͯ͠௚઀ه࿥͢ΔͷͰ͋Ε͹ɺ෼ੳऀͱઃܭऀɺઃܭ ऀͱ࣮૷ऀͷؒͰɺυΩϡϝϯτΛ࢖ͬͯ఻ୡ͢Δඞ ཁ͸͋Γ·ͤΜɻʢதུʣ෼ੳͱઃܭ͕Ұக͢Ε͹ɺ ιʔείʔυ͕υΩϡϝϯτͱͯ͠ػೳ͠·͢ɻz 1 ʮιʔείʔυΛୈҰڃͷυΩϡϝϯτͱͯ͠׆༻͢Δʯ υΩϡϝϯςʔγϣϯ Ͱ͖ͦ͏

  19. ෼ੳͱઃܭ lۀ຿ͷؔ৺ࣄΛώτʗϞϊʗίτͷͭʹ෼ྨ͢Δํ ๏͕͋Γ·͢ɻ͜ͷ෼ྨ͸ɺۀ຿ͷͱΒ͑ํͱͯ͠Θ ͔Γ΍͘͢ɺ·࣮ͨࡍʹ໾ʹཱͭ͜ͱ͕޿͘ೝΊΒΕ ͍ͯ·͢ɻz 1 ʮυϝΠϯΦϒδΣΫτͷݟ͚ͭํʯ

  20. ෼ੳͱઃܭ lۀ຿ͷؔ৺ࣄΛώτʗϞϊʗίτͷͭʹ෼ྨ͢Δํ ๏͕͋Γ·͢ɻ͜ͷ෼ྨ͸ɺۀ຿ͷͱΒ͑ํͱͯ͠Θ ͔Γ΍͘͢ɺ·࣮ͨࡍʹ໾ʹཱͭ͜ͱ͕޿͘ೝΊΒΕ ͍ͯ·͢ɻz 1 ʮυϝΠϯΦϒδΣΫτͷݟ͚ͭํʯ Ͱ͖ͦ͏

  21. ࣮૷ lυϝΠϯΦϒδΣΫτ͕)5.-ͷDMBTTଐੑͷ஋Λ ฦ͢͜ͷ΍Γํ͸ɺϞσϧʹϏϡʔͷؔ৺ࣄ͕ೖΓࠐ ΜͰ͍Δͱײ͡Δਓ͕͍Δ͔΋͠Ε·ͤΜɻ͔͠͠ɺ ͦ͏Ͱ͸͋Γ·ͤΜɻυϝΠϯΦϒδΣΫτͰදݱ͢ Δ࿦ཧతͳঢ়ଶΛɺϏϡʔଆ͕ར༻͢Δɺͱ͍͏ߟ͑ ํͰ͢ɻz 1 ʮ)5.-ͷDMBTTଐੑΛυϝΠϯΦϒδΣΫτ͔Βग़ྗ͢Δʯ

  22. ࣮૷ lυϝΠϯΦϒδΣΫτ͕)5.-ͷDMBTTଐੑͷ஋Λ ฦ͢͜ͷ΍Γํ͸ɺϞσϧʹϏϡʔͷؔ৺ࣄ͕ೖΓࠐ ΜͰ͍Δͱײ͡Δਓ͕͍Δ͔΋͠Ε·ͤΜɻ͔͠͠ɺ ͦ͏Ͱ͸͋Γ·ͤΜɻυϝΠϯΦϒδΣΫτͰදݱ͢ Δ࿦ཧతͳঢ়ଶΛɺϏϡʔଆ͕ར༻͢Δɺͱ͍͏ߟ͑ ํͰ͢ɻz 1 ʮ)5.-ͷDMBTTଐੑΛυϝΠϯΦϒδΣΫτ͔Βग़ྗ͢Δʯ Ͱ͖ͦ͏

  23. ଞʹ΋ ஋ΦϒδΣΫτʗϑΝʔετΫϥείϨΫγϣϯʗ۠෼ΦϒδΣ ΫτʗυϝΠϯϞσϧʗํ਑ʢ1PMJDZʣύλʔϯʗϦϑΝΫλ ϦϯάʗϓϩάϥϜͷࣗݾจॻԽʗαʔϏεΫϥεʗγφϦΦ Ϋϥεʗίτʹ஫໨͢ΔσʔλϕʔεઃܭʗλεΫϕʔεͷϢʔ βʔΠϯλʔϑΣʔεʗը໘ͷؔ৺ࣄͱҰகͤͨ͞Ϋϥεʗඇ ಉظϝοηʔδϯάʗ"1*Ϩεϙϯε༻ͷΫϥεʗϚΠΫϩαʔ ϏεʗϗϫΠτϘʔυʹॻ͍ͨϥϑεέονͷࣸਅʗۀ຿ཁ݅ Λͦͷ··ιʔείʔυͰදݱͰ͖ΔਓࡐΛɺެࣜʹ΋ඇެ ࣜʹ΋ධՁ͢Δ͜ͱ

  24. ଞʹ΋ ஋ΦϒδΣΫτʗϑΝʔετΫϥείϨΫγϣϯʗ۠෼ΦϒδΣ ΫτʗυϝΠϯϞσϧʗํ਑ʢ1PMJDZʣύλʔϯʗϦϑΝΫλ ϦϯάʗϓϩάϥϜͷࣗݾจॻԽʗαʔϏεΫϥεʗγφϦΦ Ϋϥεʗίτʹ஫໨͢ΔσʔλϕʔεઃܭʗλεΫϕʔεͷϢʔ βʔΠϯλʔϑΣʔεʗը໘ͷؔ৺ࣄͱҰகͤͨ͞Ϋϥεʗඇ ಉظϝοηʔδϯάʗ"1*Ϩεϙϯε༻ͷΫϥεʗϚΠΫϩαʔ ϏεʗϗϫΠτϘʔυʹॻ͍ͨϥϑεέονͷࣸਅʗۀ຿ཁ݅ Λͦͷ··ιʔείʔυͰදݱͰ͖ΔਓࡐΛɺެࣜʹ΋ඇެ ࣜʹ΋ධՁ͢Δ͜ͱ

    Ͱ͖ͦ͏
  25. None
  26. ΢ΣϒαʔϏεͷݱ৔ w εϐʔυʼ඼࣭ w ΞδϟΠϧ˺ߦ͖౰ͨΓ͹ͬͨΓ w গ਺ਫ਼Ӷˠߴ͍ଐਓੑ ˞ݸਓͷײ૝Ͱ͢

  27. ΢ΣϒαʔϏεͷݱ৔ w εϐʔυʼ඼࣭
 ˠશһ෼ੳʗઃܭͰ͖ΔΑ͏ʹ͍ͯ͘͠
 ˠ඼࣭Λ্͛Δ͜ͱͰεϐʔυΛ্͍͛ͯ͘
 ˠྫʣϦϑΝΫλϦϯάσʔɺࣾ಺ษڧձɺখ͞ ͳ1VMM3FRVFTUɺίʔυϨϏϡʔɺFUD

  28. ΢ΣϒαʔϏεͷݱ৔ w ΞδϟΠϧ˺ߦ͖౰ͨΓ͹ͬͨΓ
 ˠΤϯδχΞओಋͰ෼ੳʗઃܭʗ࣮૷αΠΫϧΛ ճ͍ͯͨ͘͠Ίʹɺ#J[Λר͖ࠐΉɺ6*69ɺϚʔ έςΟϯάྖҬ΁৯͍ࠐΉ
 ˠܭըత͔ͭૉૣ͘։ൃ͢Δ޻෉
 ˠྫʣϓϩτλΠϐϯάπʔϧɺνϟοτπʔϧɺ ৘ใڞ༗πʔϧɺΧϯόϯϘʔυɺ(PPHMF "OBMZUJDTɺFUD

  29. ΢ΣϒαʔϏεͷݱ৔ w গ਺ਫ਼Ӷˠߴ͍ଐਓੑ
 ˠਨ௚ʢػೳʣ෼ׂͰ୲౰Λ෼͚ͣʹɺͳΔ΂͘ ·Μ΂Μͳ͘ίʔυશମΛ৮ΔΑ͏ʹ͢Δ
 ˠφϨοδͷฏ४Խ
 ˠྫʣ੩తղੳπʔϧɺϦϑΝΫλϦϯάσʔɺ ࣾ಺ษڧձɺϖΞϓϩάϥϛϯά ɺίʔυϨϏϡʔɺ ίʔυεχϖοτͷγΣΞɺ৘ใڞ༗πʔϧɺFUD

  30. ݱ৔ͰऔΓೖΕΒΕͦ͏ͳ͜ͱΛ ͻͱͭͰ΋ଟ͘ຊॻ͔ΒϐοΫΞο ϓͯ͠ɺ׆༻͍͖͍ͯͨ͠Ͱ͢ɻ

  31. Έͳ͞Μͷݱ৔Ͱ͸͍ͭ͘औΓ ೖΕΒΕͦ͏Ͱ͠ΐ͏͔ʁ

  32. ݱ৔͔Β͸ҕৡͰ͢ɻ