2022-11-19T14:50 レッツゴーデベロッパー DECADE [仙台]Rakuten Technology Conf feat. レッツゴーデベロッパー
https://rakutentechsendai.connpass.com/event/264431/
υϝΠϯϞσϧͷͭ͘Γํ5Ϩοπΰʔσϕϩούʔ%&$"%&<ઋ>3BLVUFO5FDIOPMPHZ$POGGFBUϨοπΰʔσϕϩούʔ!JSPG
View Slide
ΦϚʔδϡݩhttps://speakerdeck.com/a_suenami/domeinmoderufalsetukurifang-number-5000dai
ίϯςΩετhttps://speakerdeck.com/irof/moderingufalsekihon-number-kanjava-number-mixleaphttps://irof.hateblo.jp/entry/2020/03/09/120640
@irof⼤阪 、関⻄Java 会数年何 件個⼈事業主@ 6歳開発全域 ⼿伝久々 外 出
" "事 ⾏世界私意図 使
υϝΠϯ> >⽅ > ⽅
͍ΖΜͳυϝΠϯIUUQTJSPGNFϦϨʔγϣφϧϞσϧͷυϝΠϯςετٕ๏ͷυϝΠϯੳ܉ࣄυϝΠϯʢଞʹ৭ʑʣ
ΠϯλʔωοτͷυϝΠϯ໊લۭؒΈͳ͞ΜݸਓͰ࣋ͬͯΔυϝΠϯɺԿݸ͘Β͍͋Γ·͢ʁෳ࣋ͬͯΔ͜ͱΛલఏʹ͢Δͳ
ΠϯλʔωοτͷΫϩευϝΠϯ$034ͱ͔944ͱ͔੬ऑੑͱ͔$PPLJFͲ͏͠Α͏ͱ͔ͦ͏͍͏ܥͷ໘͞एׯωΨςΟϒͳΠϝʔδ
܉ࣄͷϚϧνυϝΠϯւۭӉαΠόʔւۭӉαΠόʔ(軍事 ⽅々、 違 )
܉ࣄͷΫϩευϝΠϯւۭӉαΠόʔւۭӉαΠόʔ
%%%ຊͷυϝΠϯ*UJTJOUIFEPNBJOJUTFMG UIFBDUJWJUZPSCVTJOFTTPGUIFVTFSʮϏδωευϝΠϯʯͱ͔ʮٕज़υϝΠϯʯͱ͔ଞͷυϝΠϯम০͖Ͱهड़
࣮ફ%%%ຊͷυϝΠϯ「 何 」 正⾯ 説明
ֶ༝དྷͷυϝΠϯϦϨʔγϣφϧϞσϧͷυϝΠϯͷൣғςετٕ๏ͷυϝΠϯੳͷൣғ͚ͩͲɺಛʹΈ߹ΘͤΔͱ͖ʹΘΕ͍ͯΔ
υϝΠϯʹྖҬ
υϝΠϯʹྖҬྖҬࢸΔॴʹ͋ΔྖҬࢸΔϨΠϠʔʹ͋ΔԿʹͰυϝΠϯΛݟग़ͤΔΈΜͳυϝΠϯΛ͍࣋ͬͯΔ
υϝΠϯυϝΠϯυϝΠϯυϝΠϯΈΜͳυϝΠϯΛ͍࣋ͬͯΔ「 」 ⾔ 単位
υϝΠϯυϝΠϯʹυϝΠϯ͕͋ΔυϝΠϯυϝΠϯυϝΠϯυϝΠϯ
υϝΠϯ υϝΠϯؔ࿈ͨ͠ΓॏͳͬͨΓ͢ΔυϝΠϯ
υϝΠϯͱͳΜ͔͜͏ɺൣғͷ͋Δͳʹ͔ࣝผ͢ΔՁ͕͋Δൣғ໊͍͍ͩͨલ͕ͭࣝ͘ผͨ͠ͷࣝผࢠ͕͋ΔΘ͚Ͱ
υϝΠϯͱͳΜͰυϝΠϯͩͬͯݴͬͨΒυϝΠϯʹͳΓͦ͏
Ϟσϧ> >⽅ > ⽅
ʁ
ඥ͖౾ʮϞσϧʹ͜Εʯͱࢥ͍ͬͯΔਓ͕͍ͨΓ͢ΔṖͷମɻ📛tofu onfire
ࡢͷҠಈதʢωοτͳ͠ʣ࣌ࠁ͔ͩΒεΫγϣ͡Όͳࣸ͘ਅͰ͢ɻ
օ༷ͷҊഥࢠψϯνϟΫࢳిϒϩοΫνΣʔϯ⾊々貰 紐付 ⾖腐 ⾏
Ϟσϧʺඥ͖౾
Ϟσϧʹܕ
ϞσϧʹܕಛΛڧௐͨ͠ͷڧௐ͍ͨ͠ͷҎ֎ΛՄೳͳݶΓΓམͱͯ͠࡞ΒΕΔσϑΥϧϝͱߟ͑ͯྑ͍ҙਤతͳมܗ
ϞσϧϦϯάʹআڈՃʹΑΔϞσϦϯάෆՄೳͰͳ͍͕ɺਓϊΠζͷԿʹऒ͖͚ͭΒΕΔ͔Θ͔Βͳ͍ɻ͍͘Βʮ͜͜ࠓճͷର͡Όͳ͍Ͱ͢ʯͱݴͬͯɺϫΠϠʔϑϨʔϜग़͢ͱϑΥϯτͷͯ͘͠Δ͠ʜʜɻ
Ϟσϧʹܕ͍ͯ͠Δͱݴ͑Δ࡞Γ৮ΕΔʢ͍͍ͩͨʣಈ͘ʢͷ͋Δʣ
ඥ͖౾Ϟσϧ౾͕Ϟϊɺඥ͕ؔ࿈ϞϊͱϞϊͷؔ࿈Ҏ֎Λ͗མͱͨ͠ͷɻඥ͖౾˥Ϟσϧʁ
͏গ໊͢͠લɺؔ࿈ͷํɺଟॏ͜ΕΒϞσϧͷ༻్࣍ୈͰϊΠζʹͳΓ͏ΔͲ͏ϊΠζʢअຐʣ͔ߟ͑Δͷ໘ന͍"#0..n
Ϟσϧͷཁݶք·Ͱγϯϓϧʹ͢Δͷ͔ͩΒগ͠ͷࠩʹҙຯ͕͋ΔΑ͏ʹಡΈऔΕͯ͠·͏্ͷਤʮͳΜͰؙ֯ʁʯҙຯͷҧ͍͕ͳ͍ͳΒ༳Β͞ͳ͍
Ϟσϧཱ͕ͭ໘ݶΒΕΔඥ͖౾ͳΜͯΘΔΘ͚͕ͳ͍͕ग़ൃΘΔ͔ࢼ͘͢Β͍ͷؾ࣋ͪͰ͏ΘΒͳ͍Ϟσϧ🤬
ΘΔϞσϧԿΛڧௐͨ͠ͷ͔Θ͔ΔͦͷڧௐʹΑΓऔΓΈ͍ͨͷํੑ͘Β͍߹͍ͬͯΔ͜ͱ͕Θ͔Δ
ϞσϧγϯϓϧΛଚͿߟ͑ΔͨΊͷ࠷ݶͷใྔෆ͍͚ͯ͠ͳ͍࢛ଇԋࢉܭࢉͷϞσϧӈลࠨล͕Α͘ʹͳΔ͕ɺϞσϧʹ͍ͬͯΔҎ্ɺΘΕͯ͠·͏ͷํ͕ͳ͍ɻ
ϞσϧͱͳΜ͔͜͏ɺγϯϓϧͳͳʹ͔ԿΛ͍ͯ͠Δ͔ʹґΔԿ͔ͷཱͯΔͨΊͷϞσϧԽ
ϞσϧͱͳΜͰϞσϧͩͬͯݴͬͨΒϞσϧʹͳΓͦ͏
υϝΠϯϞσϧ> >⽅ > ⽅( ) ( )+
υϝΠϯͷϞσϧࣝผͰ͖Δͳʹ͔γϯϓϧͳͳʹ͔
υϝΠϯυϝΠϯυϝΠϯυϝΠϯΈΜͳυϝΠϯΛ͍࣋ͬͯΔ関⼼ 持 切 ⼝ 化
υϝΠϯΛϞσϧԽυϝΠϯΛࣝผ͢ΔυϝΠϯͷυϝΠϯΛࣝผ͢ΔυϝΠϯΛཧ͢Δࣝผͨ͠ͷʹؔ࿈͕ੜ·ΕΔ
υϝΠϯϞσϧͱྖҬΛࣝผͯ͠ྖҬͷΛߟ͑Δ͘ΓޱΛఆΊͯࡍཱͨͤͯྖҬʹߏஙͨ͠ͷ
ඥ͖౾͜Ε͕υϝΠϯͩͱݴ͑Δʁݴ͑ͳ͍ͳΒ🚮ϦονϐΫνϟϙϯνֆɺԿ͔ͷҰཡͷํ͕Α΄ͲυϝΠϯϞσϧͯ͠Δ͜ͱଟ͍
υϝΠϯϞσϧͱ੩తߏυϝΠϯϞσϧͱ͍͏ͱ੩తߏΛ͋ΒΘ͢͜ͱ͕ଟ͍͕ɺ੩తߏ͕υϝΠϯϞσϧͰͳ͍
υϝΠϯϞσϧͱͳΜͰ͍͍͚ͲɺԿʹ͢Δ͔͕ࣗ༝ͳͷͷΈ߹Θͤ8)"5ͱ)08Λҙࢥܾఆͳ͍ͱͦͦଘࡏ͠ͳ͍ݴ༿( ) ( )+
ͭ͘Γํ> >⽅ > ⽅
ͭ͘Γํσϕϩούʔಉ࢜ͷձ࣮ٕज़ʹدΓ͕ͪʮ)08͡Όͳ͘8):ΛޠΕʯͱ͔ࣖʹͨ͜͠ͱ͋Δͱࢥ͏
)08ޠΓʹͳΔߏσϕϩούʔ σϕϩούʔ999 999壁組織 壁
)08ϩʔϧͷนΛӽ͑ͳ͍σϕϩούʔ σϕϩούʔ999 999壁組織 壁
8):৫ͷนΛӽ͑ͳ͍σϕϩούʔ σϕϩούʔ999 999壁組織 壁
)08͍͢͠ಛʹσϕϩούʔ۩ମతͳߦಈΞτϓοτʹ݁͢Δ͔Β༨ܭͩͱࢥ͏ɻ
υϝΠϯͬͯ͜͜ΑͶ壁組織 壁σϕϩούʔ σϕϩούʔ999 999
υϝΠϯϞσϧ8):Λ͏ҟ৫ʗಉϩʔϧͰਂ͍͕ͦͦͰ͖ͳ͍ʮͦ͏͔Ͷʯ͕ਫ਼Ұഋࣅͨܦݧ૾ྗͰิ͑Δʹͯ͠ɺิ͍Ͱ͔͠ͳ͍
ίϛϡχςΟΠϕϯτͳͲςϯϙϥϦͳ৫ͰʮతΛಉ͡ͱ͢ΔྖҬʯ͕ઙ͍ ઙ͍ྖҬෳࡶͳ͕ͣͳ͍ਓͷෳࡶ่͠ʹҙਤ͕ೖΔ టष͕͞Γͳ͍ඇෳࡶྖҬͰͷʮෳࡶʹཱ͔ͪ͏ʯυϝΠϯϞσϧߩݙ͕͍
ͯݴ͏͔͍ͯ͏͔୯७ྖҬͷυϝΠϯϞσϦϯάແҙࣝʹͰ͖͍ͯΔɻͰ͖ͳ͍ͱݴͬͯΔਓʮυϝΠϯϞσϧʯͱϥϕϧΛషΔ͜ͱʹର͢Δߴঘײ͕अຐͯ͠Δؾ͕͢Δɻݸਓͷ͡Όͳ͍ɻ
ʜʜͰऴΘΔͱ🤬ͳͷͰૡ͍ͯΈΔɻ
ૡ͖զʑσϕϩούʔৗʹҰϞϊʹΈͳ͕ΒܦݧΛੜ͔͖ͯͨ͠ɻ
ૡ͖શ͘ҟͳΔΞϓϦέʔγϣϯͰɺಉ͡։ൃݴޠΛ͍ɺಉ͡ϑϨʔϜϫʔΫΛ͍ɺಉ͡ύλʔϯΛ͖ͬͯͨɻ
ૡ͖࣮ٕज़)08ͷΈͰΓཱ͔ͭͱ͍͏ͱɺͦ͏Ͱͳ͍ɻ
ૡ͖8):Λߟ͑ΔͨΊͷ)08Ͱ͋Εڞ༗Ͱ͖Δɻ
ͳΔ΄Ͳ͜Εύλʔϯݴޠ͔ʜʜDDD ⾔語 。知 。
ͭ͘Γํ8):ΛͲ͏ʹ͔͢Δํ๏͕υϝΠϯϞσϦϯάʹ͓͚Δ)08ͳͷ͔͠Εͳ͍ʁͱݴ͏͜ͱͰ8):ʹΞϓϩʔν͢Δύλʔϯͱͯ͠%%%ΛಡΉͱྑ͍͔͠Εͳ͍ʁ
υϝΠϯϞσϧͷͭ͘Γํ> >⽅ > ⽅
υϝΠϯϞσϧͭ͘Ε͍ͯΔ֤ʑͷؔ৺ྖҬʹυϝΠϯ֤ʑͷೝࣝʹϞσϧԿ͔͠ΒͷυϝΠϯϞσϧͰ͖͍ͯΔ
Ͱᐆດʹ͋Δ͚ͩͷϞσϧෆ߹Ͱෆ҆ఆͰشൃ͢ΔϞσϧͱͯ͠Ͳͷଆ໘Λڧௐ͍ͯ͠Δ͔؍ଌෆೳؾʹͳΔͱݴ͏͓ؾ࣋ͪϞσϧ
ϞσϦϯάͱݴ͏׆ಈʹग़͢ݴ༿ʹ͢ΔҰཡʹ͢Δਤʹ͢Δ
ඥ͖౾ͷٯऻࣝผ୯Ґͱؔ࿈ιϑτΣΞ։ൃ͜ͷΓޱͰՌΛ্͛ଓ͚͍ͯΔɻڧྗ͔ͭ൚༻ɻҐஔʹҙਤ͕͋Δ͔ᐆດ
ϞσϧͷϒϥογϡΞοϓࣗવʹͭ͘Ε͍ͯΔϞσϧΛຏ͍͍ͯ͘ͱݴ͏ಓԿ͔͠ΒͷΨΠυΛͬͯํੑΛ͚͍ͭͯ͘ܧଓతʹվળ͠ଓ͚ͯͦ͜ͷϞσϧ࠷ॳνϟν͍͍ͯ͘ɻສೳͰᘳͳϞσϧͳΜͯͳ͍ɻ
ೋํͷͭ͘Γํࠓ͋Δͷ͔ΒআڈΛॏͶͯચ࿅͍ͤͯ͘͞ؾʹͳΔͷΛϐοΫΞοϓ͍ͯ͘͠後者 ⽅ 多 気 ⾼
ೋํͷͭ͘Γํཱͨͳ͍ ཱͭγϯϓϧෳࡶhttps://www.slideshare.net/t_wada/the-spirit-of-tdd洗練
υϝΠϯۦಈઃܭ
999ۦಈ999
999ۦಈ999υϝΠϯۦಈઃܭςετۦಈ։ൃνέοτۦಈ։ൃমۦಈɺɺɺɺ
999ۦಈ999ڞ௨͢ΔͷલऀΛಓ۩ʹͯ͠ޙऀʹಇ͖͔͚Δ͜ͱಈ͔͍ͨ͠ͷޙऀۦಈͩͱΤωϧΪʔͷൃ৴ݯ͘Β͍ͷΠϝʔδ͚ͩͲɺ%SJWFOͩͱϋϯυϧѲͬͯΔײ͋Δʢ͠ͳ͍ʁʣ
υϝΠϯۦಈઃܭυϝΠϯͷྗΛઃܭʹ͑ͨΒ͍͍ײ͡ʹಈ͘Αॻ੶ʹʮޭͨ͠ϓϩδΣΫτ๛͔ͳυϝΠϯϞσϧ͕͋ͬͨʯͱ͔͚͋ͬͨͲɺ͍݁ͯ͠Δ͔ʹٙ͋Δɻ
υϝΠϯΛॏͶΔ
ڠۀ͢ΔυϝΠϯυϝΠϯυϝΠϯ共通 持 組織 、分断 。成⽴ 。
υϝΠϯυϝΠϯυϝΠϯΛॏͶΔ…… 。
υϝΠϯυϝΠϯυϝΠϯυϝΠϯΛॏͶΔ共有 識別共有 修飾 「 」 。
υϝΠϯυϝΠϯυϝΠϯ͏·͍͔͘ͳ͍ͷ⽚⽅ 。駆動 。
υϝΠϯυϝΠϯυϝΠϯ͍ͪ͘͞͡ΊΑ͏頑張組織固有( 組織 存在 )経験 学 進 破綻
υϝΠϯΛॏͶΔҰͰଟ͘ڞ༗Ͱ͖ͳ͍ؔΘΔϩʔϧ͕ଟ͍΄ͲղܾखஈΛଟ͘औΕΔϚϧνυϝΠϯͰઓ͑ΔϩʔϧΛލ͍Ͱڞ༗Ͱ͖Δͷ৫ͷ8):Ͱɺ͜ΕΛʮυϝΠϯʯͱͯ͠औΓΉम০ͳ͠ͷʮυϝΠϯʯ৫Ͱಉ͡ʮࣗʹͱͬͯͷυϝΠϯ͜Ε͔ͩΒʜʜʯͱ্ॻ͖͠ͳ͍ɻϩʔϧυϝΠϯϩʔϧυϝΠϯɻ
υϝΠϯϞσϧͷݕࠪ
ྑ͍υϝΠϯϞσϧ🤔
ྑ͍υϝΠϯϞσϧ🤔ཱͭϞσϧ͑ΔϞσϧͲ͏ͬͯଌΔʁ
ʮྑ͍ʯͷఆٛҙਤΛࠐΊͯ࡞ͬͨͷɻઆ໌Ͱ͖Δͷɻ※ 私 思 (異論 承知)
ϞσϧͷݕࠪϞσϧΛͬͯԿ͔Λઆ໌ͨ͠ΒݕࠪͰ͖ΔʢఆੑධՁʣΨΠυϨʔϧʹԊͬͨϞσϧఆྔධՁͰ͖ͳ͘ͳ͍ίʔυͷϝτϦΫεͱ͔͕ྫଞͷఆྔධՁݕূத
υϝΠϯϞσϧͱ࣮
Ϟσϧ͍͍ײ͡
Ϟσϧ͍͍ײ͡ͳͷʹ࣮ͱဃ͍ͯ͠Δؔ࿈Θ͔Βͳ͍
υϝΠϯυϝΠϯυϝΠϯॏͶͨͭΓʹͳͬͯΔ⾃分 似 何 作⼈⼒ 。実装 膨 。υϝΠϯ
ͭΓʹͳͬͯΔܯʮ999ͬͯཁ͢ΔʹʢϩʔϧυϝΠϯͷʣ:::ʯͰ͢ΑͶม༁͕ೖΔͱҙຯΛࣦͬͨΓྗͷୡ͕ҰํʹͳͬͨΓ͢ΔͦΕͰෳࡶʹΜͰෛ͚ͯΔྺ࢙
υϝΠϯϞσϧͱ࣮Ұக͠ͳ͍ɻ͢ΔΘ͚͕ͳ͍ɻ͔͠͠Γ͍͚ͯ͠ͳ͍ɻ
Ұக͠ͳ͍͕࣮ͷଆ໘ΛϞσϧԽͨ͠ͷυϝΠϯϞσϧʹۙࣅͤ͞Δ͜ͱͰ͖Δ
ίʔυͷྗΛ͑Δͣ
Ґஔ͚ͱ͔JIG wiki参照
υϝΠϯϥΠςΟϯάυϝΠϯϞσϧͷ߹ੑΛอͭͨΊɺͦΕ͕ಘҙͳϓϩάϥϛϯάݴޠͰهड़͠ɺ࣮υϝΠϯ͔ΒυϝΠϯϞσϧʢಛఆ؍ͷՄࢹʣΛ࡞͢Δɻ
υϝΠϯυϝΠϯυϝΠϯ࣮͔ΒυϝΠϯϞσϧΛ࡞Δ限 実装 、実装 共有 作 、乖離 防 同時 曖昧性 検査 ⾏ 。
+*(Ϟσϧͷੜ໋ҡ࣋ஔhttps://speakerdeck.com/irof/kodowodomannakaniju-etashe-ji-apuroti
υϝΠϯϞσϧͷͭ͘Γํ
υϝΠϯϞσϧͳΜͱ͔ͳΔυϝΠϯ
υϝΠϯυϝΠϯಉ͡υϝΠϯʹऔΓΉͨΊʹ
υϝΠϯυϝΠϯυϝΠϯ͍ͪ͘͞͡Ίͯ
υϝΠϯυϝΠϯυϝΠϯҭ͍ͯͯ͘
υϝΠϯυϝΠϯυϝΠϯυϝΠϯͱϩʔϧυϝΠϯ͕Εͳ͍Α͏ʹ࿈ಈͤ͞Δ連動 ⼒ 借握 現実的 思 。⾮ 向 DSL 作 ⼀助 、失敗歴史 。歴史 学 、 、経験 学 。
υϝΠϯϞσϦϯάͷ8):ෳࡶʹెखۭݓͰΉͷਏ͍৫ͷυϝΠϯຊ࣭తʹෳࡶ͔ͩΒ৫͕ଘࡏ͢Δຊ࣭తͳෳࡶ͔Βਵతͳෳࡶ͞ʢٕज़ྖҬʣΛऔΓআ͍ͨΓɺຊ࣭తͳෳࡶ͞ʹΉͨΊʹɺυϝΠϯͰϞσϦϯάͯ͠ɺυϝΠϯΛϞσϦϯά͢Δͱݴ͏ಓ۩͕͑Δɻ།Ұઈରͷಓ۩Ͱͳ͍͚͘நԽޮ͘
ʢݴ͏қ͠ʣ