Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
όονΛ࡞Βͳ͖Ό ͱͳͬͨͱ͖ʹߟ͑Δ͜ͱ JJUG CCC 2024 Spring @irof
Slide 2
Slide 2 text
͓͠ͳ͕͖ • όονͬͯʁ • όονͱWebAPI • όονղମ • όονΛ࡞Βͳ͖Όͱͳͬͨͱ͖ʹߟ͑Δ͜ͱ ʻຊηογϣϯͷझࢫʼ NO: όονΛ࡞Βͳ͖ΌˠͲ͏࡞ͬͨΒ͍͍ΜͩΖ͏ʁ YES: όονΛ࡞Βͳ͖Όˠ΄Μͱʹʁ
Slide 3
Slide 3 text
όονͬͯʁ
Slide 4
Slide 4 text
όονʢbatchʣͷҙຯ MacʹೖͬͯΔΟζμϜӳࣙయ MacʹೖͬͯΔεʔύʔେࣙྛ
Slide 5
Slide 5 text
• ࣙॻతʹʮҰଋʯʮҰմʯͰɺෳΛ·ͱΊͨͷɻ • Ұൠੈքతʹ2ݸҎ্ͷΑ͏ͳؾ͢Δ͚Ͳɺίϯϐϡʔλతʹ 0..n ͔ͳɻ • ͱʹ͔͘ʮ·ͱ·ͬͨͻͱͭʯͰ͋Δ͜ͱɻ • ͜͜ಛʹͳ͍ͱࢥ͏ɻ MacʹೖͬͯΔεʔύʔେࣙྛ
Slide 6
Slide 6 text
• ʮόονʯʮ·ͱ·ͬͨͻͱͭʯͩͬͨ • ʮόονॲཧʯͩͱʮҰఆྔ͋Δ͍Ұఆ࣌ؒ͝ͱʯͱ͔ݴ͍࢝ΊΔɻ • ʮ͝ͱʯʁԿ࣮ߦ͞ΕΔͷ͕҉ͷલఏʹͳ͍ͬͯΔʁ • ࣮ߦܖػʮόονॲཧʯʹؚΊΔͷʁ • ͳ͔ͳ͔Ṗɻ MacʹೖͬͯΔεʔύʔେࣙྛ
Slide 7
Slide 7 text
͜ͷࣙॻతʹ͜Ε͕ରͬΆ͍ MacʹೖͬͯΔεʔύʔେࣙྛ
Slide 8
Slide 8 text
• ʮόονॲཧʯͱʮϦΞϧλΠϜॲཧʯʁ • ʮόονʯͱʮϦΞϧʯର͡Όͳ͍ΑͶ • ϦΞϧͷରόʔνϟϧͩΖ͠ɻ • ͳ͓ʮόʔνϟϧεϨουʯʹର͢ΔͷʮϓϥοτϑΥʔϜεϨουʯ • ΦϑϥΠϯॲཧͱΦϯϥΠϯॲཧͬͯݴͬͨΓ͢Δͳɻ • ඇಉظॲཧͱಉظॲཧࣅͯͦ͏ɻࣅͯͦ͏͚ͩͲͪΐͬͱҧ͍ͦ͏ɻ ·͍͍͊
Slide 9
Slide 9 text
JavaͷੈքͰग़ͯ͘Δόονͷྫ • java.sql.Statement#executeBatch() • ෳͷSQLΛҰʹ࣮ߦ͢Δͷ • ໊લ͔ΒʮόονʯͰ͏ͷͱೝࣝ͞Ε͍ͯΔ͜ͱ͠͠ • ʮόονʯͰ͏ͷͰͳͯͩ͘ͳ……ͬͯΛͨ·ʹ͢Δ ʢຊηογϣϯਃ͠༁ఔͷJavaཁૉʣ
Slide 10
Slide 10 text
͍ͦ͜Μͳݴ༿͋Δ • όον • λεΫ • δϣϒ • ͜ΕΒ͕ಉ͡ͷΛࢦͯ͠Δ͜ͱ͋͠͠Δ • Ͳ͏ҧ͏ͷ͔ฉ͍ͯΈΑ͏ɺAIʹɻ
Slide 11
Slide 11 text
JetBrains AI • όον • όονॲཧɺҰ࿈ͷδϣϒΛࣗಈԽ͢ΔҰछͷॲཧํ๏Ͱ͢ɻҰʹଟͷδϣϒΛ ࣮ߦ͠ɺਓؒͷհೖΛ࠷খݶʹ͑·͢ɻόονॲཧɺΤϯυϢʔβʔͷૢ࡞ͳ͠Ͱ ఆظతʹ·ͨ༧ఆ͞Εͨ࣌ؒʹߦΘΕΔ͕͋Γ·͢ɻ • δϣϒ • δϣϒͱɺಛఆͷλεΫ·ͨҰ࿈ͷλεΫΛࢦ͢Ұൠతͳ༻ޠͰ͢ɻγεςϜͷί ϯςΩετʹґଘ͠ɺಛఆͷϓϩηε·ͨόονॲཧͷҰ෦Λࢦ͢͜ͱ͕͋Γ·͢ɻ • λεΫ • λεΫɺಛఆͷδϣϒΛྃ͢ΔͨΊʹ࣮ߦ͢Δඞཁͷ͋Δݸʑͷ࡞ۀΛࢦ͠·͢ɻ ͦΕಛఆͷ݁ՌΛୡ͢ΔͨΊͷҰ࿈ͷૢ࡞͔͠Ε·ͤΜɻ
Slide 12
Slide 12 text
ChatGPT • όον (Batch) • ఆٛ: ෳͷ࡞ۀॲཧΛҰ ׅ࣮ͯ͠ߦ͢ΔํࣜͰ͢ɻ • ಛ: Ϣʔβʔͷհೖͳ͠ ʹɺࣗಈతʹҰ࿈ͷ࡞ۀ͕ॱ ࣮࣍ߦ͞ΕΔɻ • ༻ྫ: σʔλϕʔεͷόο ΫΞοϓɺఆظతͳϨϙʔτ ੜɺόονॲཧγεςϜɻ • ͍ํ: όονॲཧɺεέ δϡʔϧʹج͍ͮͯࣗಈ࣮ߦ ͞ΕΔ͜ͱ͕ଟ͘ɺؒͳͲ ඇϐʔΫ࣌ʹ࣮ߦ͞ΕΔ͜ͱ ͕ଟ͍Ͱ͢ɻ • δϣϒ (Job) • ఆٛ: ίϯϐϡʔλγεςϜ ʹ͓͚ΔҰ࿈ͷ໋ྩϓϩά ϥϜͷ࣮ߦ୯ҐͰ͢ɻ • ಛ: δϣϒෳͷλεΫ εςοϓ͔Βߏ͞ΕΔ͜ ͱ͕ଟ͍ɻ • ༻ྫ: όονॲཧͷݸʑ ͷ࡞ۀɺσʔλੳδϣϒɺ Ϗϧυδϣϒɻ • ͍ํ: δϣϒɺόονॲ ཧͷதͷҰ෦ͱͯ͠ѻΘΕ Δ͜ͱ͕ଟ͘ɺδϣϒεέ δϡʔϥͳͲͷγεςϜʹ Αͬͯཧ͞ΕΔ͜ͱ͕ଟ͍ Ͱ͢ɻ • λεΫ (Task) • ఆٛ: ࣮ߦ͢ΔͨΊͷݸʑͷ ΞΫςΟϏςΟ࡞ۀͷ࠷খ ୯ҐͰ͢ɻ • ಛ: λεΫܰྔͰ͋Γɺ ௨ৗ࣌ؒͰྃ͢Δɻ • ༻ྫ: ΦϖϨʔςΟϯάγ εςϜͷλεΫཧɺࢄγ εςϜͷλεΫεέδϡʔϦ ϯάɻ • ͍ํ: λεΫɺෳͷλ εΫ͕ฒߦ࣮ͯ͠ߦ͞ΕΔ͜ ͱ͕ଟ͘ɺεϨουϓϩη εʹΑ࣮ͬͯߦ͞ΕΔ͜ͱ͕ ͋Γ·͢ɻ
Slide 13
Slide 13 text
ͱΓ͋͑ͣ͜͏ݴ͏ؔͬͯ͞ όον └── δϣϒ └── λεΫ ʔɻ·͊ͦΜͳײ͔͡ͳ͊ɻ
Slide 14
Slide 14 text
ͪͳΈʹjBatch(JSR-352)ͱSpringBatch • Batch/Job/Taskͷ֊ಉ͡ • όονΞϓϦέʔγϣϯʹෳͷJobΛ࣋ͭ • JobෳͷStepΛ࣋ͭ • Stepͷύλʔϯͱͯ͠ • Chunk, Batchlet(jBatch) • Chunk, Tasklet(SpringBatch) • ୯७ͳStepΛλεΫͱݺͿײ͡ • ·͊ಉ͡ײ͡ɻײ͡ɻ JSR 352ͷਤ
Slide 15
Slide 15 text
όονɺδϣϒɺλεΫ • Batch/Job/Taskͷ֊͕ҰൠతͬΆ͍Μ͚ͩͲ…… • ʮόονδϣϒʯͱݴͬͨΓ͢Δɻόονͳͷδϣϒͳͷɻ • ʮλεΫΛ࣮ߦ͢Δʯͬͯݴͬͨ࣌ʹόονͷ֓೦͕ͳ͔ͬͨΓ͢Δɻ • ֊ߏͳΜͯͳ͔ͬͨɻ • ༳Ε༳ΕɻͦΜͳΜͩΑͶɻ • ແཧʹೝࣝ߹Θͤͯ࿑ྗʹݟ߹͏ؾਖ਼͠ͳ͍ɻ
Slide 16
Slide 16 text
ੈͷதʹ͍ΖΜͳόον͕͋Δͳ͊ͱ • ݄࣍࣍ͷചΓ্͛Λूܭ͢Δͷ • ாථΛग़ྗ͢Δͷ • DBͷόοΫΞοϓΛͱΔͷ • Ϣʔβʔͷϝʔϧૹ৴ • σʔλͷิਖ਼Λߦ͏ͷ • ʢ͓͖ͳόονΛࢥ͍ු͔͍ͯͩ͘͞ʣ
Slide 17
Slide 17 text
όονͬͯʁɿ·ͱΊʁ • ҰׅॲཧͰॲཧ͢Δͷ • ෳͷδϣϒλεΫ͕࣮ߦ͞Εɺ్தͰϢʔβʔͷૢ࡞ΛٻΊͳ͍ • ఆظతʹ࣮ߦ͞ΕΔΑ͏ʹεέδϡʔϦϯά͞ΕΔ • ͋ͨΓ͕όονͷಛͷީิ͔ͳʁ • ·ͱ·Μͳ͍Ͷɻ
Slide 18
Slide 18 text
όονͱWebAPI ͋Δ͍ଞͷॲཧܗଶ
Slide 19
Slide 19 text
ʮόονͱWebAPIʯ͚ͬͯํඍົ όονॲཧ ϦΞϧλΠϜॲཧ ΦϑϥΠϯॲཧ ΦϯϥΠϯॲཧ ඇಉظॲཧ ಉظॲཧ Ұׅॲཧ ஞ࣍ॲཧ δϣϒ τϥϯβΫγϣϯ ... ... ಉ͡ͷΛࢦͯͨ͠Γɺҧ͏ͷΛࢦͯͨ͠Γ͢Δɻ
Slide 20
Slide 20 text
• ͜ͷϞσϧ߹͍ͬͯΔΜ͚ͩΕͲɺؒҧ͍ͬͯΔɻ • ͱ͍͏͔શͯͷϞσϧ߹͍ͬͯΔؒ͠ҧ͍ͬͯΔɻ ͪΐͬͱઢɿʮAͱͦΕҎ֎ʯͱ͍͏ߟ͑ํ ੈքͷશͯ όον ϦΞϧλΠϜʢόονҎ֎ʣ ੈքͷશͯ ϦΞϧλΠϜ όονʢϦΞϧλΠϜҎ֎ʣ
Slide 21
Slide 21 text
• ΄ͱΜͲશͯͷॲཧ͕ʮϦΞϧλΠϜʯͰɺิॿతʹʮόονʯ͕͋Δ߹ɻ • ʮϦΞϧλΠϜͰͳ͍ͷʯͯ͢ʮόονʯͱݺͿɻ • ͦΕ͕ʮόονʯͰͳͯ͘ɻ • όονʹدͤ͢Δɻ • ཧ୯Ґͱͯ͠ͷݺͼํͰଟ͘ݟΒΕΔɻ ߹͍ͬͯΔจ຺ ੈքͷશͯ όονʢݺশʣ ϦΞϧλΠϜ
Slide 22
Slide 22 text
• Λ͢Δʹ͋ͨͬͯʮόονʯ͕ᐆດͳͷͰɺόονͱόονҎ֎ͷϞσϧͰڥքΛ ୳͍͖ͬͯ·͢ɻ όονͷڥքΛ୳ΔͨΊʹ͚ͯΈΔ ੈքͷશͯ όονʁҎ֎ ੈքͷશͯ όονʁҎ֎ όονʁ όονʁ ͍ग़ͨ͠Γ ઢҾ͖Λͨ͠Γ
Slide 23
Slide 23 text
งғؾͰɿόονͬΆ͍ॲཧ • Ұʹଟ͘ͷσʔλΛॲཧ͢Δ • Ұ࿈ͷॲཧͷͳ͔ͰਓؒͷஅΛڼ͙ඞཁ͕ͳ͍ • ࣮ߦ͙ͯ݁͢͠Ռ͕͔ΔΑ͏ͳଈ࣌ੑΛٻΊͳ͍ • ॲཧ͕͍࣌ؒ • τϥϯβΫγϣϯͷACID͕ཁٻ͞Ε͕ͪ • ίϯϐϡʔλϦιʔεΛͨ͘͞Μ༻͢Δ • ఆظతʹ࣮ߦ͞ΕΔ • ؒʹ࣮ߦ͞ΕΔ
Slide 24
Slide 24 text
งғؾͰɿόονͬΆ͘ͳ͍ॲཧ • ଈ࣌Ԡ͕ඞཁ • Ϣʔβʔͷରతͳೖྗ͕ඞཁ • ϦΞϧλΠϜͰ݁Ռ͕ө͞ΕΔ
Slide 25
Slide 25 text
ඪɿόονʹ͢Δ͔Λదʹஅ͢Δ • Ͱ͖ΔΑ͏ʹͳΓ͍ͨΑͶɻ • దͬͯͳΜͷʁͬͯɻ • ʮଈ࣌Ϩεϙϯε͕ඞཁͳͷରతͳͷҎ֎શ෦όονʯͬͯೝࣝͰγες Ϝ࡞ΕͪΌ͏͠ɺͦΕͬΆ͘ಈ͍ͨΓ͢Δɻ • ʮͬΆ͍ʯͱ͔ʮͬΆ͘ͳ͍ʯͱ͔ײ֮ྲྀੴʹڥքઢ͕ΏΔ;Θ͗͢ɻ
Slide 26
Slide 26 text
ਅ໘ʹߟྀ͢ΔͳΒ͜ͷลʁ • ଈ࣌ੑ͕ඞཁ͔൱͔ • ॲཧରͷσʔλϘϦϡʔϜ͕Ͳͷఔ͔ • Ϣʔβʔૢ࡞͕ॲཧதʹඞཁ͔൱͔ • ॲཧதͷใΛݟͯϢʔβʔͷৼΔ͍͕มΘΔ͔൱͔ • γεςϜϦιʔεͷ༻۩߹ • ͲͷΑ͏ͳΤϥʔϋϯυϦϯά͕Ͱ͖͏Δ͔ • ……
Slide 27
Slide 27 text
લஈͷόονͷಛͷީิΛݟͯΈΔ • ҰׅͰॲཧ͢Δ • ॲཧͷ్தͰϢʔβʔͷೖྗ͕ཁΒͳ͍ • εέδϡʔϧʹै࣮ͬͯߦ͞ΕΔ
Slide 28
Slide 28 text
લஈͷόονͷಛͷީิΛݟͯΈΔ • ҰׅͰॲཧ͢Δ • ؒҧ͍ͳ͘όονɻҰׅͰॲཧ͠ͳ͚ΕͳΒͳ͍ࣄ͕͋Δ͔Βόονɻ • ॲཧͷ్தͰϢʔβʔͷೖྗ͕ཁΒͳ͍ • ඞཁʹͳͬͨΒόονͰͳ͍ɻҰํͰෆཁʹόονͱݴ͑ͳ͍ɻ • εέδϡʔϧʹै࣮ͬͯߦ͞ΕΔ • εέδϡʔϧඞਢͰͳ͍ɻ࣮ߦ͍ͨ͠ͱ͖ʹ࣮ߦͯ͠όονɻ
Slide 29
Slide 29 text
લஈͷόονͷಛͷީิΛݟͯΈΔ • ҰׅͰॲཧ͢Δ • ؒҧ͍ͳ͘όονɻҰׅͰॲཧ͠ͳ͚ΕͳΒͳ͍ࣄ͕͋Δ͔Βόονɻ • ॲཧͷ్தͰϢʔβʔͷೖྗ͕ཁΒͳ͍ • ඞཁʹͳͬͨΒόονͰͳ͍ɻҰํͰෆཁʹόονͱݴ͑ͳ͍ɻ • εέδϡʔϧʹै࣮ͬͯߦ͞ΕΔ • εέδϡʔϧඞਢͰͳ͍ɻ࣮ߦ͍ͨ͠ͱ͖ʹ࣮ߦͯ͠όονɻ όονͷόονͨΔಛ
Slide 30
Slide 30 text
ͦΕͦΕͱͯ͠όον͕·ΕΔഎܠ • όονઐ༻ͷ࣮ߦڥ͕༻ҙ͞ΕΔ • ίϯϐϡʔλϦιʔε͕ઐ༗Ͱ͖Δ • ॲཧର͕େ͖͍ͨΊࢿରޮՌ͕େ͖͍ • ଈ࣌ॲཧ͕͍͠ͷͷԡ͠ࠐΈઌͱͯ͠ύλʔϯԽ͍ͯ͠Δ • όον͋Γ͖Ͱߟ͑ΒΕ͍ͯΔ • ͱ͔ʁଞ৭ʑ͋Δͱࢥ͏ɻ
Slide 31
Slide 31 text
όονͱWebAPIɿ·ͱΊ • όονͱόονҎ֎ͰฒͯΈͨ • ͜Ε͚ͩ͡Ό·ͩόονͷڥք͕ఆ·Βͳ͍ • ͱΓ͋͑ͣʮҰׅॲཧʯΛखֻ͔ΓʹόονͷղମʹऔΓΜͰΈΔ
Slide 32
Slide 32 text
όονղମ
Slide 33
Slide 33 text
͕݅ଟͯ͘ॲཧ͕͍͔࣌ؒΒόον • ͕݅ଟͯ͘ॲཧ͕͍࣌ؒͷόονͳΜ͚ͩ Ͳɺ͕݅ݮͬͨΓॲཧ͕࣌ؒ͘ͳͬͨΒόον ͡Όͳ͘ͳΔ͔ͬͯݴΘΕΔͱ͕ٙ͋Δɻ • ͋ͱʮόονͱWebAPIʯΈ͍ͨͳ͚ํΛ͍ͯ͠Δ ͷʹ৮ΕΔػձ͕͋ͬͯɺͦͷ࣌ʹʑͱߟ͑ͯͨͷ ͕͜Εɻ • ղମͨ͠Βਖ਼ମݟ͑ͯ͘ΔΜ͡Όͳ͍͔ͳʁͬͯɻ • ʮΘ͚ΔͱΘ͔Δʯ݁ߏΑ͋͘Δɻ
Slide 34
Slide 34 text
No content
Slide 35
Slide 35 text
ͱݴ͏͜ͱͰ͜ͷͰ͢ɻ ʢಡΈ͔ͨͬͨΒݕࡧͯ͠Έͯʣ
Slide 36
Slide 36 text
• ͯ͢ͷඇWebAPIͷॲཧΛόονͱݺͿͱγεςϜઃܭ͕ෳࡶʹͳΔɻ • όονॲཧͱεέδϡʔϧλεΫΛ۠ผ͢Δɻ • όονॲཧ: Ұׅॲཧʹ͓͚ΔτϥϯβΫγϣϯཧ࠶࣮ߦͳͲෳࡶͳΛѻ͏ɻ • εέδϡʔϧλεΫ: ఆظతʹ࣮ߦ͞ΕΔॲཧɻݸผॲཧ୯७ͳ܁Γฦ͠ɻ • όονΛॲཧͱτϦΨʔʢWebAPIɺεέδϡʔϧλεΫɺඇಉظλεΫʣͰ͢ Δɻ • όονॲཧಛผͳઃܭ͕ඞཁ͕ͩɺεέδϡʔϧλεΫWebAPIͰସͰ͖Δͷ γϯϓϧʹઃܭ͢Δɻ • όονॲཧʹཔΓ͗͢ͳ͍ɻ
Slide 37
Slide 37 text
όονͷղମ όον
Slide 38
Slide 38 text
όονΛτϦΨʔͱॲཧʹ͚Δ όον τϦΨʔ ॲཧ
Slide 39
Slide 39 text
τϦΨʔΛ͚Δ εέδϡʔϥʔ τϦΨʔ ॲཧ Πϕϯτ ϚχϡΞϧ
Slide 40
Slide 40 text
τϦΨʔ • εέδϡʔϥʔ • ʮεέδϡʔϧͰಈ͘ͷόονʯͰͳ͍ɻ͕͜ͷηογϣϯͷझࢫͰ͢ɻ • Πϕϯτ • ϑΝΠϧ͕ஔ͔ΕͨͳͲͷΠϕϯτͰಈ͘όονଟ͋͘Δɻ • ࣮ߦ͢Δ͕݅ͬͨΒಈ͘ͱ͍͏ͷɻεέδϡʔϧΠϕϯτͱ͍͑ΠϕϯτͳΜ͚ͩͲɺผ Ͱѻ͏ɻ • ϚχϡΞϧ • खಈ࣮ߦ͞ΕΔόονɻ݁ՌΛͭ߹͕ଟ͍ɻಉظͰͭ͜ͱ͋ΕϙʔϦϯάͳͲͰ݁ՌΛ֬ ೝ͢Δ߹ɻ • εέδϡʔϧ͞Ε͍ͯΔόονͷखಈ࠶࣮ߦ͜͜ɻ ͜Ε͚͕͚ͩํͰͳ͍ɻଞͷ͚ํ͋ΔͩΖ͏ ͠ɺෆ͋Δͱࢥ͏ɻྫ͘Β͍ʹଊ͍͑ͯͩ͘͞ɻ
Slide 41
Slide 41 text
ॲཧΛ͚Δ εέδϡʔϥʔ Ұׅॲཧ τϦΨʔ ॲཧ Πϕϯτ ϚχϡΞϧ ݸผॲཧ
Slide 42
Slide 42 text
ॲཧ • Ұׅॲཧ • ܈Λ૬खʹ͢Δͷɻूܭͱ͔ɻ • όονग़ͳ͚ΕͳΒͳ͍ͷɻ • ݸผॲཧ • Ұͭͣͭॱ൪ʹॲཧ͢Δͷ͋Εɺฒྻʹॲཧ͢Δ߹͋Δ͚ΕͲɺॲཧͷຊ ମͱͯ͠ʮݸʯΛ૬खʹ͢Δͷɻ • ॲཧޮͷͨΊʹόονͱ͍͏ܗଶΛͱ͍ͬͯΔͷ͋Δɻ ͜Ε͚͕͚ͩํͰͳ͍ɻଞͷ͚ํ͋ΔͩΖ͏ ͠ɺෆ͋Δͱࢥ͏ɻྫ͘Β͍ʹଊ͍͑ͯͩ͘͞ɻ
Slide 43
Slide 43 text
ʮόονʯͱ͍͏մ͜ΕΒ͕͜Μ͕Β͕͍ͬͯΔ εέδϡʔϥʔ Ұׅॲཧ Πϕϯτ ϚχϡΞϧ ݸผॲཧ όον ݴ༿Ͱͷཁૉղɻ1ͭͷόονʹશ෦ೖͬͯΔΘ͚Ͱͳ͍͔ΒͳΜ͔ҧ͏ͳ͊ͱࢥ͍ͭͭɻ
Slide 44
Slide 44 text
͜ͷ͚ํͩͱ3*2Ͱ6ύλʔϯ τϦΨʔ ॲཧ୯Ґ όονʁ εέδϡʔϥʔ Ұׅॲཧ Y Πϕϯτ Ұׅॲཧ Y ϚχϡΞϧ Ұׅॲཧ Y εέδϡʔϥʔ ݸผॲཧ N Πϕϯτ ݸผॲཧ N ϚχϡΞϧ ݸผॲཧ N
Slide 45
Slide 45 text
όονʗඇόον • Ұׅॲཧ͕ඞཁͳͷόονͱ͔ͯͬ͠͠Γόον͢Δ • τϦΨʔઃܭʹΈࠐΜͰ͠·͏ • Ұׅॲཧ͕ඞਢͰͳ͍ͷόονʹ͠ͳ͍ • τϦΨʔͱݸผॲཧΛ໌֬ʹ͚ɺτϦΨʔʹΑΒͳ͍Α͏ʹ࡞Δ • τϦΨʔʹґଘͨ͠࡞ΓΛ͠ͳ͍͜ͱͰɺόονΏ͑ͷͱઓΘͳͯ͘ྑ͘ͳΔ
Slide 46
Slide 46 text
͜ΕͩͱͪΐͬͱΓͳ͍ • όονͱඇόονͷڥքઢΛʮҰׅॲཧ͔൱͔ʯͰҾ͘͜ͱͰ͖ͦ͏ • ͱݴ͑ࠓͷʮόονʯͷմͷ··ྨͯ͠ʮόονʯʹணͯ͠͠·͏ • ʮҰׅॲཧʯ͕͢͜͠Ͱ͋ͬͨΒʮόονʯʹͳΔ • ʮҰׅॲཧʯΛݟ͢ඞཁ͕͋Δ
Slide 47
Slide 47 text
͜Ε͕Ͳ͏ͯ͠ղͰ͖ͳ͍ͳΒ·ͱΊͯόονͩΖ͚Ͳ
Slide 48
Slide 48 text
͜Ε͕Ͳ͏ͯ͠ղͰ͖ͳ͍ͳΒ·ͱΊͯόονͩΖ͚Ͳ த͕͜͏ͱ͔ ͜Μͳײ͡ͱ͔
Slide 49
Slide 49 text
͜ͷΜόον͡Όͳ͍͔͠Εͳ͍
Slide 50
Slide 50 text
ղମͯ͠ཧ͢Δ • Ͳ͏ͯ͠ʮҰׅॲཧʯ͠ͳ͚ΕͳΒͳ͍ͱ͜ΖҎ֎ʮόονʯͱͯ͠ѻΘͳ͍ • ʮҰׅॲཧʯ͕ඞཁʹͯ͠ɺͦ͜Ͱѻ͏ͷΛՄೳͳݶΓݮΒ͢ • ʮҰׅॲཧʯͷจ຺ʹෳࡶͳۀ͕ೖΔͷΛۃྗආ͚Δ • ۀతͳෳࡶੑͱγεςϜతͳෳࡶੑΛࠞͥͳ͍ • ࠞ͟Δͷํͳ͍ͷͰɺͲ͏͚ͯ͠Εͳ͍ͳΒෲΛׅΔ
Slide 51
Slide 51 text
όονͷѻ͍ํ ʢܰ͘ʣ
Slide 52
Slide 52 text
͜ͷ͚ํͩͱ3*2=6ύλʔϯͰ τϦΨʔ ॲཧ୯Ґ όονʁ εέδϡʔϥʔ Ұׅॲཧ Y Πϕϯτ Ұׅॲཧ Y ϚχϡΞϧ Ұׅॲཧ Y εέδϡʔϥʔ ݸผॲཧ N Πϕϯτ ݸผॲཧ N ϚχϡΞϧ ݸผॲཧ N ͜ͷࢠͨͪ
Slide 53
Slide 53 text
εέδϡʔϥʔʴݸผ πΠʔτͰʮεέδϡʔϧλεΫʯͱݴ͍ͬͯͨͷ
Slide 54
Slide 54 text
εέδϡʔϥʔΛͲ͜Ͱ͔࣋ͭ • ΞϓϦέʔγϣϯ֎ • OSͷεέδϡʔϥʔͱ͔͋Δ͠ɺΫϥυڥͰ৭ʑ༻ҙ͞ΕͯΔ • ͔ͦ͜ΒΞϓϦέʔγϣϯΛ͚ͭͭΕ͍͍ • ϓϩηεΛىಈ͢ΔΑΓɺWebAPIΛୟ͘ͷ͕औΓѻ͍͍͢ • ϚΠΫϩαʔϏεతͳͷ͕Ͱ͖ͨΒ͍͍Μ͚ͩͲɺJavaจ຺ͩͱ·ͩඍົ͡Όͳ͍͔ ͳͬͯࢥ͍ɻNative࣍ୈʁ • ΞϓϦέʔγϣϯ • Քಇ͍ͯ͠ΔαʔόʔΞϓϦέʔγϣϯ͕͋ΔͳΒΞϓϦέʔγϣϯͰ࣋ͬͯɻ
Slide 55
Slide 55 text
ΞϓϦέʔγϣϯεέδϡʔϥʔ • Springͩͱ @Scheduled ͱ͔͏ͱ؆୯ʹεέδϡʔϥʔ͕࡞ΕΔɻ • ͚Ͳଟॏ࣮ߦߟྀ͠ͱ͖͍ͨ • ෳαʔόʔ͕ͨΓલͳͷͰ࣮ߦ͞Εͯଟॏ࣮ߦ͞ΕͪΌ͏ɻଟॏ࣮ߦ͕ࠔ Βͳ͍ͳΒؾʹ͠ͳ͍͍ͯ͘ɻ • ࠔΔͳΒԿ͔͠Β੍ޚ͢ΔɻQuartz͋ͨΓͷఆ൪Ͱࡁ·ͤΒΕΔͷ͕·͍͠ɻ • ʮ1ίϯςφ͚ͩͰ @Scheduled ͕༗ޮʹͳΔΑ͏ʹʂʯΈ͍ͨͳྗͷํશ෦Ͱ ಈ͔ͳ͍ͱ͔ࣄނͷݩɻશ෦Ͱಈ͍ͯ1Ҏ֎ۭৼΓͷํ͕·͍͠ɻ • αʔόʔݻఆͷ࣌ͳΒʮ1߸ػ͚ͩʯͱ͔Ͱྑ͔ͬͨΜ͚ͩͲͶɻ
Slide 56
Slide 56 text
εέδϡʔϧʴҰׅॲཧͷεέδϡʔϧλεΫԽ • ҰׅॲཧͰྔ͕͍ͨͨ͜͠ͱͳ͍ͳΒݕ౼ͯ͠ྑ͍ɻ • ྔ͕ࠓ͍ͨͨ͜͠ͱͳͯ͘૿͍͑ͯ͘ͷҙ͕ඞཁɻ • ରԠͰ͖ͳ͘ͳͬͨ࣌ʹʮεέδϡʔϧλεΫͰ͋Δ͜ͱʯʹґଘͪ͠Ό͍ͬͯΔ ߹͕͋ͬͯม͑Δͷ͕͍͠߹͠͠ɻ • ྔ͕૿͍͑ͯ͘ͷͰɺྔʹΑͬͯॲཧ࣌ؒϦιʔεফඅ͕૿େ͍ͯ͘͠ͷͰ͋Ε ආ͚Δͷ͕ແͱࢥ͏ɻ
Slide 57
Slide 57 text
Πϕϯτʴݸผ
Slide 58
Slide 58 text
Πϕϯτʴݸผ • ॲཧ͖͢ΠϕϯτʹΑͬͯΠϕϯτʴҰׅॲཧʹ͋Θͤͯόονʹͯ͠͠·͏ͷ ͋Γɻ • ͨͱ͑ϑΝΠϧड৴ͰಛఆʹΛ༻͍ͯ͠Δ߹ɺண৴ޙॲཧͷόϦΤʔγϣ ϯ͕૿͑Δͱ͔ݸਓతʹආ͚͍ͨɻ׳ΕͯΔͳΒͳ͍ͩΖ͚Ͳɻ • Πϕϯτ·ͪ·ͪͳΜ͚ͩͲɺϝοηʔδϯάετϦʔϜΛѻ͑ΔΑ͏ʹͳΔͱ Ͱ͔͍ͬόονͰͳΜͱ͔͢ΔҎ֎ͷબࢶ͕૿͑ͯ͘Δɻͥͻಓ۩ശʹೖΕΑ͏ɻ • ؍ଌൣғͰ·ͩ·ͩ׳Ε͍ͯΔਓ͕ଟ͍ͱݴ͍͍ɻߟ͑ํࣗମੲ͔Β͋Δ͚ Ͳɺ࠷ۙʢʁʣҰؾʹ࣮༻తʹͳͬͨͳ͊ͱ͔ࢥͬͯΔɻ • ҰԠɺ͜ͷྨͩͱHTTPͳWebAPIHTTPϦΫΤετ͍ͬͯ͏ΠϕϯτΛτϦΨʔʹ ͨ͠ॲཧͩͬͨΓ͢Δɻ
Slide 59
Slide 59 text
ϚχϡΞϧʴݸผ
Slide 60
Slide 60 text
ϚχϡΞϧʴݸผ • Ͳ͏࡞ͬͯͦΜͳࠔΒͳ͍Ͱ͠ΐʢࡶ
Slide 61
Slide 61 text
όονࡅ͖γφϦΦ
Slide 62
Slide 62 text
• શϢʔβʔͷใΛߋ৽ͯ͠ாථΛग़ྗ͢Δɻ • SpringBatchͰ࡞Ζ͏ͱ͍ͯ͠Δɻ • ாථͷϑΥʔϚοτʹΑΔ͕ɺϓϨʔϯςΩετͳͲه͍͚ͯ͠ΔͷͰͳ͚Ε༗ ޮͰͳ͍ɻࠓճͷʮாථग़ྗʯهͰ͖ͳ͍ͷͩͬͨͱ͢Δɻ ͜Μͳ͕ͬͪඞཁΒ͍͠
Slide 63
Slide 63 text
ૉʹͬͨΒ͜Μͳײ͡ʁ
Slide 64
Slide 64 text
ૉʹͬͨΒ͜Μͳײ͡ʁ ChunkΛͬͨҰׅߋ৽ TaskletΛͬͨҰׅग़ྗ
Slide 65
Slide 65 text
ؾʹͳΔͱ͜Ζ • ʮόονΛ࡞Δʯ͋Γ͖ͩͱ͜͏ͳΔͷ͕ࣗવ • ͦͷৼΔ͍͕ݸਓͱͯ͠ѱ͍Θ͚Ͱͳ͍ • Ͱʮશ෦όονͰΔඞཁͳ͍ʯΛߟ͑ΒΕΔ • ͱ͍͏͜ͱͰࡅ͍͍ͯΈ·͢
Slide 66
Slide 66 text
• ෦తʹ2ͭʹ͔ΕͯΔɻ • Ұ୴͚ͯΈΔɻ • લऀҰׅॲཧͬΆ͍͔Βόονʁ • ޙऀҰׅʹݟ͑Δ͚Ͳू߹ͱͯ͠ݸͷϫϯγϣοτͩͬͨΓ͢Δɻ • ͢ͺͬͱ2ͭʹ͚Δબࢶ͋Δɻ
Slide 67
Slide 67 text
• ʢ݅࣍ୈͰ͋Δ͕ʣޙऀͷாථग़ྗʹେ͖ͳίϯϐϡʔλϦιʔεΛ༻͢Δͳ ΒɺִڥͰ࣮ߦͰ͖ΔͷɺಠཱϓϩηεாථαʔόʔͷΑ͏ͳઐ༗ڥͷग़ྗ ΛબΔΑ͏ʹ͢Δɻ • ͜͜ͷ࡞ΓͲ͏ͱͰͰ͖ΔΜ͚ͩͲɺʮόονͷҰ෦ʯͷ··ͩͱબࢶʹ੍͕ ग़ͯ͘Δɻ • ੍͕ͳ͚ΕຊମʮϚχϡΞϧʴݸผʯͰ࣮ߦͰ͖ΔΑ͏ʹͯ͠ɺτϦΨʔΛผ ʹͬͯߟ͑Δɻ
Slide 68
Slide 68 text
• ͜ΕҰׅॲཧʹΈ͑Δ͚ΕͲɺͻͱ͔ͨ·ΓͰͳ͚ΕͳΒͳ͍ཧ༝͕ബ͔ͬͨΓ͢ ΔɻChunkʹ͚ΕΔ࣌ͰChunkؒͰ߹ੑΛͱΒͳ͍͍ͯ͘OR่Ε͍ͯΔͷͰં Γ߹͍͚ͭΒΕΔɻ • ॲཧରͷϦετΞοϓͱͦͷॲཧΛ͢ΔτϦΨʔɺऴྃޙ͚͕ͩ७ਮʹʮҰׅʯͰѻ ͏ͷɻؒͷͷʮݸผʯʹྲྀ͠ࠐΊΔɻWebAPIͰͪड͚ͨΓɺϝοηʔδϯά ʹͨ͠ΓɺͲ͏ͱͰɻʮόονʯͰѻΘͳ͚ΕͳΒͳ͍ͱ͜Ζ͔Β֎ʹग़ͤΔɻ
Slide 69
Slide 69 text
• ͜Εʮ͚ΒΕΔʯͱͳΔͱ͜ͷॱ൪ʹͩ͜ΘΔඞཁͳ͘ͳΔɻ • લʹग़ͪ͠Ό͏ɻͳΜͳΒʮ͜ͷॲཧ͕Ͱ͖Δ͕݅ͬͨΒʯ͓ͬͯ͘ɻ • ʮόονʯͰ͍͍ͤͥʮऴΘͬͯΔ͔ʯ֬ೝ͢Δ͘Β͍ɻ ࠇWebAPIͱ͔ͰɺͦΕΛτϦΨʔʹඇಉظϝοηʔδϯάͷΠϝʔδ
Slide 70
Slide 70 text
όονղମɿͳΜͰඞཁʁ • Ͳ͜ͷγεςϜѻ͏σʔλྔͲΜͲΜ૿͍͍͑ͯͬͯΔ • όονͰΓΔʹݶ͕͋Δ • Χʔυ͓࣋ͬͯ͘ͷ͕͍͍ɻͦͷΧʔυ͏࣋ͬͯΔͷɻ • όον࣮ߦػձ͕গͳ͍ʹӡ༻ݟ͕ͨ·Γʹ͍͘ • ݄࣍ͳΜͯؒ12ճ͔͠ӡ༻͔ΒͷϑΟʔυόοΫΛड͚ΒΕͳ͍ • ΫϥυωΠςΟϒͳྲྀΕͱόονʹִͨΓ͕͋Δ • ʮόον͔ͩΒΦϒβʔόϏϦςΟඍົʯແ͍͚ͨ͘͠ͲɺͲ͏ͯ͠ϑΟʔυόο Ϋ͔Βͷվળ͕ճ͠ʹ͍͘ͷͰਏ͍ɻ
Slide 71
Slide 71 text
όονΛ࡞Βͳ͖Όͱ ͳͬͨͱ͖ʹߟ͑Δ͜ͱ
Slide 72
Slide 72 text
ʮόονΛ࡞Βͳ͖Όʯ • ΄Μͱʹʁ • ʮόονʯͱݴͬͯΔ͚ͲԿΛࢦͯ͠ʮόονʯͬͯݴͬͯΔʁ • Ҋ֎߹Θͳ͍ͷͩ͠ɺࣝผ͢Δͱ͍͍͜ͱ͕݁ߏ͋ΔΑ • ʮͦΕόονͳͷʁʯΛ͏ • Ұׅॲཧ͠ͳ͍͍ͯ͘ͷͳΒɺWebAPIͳͲͰ͜ͳ͢ํ͕Կ͔ͱར͕ଟ͍ɻ • Ұׅॲཧ͕ඞཁͳͷόονɺͦ͏Ͱͳ͍ͷόονΛආ͚ΔͷΛجຊతͳํ ͱ্ͨ͠ͰɺͦΕͰόονըචΑͳจ຺͋Δɻ
Slide 73
Slide 73 text
ͱݴ͑όονΛ࡞Βͳ ͖ΌͱͳͬͨͳΒ ෲΛׅͬͯ͜͏
Slide 74
Slide 74 text
͜ͷลͰͦ͏ͱ͓ͬͯͨ͜ͱʹࣅͯΔ͜ͱ • 2024-06-10ʢ6લʣʹZOZO͞Μ͕ެ։͞ΕͨΨΠυϥΠϯΈ͍ͨͳ༰ • https://techblog.zozo.com/entry/batch-development-guideline • όονʢ੍ޚʣ ʮϫʔΫϑϩʔΤϯδϯʯͬͯ ݺΜͰΔͷ͕͍ۙɻ
Slide 75
Slide 75 text
όονͷߏ
Slide 76
Slide 76 text
όον֊Λߏ͢Δ όον δϣϒ λεΫ λεΫ δϣϒ λεΫ λεΫ όον δϣϒ λεΫ λεΫ
Slide 77
Slide 77 text
ͬ͘͟Γ͚ΔͳΒ όον δϣϒ λεΫ ΞϓϦέʔγϣϯͷϓϩηεͰ໘Έ Δͱ͜Ζ SpringBatchͳͲͷόονϑϨʔϜϫʔ Ϋͷαϙʔτൣғ ΞϓϦέʔγϣϯ֎Ͱ ໘ΈΔͱ͜Ζ εέδϡʔϥʔͱ͔ όονؒͷґଘؔͱ ͔Λ੍ޚ͢Δ ݴޠʹΑΒͳ͍ͷͰϓ ϩμΫτ৭ʑ͋Δ
Slide 78
Slide 78 text
ڥք·ͪ·ͪͰඃͬͯͨΓ όον δϣϒ λεΫ ࣮ࡍʹඃ͍ͬͯͨΓ͢Δɻ ಉ͜͡ͱ͕Ͱ͖Δͱ͖ʹͲ͜ͰͦΕΛ ѻΘͤΔ͔͕ઃܭϙΠϯτɻ
Slide 79
Slide 79 text
ೋछྨͷόον
Slide 80
Slide 80 text
όονʢ੍ޚʣ
Slide 81
Slide 81 text
όονʢ੍ޚʣ • ଟԿ͔͠Β͍͍ײ͡ͷ͜ΕΛࢦ໊͢લ͕͋ΔΜ͚ͩͲݟ͚ͭΒΕͳ͔ͬͨɻ • ݱͩͱαʔϏε໊ͰݺΜ͡ΌͬͨΓ͕ͪ͠ɻ • લޙؔεςʔλεཧɺશମͱͯ͠ͷίϯτϩʔϧΛ࢘Δɻ • ޙड़ͷόονʢॲཧʣΛݺͼग़ͯ͠ɺͦͷ݁ՌΛड͚ͯɺͱ͔͕͓ࣄɻ • ༻৭ʑ͋Δ͠ɺࢥ͍ු͔Δͷ͋Δͱࢥ͏ɻ • ͜͜ͰΤϥʔϋϯυϦϯάϞχλϦϯάɺ࠶࣮ߦͳͲΛߦ͏ɻ • ͍͔ͭ͘ͷϓϩμΫτͷϚχϡΞϧΛಡΈൺͯ͑ΕͲ͏͍͏͜ͱׂ͕͔ݟ͑ ͯ͘Δͱࢥ͏ɻ
Slide 82
Slide 82 text
όονʢॲཧʣ
Slide 83
Slide 83 text
όονʢॲཧʣ • ଟԿ͔͠Β͍͍ײ͡ͷ͜ΕΛࢦ໊͢લ͕͋ΔΜ͚ͩͲݟ͚ͭΒΕͳ͔ͬͨɻ • ΞϓϦέʔγϣϯ։ൃऀ͕͍͏ʮόονʯ͜ͷ෦͚ͩͩͬͨΓ͢Δɻ • ͜͜ʹτϦΨʔؚ·Εͳ͍͜ͱ͕ଟ͍ • ʮόονʯͱݺΜͰΔͱʮJavaϓϩηεʯ͕͜ΕͱχΞϦʔͩͬͨΓɻ
Slide 84
Slide 84 text
όονʢॲཧʣΛ࡞Δͱ ͖ʹߟ͑Δ͜ͱ
Slide 85
Slide 85 text
• όονϑϨʔϜϫʔΫΛ࠷ॳ͔Β࠾༻͢Δɻ • ʮඞཁʹͳ͔ͬͯΒʯͩͱ૾Ҏ্ʹݥ͍͠ಓͷΓʹͳΔ • ඞཁʹͳΔ·ͰͷաఔͰόονϑϨʔϜϫʔΫͷ͍࣋ͬͯΔंྠΛ࠶ൃ໌͢Δ͜ͱ ʹͳΓ͕ͪ • ࡞ͬͨंྠͦͷ··͑ͳ͍͠ɺंྠҎ֎ͷ͓·͚͕ॏཁͩͬͨΓ͕ͪ͠Ͱɺ ϑϨʔϜϫʔΫͷंྠͱܕ͕߹ΘͣClassCastException͕ى͜ΔʢͰʣ • ୯ൃͰվम༧ఆ͕ͳ͍γϯϓϧͳͷͳΒΘͳ͍͍͚ͯ͘ͲɺϑϨʔϜϫʔΫΛ ࠾༻͢Δ͜ͱʹΦʔόʔϔουΛײ͡ΔΑ͏ͳΒ͔ͦ͜Β͑Α͏ • ͍·͞ΒੜServletΘͳ͍Ͱ͠ΐʁʢServletϑϨʔϜϫʔΫͳΜ͚ͩͲ͞ʣ
Slide 86
Slide 86 text
• ॲཧͷਐḿΛ֎෦͔Β؍ଌͰ͖ΔΑ͏ʹ͢Δ • ϩάͰ͍͍͠ɺଞͷԿ͔Ͱ͍͍ɻͱʹ͔͘؍ଌͰ͖ΔΑ͏ʹ͠ɺ࣌ؒͷͷ ͋ͱͲΕ͘Β͍ͰऴΘΓͦ͏͔ͳͲͷ͕͚҆ͭΒΕΔͷʹ͢Δɻ
Slide 87
Slide 87 text
• Ͱ͖Δ͚ͩૣ͘ຊ൪σʔλͰςετ͢Δ • ͳΜͳΒॳظ͔Βɻ • ຊ൪σʔλΛ͑ͳ͍ࣄ͕͋ΔͳΒຊ൪૬σʔλʹͳΔ͕ɺͲ͏ͯ͠ʮ૬ʯ Λ࡞ΔաఔͰΒͨ͠ͱ͜Ζ͕ΪϦΪϦʹͳͬͯʹͳΓ͕ͪɻ • ʮຊ൪σʔλͰಈ͔͘ΒOKʂʯͰͳ͍͜ͱʹҙ • ςετઃܭ͠·͠ΐ͏ɻຊ൪σʔλͰͷςετۜͷؙͰͳ͍Ͱ͢ɻ • όονʹݶΒͳ͍͚ͲͶʁ
Slide 88
Slide 88 text
• ҰͭҰͭͷόονՄೳͳݶΓ୯७ͳ࡞Γʹ͢Δɻ • ҰͭͷόονͰ͋Ε͜ΕΒͤͳ͍ɻࡅ͍ͨͭɻ • ʮҰͭͷϓϩάϥϜʹҰͭͷ͜ͱΛ͏·͘ΒͤΔʯʢUNIXͱ͍͏ߟ͑ํʣ • େྔͷσʔλΛѻ͏্ؔɺ͜͜ͰΕ͍͍͡ΌΜͱཉ͕Ͱ͕ͪɻ͜ΕΛόονʹ ೖΕͯ͠·͏ͱख͕ग़ͤͳ͍ڊେͳύζϧʹͳΔɻ • ϚγϯϦιʔε͕ݻఆ͞ΕͯΔͳΒํͳ͍͔͠Εͳ͍ɻ
Slide 89
Slide 89 text
• ҆ఆͨ͠ೖྗʹ͚ͩґଘͤ͞Δɻ • ۃྗͶɻෆ҆ఆͳೖྗʹཔΒ͟ΔΛಘͳ͍จ຺͋ΔɻͰՄೳͰ͋Εόονͷ֎ Ͱղܾͯ͠ɺόονʹ࣋ͪࠐΉ࣌҆ఆͨ͠ೖྗʹ͢Δɻ࠶ݱੑॏཁɻ • όοΫΞοϓΛऔΔɻ • ೖྗΛόοΫΞοϓ͠ɺόοΫΞοϓͨ͠ೖྗ͚ͩΛ༻ͯ͠ಉ͡Ξτϓοτʹͳ ΔΑ͏ʹόον࡞Δɻ͜ΕͰ҆ఆͨ͠ೖྗ͚ͩʹґଘ͍ͯ͠Δ͔ΛݕূͰ͖Δɻ • ॲཧ͕͔͔࣌ؒΔͷɺೖྗͷશͳόοΫΞοϓ͕Ͱ͖ͳ͍ͷΞτϓοτ όοΫΞοϓ͢Δɻ • όοΫΞοϓ͕औΕͳ͍ࣄ͕͋Δͷํͳ͍ɻ
Slide 90
Slide 90 text
• όονϦιʔεΛେྔʹ༻͢Δ͜ͱ͕͋Γɺڞ༗͢Δऀ͕ෆҙʹӨڹΛड͚ͨΓ͢ Δɻ • શʹಠཱͤ͞ΒΕΔͳΒ͍͍Μ͚ͩͲɺڞ༗͢Δ߹ଟ͍ɻ • σʔλͷ߹ੑΛյ͠͏Δૢ࡞Λͤ͟ΔΛಘͳ͍߹ͨ·ʹग़ͯ͘Δ͕ɺͦ͜Ͱҟৗ ऴྃͯ͠͠·͏͜ͱΛલఏʹӡ༻ઃܭ͢Δɻ • յͨ͜͠ͱΛݕͰ͖ΔͨΊʹݕূͰ͖ΔΈΛఴ͑Δඞཁ͕͋Δɻ
Slide 91
Slide 91 text
ߟ͑ΔϙΠϯτͱࢦ
Slide 92
Slide 92 text
• ࠶࣮ߦ • ్தͰΤϥʔʹͳͬͨ߹ͷऔΓѻ͍ɻ • ಛʹଞγεςϜʹ࿈ܞ͢Δͷɻ • ੑೳ • େྔ݅Λ૬खʹ͢ΔͷͰɺ୯ମͷੑೳΑ͘ग़ΔɻϦΞϧλΠϜੑ͕ٻΊΒΕͳ͍͔Βͱʮ1+nͳॲཧͰ͍͍ʯΈ͍ͨʹઃܭͨ͠ͷ͕ޙʹ ͍͕͔͔ͬ࣌ؒ͢͝ΔΑ͏ʹͳͬͯͨΓɻʮؒόονͷಥ͖ൈ͚ʯͱ͔ݴͬͨΓ͢Δɻ࣍όον࢝ۀʹؒʹ߹͏͔উෛʹͳͬͨΓ͢Δ͠ɺि࣍όον ͕48࣌ؒܰ͑ͨ͘Γͱ͔͋Γ͕ͪɻ͜ͷखͷνϡʔχϯάϋϚΔͱָ͍͠ɻ • ୯ମ୯ମͱͯ͠ɺϦιʔεΛେྔʹ͏ͱWebAPIʹӨڹ͕ͰͨΓ͕ͪ͠ɻDBʹෛՙ͔͚ͪΌͬͨΓɺಉ͡ϚγϯʹͬͯͯCPUIO͍ͬͨΓͱ ͔ɻԾԽ͕ਐΜͰͲ͏͍͏ϦιʔεΛڞ༗͢Δ͔Θ͔ΓͮΒ͘ͳͬͯΔɻ • ഉଞ੍ޚ • όονҎ֎ͱͷഉଞ੍ޚ͕ඞཁʹͳͬͨ࣌ʹͲ͏͢Δ͔ɻWebAPIͷ͓͔͛Ͱ • όονؒͷґଘؔ • ଞͷόονͱͷґଘ͕ؔύζϧʹͳΓ͕ͪɻಛఆόονͷҟৗ࣌ͷସϑϩʔͱ͔ɺ͜ͷ੍ޚࣗମ͕ҰେγεςϜͱݴ͑ΔɻڊେJOBωοτͷखߝΛѲΕ Δਓʹ಄͕Լ͕Δɻখ͍͞͏ͪ؆୯ͳͤ͘ʹେ͖͘ͳΔͱෳࡶ͕Ճతʹ্͕Δɻʢࠓճ͠ͳ͍ʣ • WET • όονͱWebAPIͰಉ͡Α͏ͳॲཧΛ͍͚ͨ͠ͲɺόονόονɺWebAPIWebAPIɺΈ͍ͨͳ࡞ΓํΛ͍ͯ͠ΔͱDRYΛอͯͳ͘ͳΔɻͰʮόον ͚ͨ͠ͲWebAPIͰ͖ͯͳ͔ͬͨʯͱ͔ͦͷٯͱ͔ɺͦΕͧΕಠࣗਐԽ੍ͯ͠ޚෆೳʹͳͬͨΓͱ͔ɺ͕ͪ͠ɻ
Slide 93
Slide 93 text
࠶࣮ߦ • ࠶࣮ߦͰ͖ΔΑ͏ʹͭ͘Δ • ʮಉ͡ೖྗͰ͋ΕԿ࣮ߦͯ͠ಉ݁͡ՌʹͳΔʯͱݴ͏ͷ • ͨͱ͑ʮείΞΛ100૿Ճͤ͞Δʯ࠶࣮ߦͰ͖ͳ͍ɻ2ճ࣮ߦͨ͠Β200૿Ճ͢Δɻ • ʮ࠶࣮ߦͰ͖Δʯ͕֬อͰ͖Ε͙ͬͱָʹͳΔ • ͜ͷʮͰ͖Δʯʮ͕ΜΕͰ͖ΔʯͰͳ͍ɻ • ཧϫϯΫϦοΫɺ͍͍ͤͥݸͷೖྗύϥϝλʢ࠶࣮ߦ͍ͨ࣌ࣗ͠ಈղܾ͞ΕΔ ͷʣΛઃఆ͢Δ͚ͩͰ࣮ߦͰ͖ͳ͍ͱʮ࠶࣮ߦͰ͖Δʯͱݴ͍͍ • ʮ͕ΜΕͰ͖Δʯ͚ͩͰʮͰ͖ͳ͍ʯΑΓΑ΄Ͳ͍͍͚ΕͲ……
Slide 94
Slide 94 text
όοΫΞοϓˍϦετΞ • ͯ͢ͷೖྗΛ࣮ߦ࣌ʹอଘ͓͖ͯ͠ɺ࠶࣮ߦ࣌ʮอଘͨ͠ೖྗʯΛ༻͢Δɻ • ؆୯ͳྫ • ࣮ߦ࣌ʹDBͷόοΫΞοϓΛऔΔɻ࠶࣮ߦ࣌ϦετΞ͔ͯ͠ΒɻʢDB͚ͩΛೖग़ྗͱ͢Δ ͷͷ߹ʣ • ϝϦσϝ • όονࣗγϯϓϧʹͳΔɻ • ೖྗͷόϦΤʔγϣϯ͕૿͑Δͱେมɻ • όοΫΞοϓˍϦετΞͰ͖ͳ͍ೖྗ͕͋ΔͱΞτɻͨͱ͑֎෦γεςϜɻ • σʔλྔʹΑΔ͕༰ྔతʹͦͦݱ࣮తͰͳ͍ͱ͔͋Γ͕ͪɻ
Slide 95
Slide 95 text
ॲཧࡁΈผ • طʹॲཧ͔ͨ͠Λผͯ͠ɺ࠶࣮ߦ࣌ʹॲཧࡁΈͰ͋ΕεΩοϓ͢Δɻ • ؆୯ͳྫ • ॲཧରͷPKͱόονͷIDͷΈ߹ΘͤΛอ࣋͢ΔςʔϒϧΛ࡞Δɻॲཧର͝ͱʹॲཧ͕ऴΘͬͨΒϨίʔυΛ ࡞ΔɻͦͷϨίʔυ͕͋ͬͨΒεΩοϓɻ • ϝϦσϝ • ࠶࣮ߦ͕ऴΘΔ·Ͱෆ߹ͳঢ়ଶʹͳ͍ͬͯΔͱݴ͑ΔɻʮԿׂ͔ͷϢʔβʔ͚ͩॲཧ͞Ε͍ͯͯΓ·ͩʯͱ ݴ͏ঢ়ଶΛڐ༰͢Δͱ͔ݟ͑ͳ͍Α͏ʹ͢Δͱ͔ͳΜΒ͔ͷ੍ޚ͕ඞཁɻ • ్தΤϥʔͰதஅͨ͠߹ͳͲͷ࠶࣮ߦ͕࣌ؒͰߦ͑Δɻෳͷόον͕࿈ͳ͍ͬͯΔ߹ͷ࠶࣮ߦͰ༗ޮɻ • ίϝϯτ • ʮόονʯͱݴ͍ͭͭʮͻͱ͔ͨ·ΓʯͰѻ͍ͬͯͳ͍͔ΒͰ͖ΔͷͰ͋Δɻ • ʮ࠶࣮ߦʯͱݴ͍ͭͭɺ࣮ߦ͔एׯٙɻ
Slide 96
Slide 96 text
νΣοΫϙΠϯτ • ʮॲཧ͕Ͳ͜·ͰਐΜ͔ͩʯΛهͯ͠ɺࢭ·ͬͨͱ͜Ζ͔Β࠶։͢Δ • ϝϦσϝ • Έ͕Θ͔Γ͍͢ɻऴΘͬͨͷ͕ಈ͔ͳ͍͔Β҆৺ײ͋Δɻײ͚ͩͲɻ • ίϝϯτ • όονશମΛͳʹ͔͠ΒͰ͍۠ͬͯΔɻ • ͦͷ۠ͬͨ୯Ґ͕ʮͻͱ͔ͨ·Γʯ͡ΌͶʁͱࢥ͏ • େྔ݅Λॲཧ͢Δ߹ͷύλʔϯͰɺόονϑϨʔϜϫʔΫͳͲͰΑ͘αϙʔτ͞Ε͍ͯΔɻ͔ͬΕΕ͜ ͷ੍ޚʹབྷΉෳࡶ͞Λ͓ͤͰ͖Δ͕ɺ৫ΓࠐΜͰઃܭ͠ͳ͍ͱඍົʹ߹Θͳͯ͑͘ͳ͍͜ͱଟ͍ɻંΓ߹Θ ͳ͚ΕॲཧࡁΈผͷ΄͏ɻ • ίϝϯτ • ʮ࠶࣮ߦʯʹׅ͚ͬͨͲ࠶࣮ߦ͍ͯ͠ͳ͍ɻʮ࠶։ʯͰ͋Δɻ
Slide 97
Slide 97 text
·ͱΊ
Slide 98
Slide 98 text
• ʮόονΛ࡞Βͳ͖Όʯͬͱͳͬͨͱ͖ʹɺͦΕຊʹόονʁ͔Βݟ͢͜ͱΛ͓ק Ί͠·͢ɻ • Ͳ͏ͯ͠όονͰ࡞Δͱͯ͠ɺόονͰѻ͏ൣғΛݮΒ͠·͠ΐ͏ɻ • Ͱ͖ΕόονҎ֎ͷͷͰࡁ·ͤΒΕΔΑ͏ʹଞͷॲཧܗଶʹҠৡ͠·͠ΐ͏ɻ • όονϊΠζ͕গͳ͍ঢ়ଶͰ࣮ߦ͞ΕΔͨΊ࡞Γ͍͢Ͱ͕͢ɺݱͷ͞·͟·ͳ ใ͕ඈͼަ͏ܗଶʹࠞ͡ΓͮΒ͍Ͱ͢ɻ • ͦΕͰόονΛ࡞Δ͔࣌ͬ͠Γόονͱͯ͠࡞Γ·͠ΐ͏ɻ • όονͷ࡞ΓํͷϊϋόονϑϨʔϜϫʔΫϓϩμΫτͳͲྺ࢙ʹཪଧͪ͞ Ε࣭ͨͷ͍͍υΩϡϝϯτ͕͋Γ·͢ɻ