pixiv Tech Salon LT
pixiv PAYͰӡ༻͍ͯ͠Δ ϑϨϯζύλʔϯ pixiv.inc@orekyuu
View Slide
RailsͷϨʔϧ͔Β֎ΕΔͰ͢
@orekyuupixiv PAYͷRailsϚϯ࠷ۙSpring Boot/JavaJVMͱ͓ֆඳ͖͕͖
ϏδωεϩδοΫͷஔ͖ʹࠔΔ• RailsͰجຊతʹARͷModelʹΨγΨγϩδοΫΛॻ͍ͯ͘• ෳͷModelʹ·͕ͨͬͨΓɺͲͷModelʹஔ͍ͯҧײͷ͋Δ ϩδοΫͬͯͳ͍Ͱ͔͢ʁ• ஔ͖ɺ΄͍͠Ͱ͢ΑͶʁ
Αͬ͠Ό4FSWJDFͩʂʂʂ
Service?• ͦͷServiceͬͯͲͷServiceͷ͜ͱݴͬͯΔʁ• Domain Service?• Application Service?• ΞϓϦํ໘ͳΒ֎෦APIݺͼग़͢ΫϥεΛServiceͬͯݴͬͨΓ͢ΔΑͶ
Serviceܯ͕ݱΕͯ໘
ϑϨϯζύλʔϯΛಋೖ
ϑϨϯζύλʔϯ• app/friendsσΟϨΫτϦʹೖΕΔϏδωεϩδοΫ͚ͩΛ࣋ͭΫϥε• Ϋϥεͷ໋໊erܥͰऴΘΔ˓˓͢ΔਓͬΆ໊͍લʹ͢Δ• Ϋϥεͷઌ಄ʹʮ˓˓͢Δͷ͕ಘҙͳϑϨϯζʯͱ͍͏ίϝϯτΛೖΕΔྫ͑PushNotificator, SlackPostmanͳͲ
ʁʁʁʮͦΕͬͯ4FSWJDFͰ͆ʯ
ϑϨϯζύλʔϯͷޮՌ• ͕ٞΘΒ͔͘ͳͬͨ• ʮͦΕͦͷΫϥεͷͰͳ͍ͷͰʁʯˠ• ʮ͜ΕͩͱΩϟϥཱͬͯͳ͍ΑͶʁʯʮͷ͚ͷͰʁ͆ʯ• ServiceϝιουΛҰͭʹ͢Δ͖Έ͍ͨͳ͕ٞͳ͘ͳͬͨ• ਖ਼͠͞ͷٞͰͳ͘ϑϨϯζΛϏδωεʹ߹Θ͍ͤͯ͘• ػೳͱϑϨϯζ͕ରԠ͢ΔͷͰमਖ਼Օॴ͕Θ͔Γ͘͢ͳͬͨ
ʮServiceϝιουҰ͔ͭ࣋ͨ͠ͳ͍ʯ
ʮ͏Δͤ͐ʂδϟ˓ϦύʔΫ Ͱڐ͞ΕΔΜͩΑʂʯ
มͳ໊લΛ͚ͭΔ• ৽͘͠ೖͬͨϓϩδΣΫτʹapp/friendsͬͯ͋Δͱܯռ͠·ͤΜʁ• ܯռ͢Δͱ৮Γͨ͘ͳ͘ͳΔ• ʮkessai_suruyatsu_saisin.rbʯͱ͔ාͯ͘৮Γͨ͘ͳ͍Ͱ͠ΐ͆
มͳ໊લΛ͚ͭΔ• ͳΜͱ͔Serviceͱ͔ͳΜͱ͔Managerͱ͔ใ͕ແ͚ͩͲੜ·Ε͕ͪ• ໊લΛݟͨͱ͖ʹ͔ͬͨؾʹͳΕͯ͠·͏• ݁Ռྔ࢈͞Εͯ͠·͏• ݟͨ͜ͱͷͳ͍ͷܯռ৺͕ಇ͘• ʮͳʹ͜Εා͍ɻ৮Βͳ͍Ͱ͓͜͏ʯ• ʮͳΜͰ͔͢͜Εʯ
͋͑ͯϨʔϧ͔ΒͣΕΔ• ֎ΕΔͱ͖શྗͰ• ܯռ৺Λ࣋ͨͤΔɻϨʔϧ͔Β֎Εͨͷʹܯռͤ͞Δ• ͔ͬͨؾʹͤ͞ͳ͍ɻ͝·͔͞ͳ͍ɻ