Slide 1

Slide 1 text

ٕज़తෛ࠴ͱ޲͖߹͏ /BPZB*UP גࣜձࣾҰٳ$50 

Slide 2

Slide 2 text

Ұٳͷ঺հ ͔ΜͨΜʹ  ্࣭ͳϗςϧ΍ཱྀؗϨετϥϯͷ༧໿΍Ϊϑτɻ॓ധ༧໿Ͱ༗໊Ͱ͕͢ɺ࠷ۙ͸Ϩετϥϯ༧໿΋ओྗࣄۀن໛ʹ

Slide 3

Slide 3 text

ن໛ײͳͲ •  ैۀһ໊͘Β͍ɻ͏ͪΤϯδχΞ໊ఔ౓ •  ೥ʹϩʔϯνɺ͋Ε͔Β೥ –  Ϩετϥϯ͸೥ •  αʔόʔ͸୆ఔ౓ •  $ɺ7#ɺ1ZUIPOɺ+BWB4DSJQUɺ(Pɺ4XJGU –  8FC͸ࠓͷͱ͜Ζ.JDSPTPGUςΫϊϩδ /&5$MBTTJD"41  –  σʔλΤϯδχΞϦϯάपΓ΍Πϯϑϥ͸1ZUIPOɺ/PEFɺ(P –  'BTUMZɺ"84 ɺ-BNCEB ɺ42-4FSWFS#JH2VFSZ3FETIJGU •  ͨͩ͠ઈࢍҠߦதͰɺ·ͩΦϯϓϨ΋͋Δ

Slide 4

Slide 4 text

ΞδΣϯμ •  ೥ؒͷऔΓ૊Έ –  ٕज़ސ໰ͱͯ͠ܞΘͬͨ೥ؒ –  $50ண೚Ҡߦͷ೥ •  ݹ͘ͳͬͨγεςϜͱͲ͏޲͖߹͖͔ͬͯͨ

Slide 5

Slide 5 text

ٕज़ސ໰ͷࠒͷ͸ͳ͠

Slide 6

Slide 6 text

૎Δ͜ͱ೥લͷҰٳ h"ps://speakerdeck.com/kensuketanaka/modannaxian-chang-nisurutamenishi-jian-sitakoto

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

ٕज़ސ໰ͱͯ͠ܞΘΔ͜ͱʹ •  ೥݄ʙ೥݄ •  िʹҰ౓ɺ࣌ؒఔ౓ͷϛʔςΟϯά

Slide 9

Slide 9 text

݁Ռ •  ೥΄ͲͰେ͖͘վળͨ͠ –  (JU)VC'MPX –  ίʔυϨϏϡʔ –  (JU)VC +FOLJOTʹΑΔσϓϩΠͷࣗಈԽ –  4FMFOJVN8FC%SJWFSʹΑΔ&&ςετ –  4MBDL 2JJUB5FBN

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

ͦͷޙ΋վળΛଓ͚ͯ೥݄ࠒ $50ண೚௚લ  •  ϒϥϯνσϓϩΠ؀ڥ •  3VOOOJOHCFUBJOQSPEVDUJPO •  ϩάͷՄࢹԽ4MBDL௨஌ʹΑΔΤϥʔݕ஌

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

͜Ε͡Ό͋ɺԿΛ࡞ͬͯΔ ͔Α͘Θ͔Βͳ͍ͷͰŋŋŋ QSPEVDUJPOʹݶΓͳ͍ۙ͘ %#ΛϨϓϦΧͯ͠ɺͦΕͰ ։ൃɻ %))΋ݴͬͯͨΑ 

Slide 14

Slide 14 text

ΦϑΟε಺ʹܝࣔ͢Δ͜ͱ Ͱɺো֐͕͋ͬͨΓ͢Δͱ ͙͢Θ͔Δ ログ環境とDevOps ~一休.comでの事例 h"ps://speakerdeck.com/shoichiron/roguhuan-jing-todevops-xiu-dot-comdefalseshi-li

Slide 15

Slide 15 text

݁Ռ •  ϦεΫڐ༰౓ͷ޲্ˠՁ஋ఏڙεϐʔυͷ޲্ –  ϦϦʔεස౓͕૿͑҆શʹͳͬͨ͜ͱͰɺมߋͷϦεΫ͕ݮͬͨ –  ૊৫จԽʹ΋େ͖͘ӨڹΛ༩͑ͨ •  िΠν͔͠ϦϦʔεͰ͖ͳ͍ͷͰෆ۩߹Λग़͞ͳ͍Α͏ϐϦϐϦͯͨ͠Β͍͠ •  ࠷ۙ͸౰࣌Ұ൪ϐϦϐϦ͍ͯͨ͠Ϧʔμʔ͕ʮ΍ͬͪΌ͑ΑʂʯΈ͍ͨͳ੎͍

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

一休.comのE2Eテスト事情 h"ps://speakerdeck.com/shotaakasaka/seleniumjp4-ikyu

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

ͦΜͳ͜ΜͳͰ͍Ζ͍Ζਐ௙ͨ͠Θ͚Ͱ͕͢ŋŋŋ •  ෺ࣄ͕͏·͘ਐΉͨΊʹେ੾ͩͬͨ͜ͱ͸Կͩͬͨͷ͔  •  ࣦഊ͸ͳ͔ͬͨͷ͔

Slide 20

Slide 20 text

ॏཁͩͬͨ͜ͱ •  ໰୊Λཧղ͠ɺ੔ཧ͢Δϓϩηεͷܧଓ •  ໰୊ʹ͍ͭͯܧଓతʹߟ͑ଓ͚Δश׳ ͦ΋ͦ΋िʹ౓͔͠ߦͬͯͳ ͍ͷͰɺ࡞ۀ͸͠ͳ͍͠ɺ )PX5PΛৄࡉʹڭ͑ΒΕΔ Θ͚Ͱ΋ͳ͍

Slide 21

Slide 21 text

ࣄ৘Λ஌Βͳ͍֎ͷਓ͕นଧͪ໾ʹͳΔ͜ͱͰ໰୊Λཧղ •  ౰ॳͷձ࿩ –  Ұٳʮ(JU)VCͱ͔ςετͱ͔΋ͬͱϞμϯͳ։ൃ͕͍ͨ͠ΜͰ͢ʯ –  OBPZBʮ͸΍Δؾ࣋ͪ͸෼͔Δ͕ɺ·ͣ͸ݱঢ়Λڭ͑ͯ͘Εʯ •  ʙिʹҰ౓ͷϛʔςΟϯά –  "ʮࠓ೔͸σϓϩΠपΓͷݱঢ়Λઆ໌͠·͢ʯ –  OBPZBʮ͜͜͸ɺ͜͏͍͏͜ͱ ʯ –  #ʮ͍΍ɺͦ͜͸͜Ε͜Ε͜͏͍͏ܦҢͰ͜͏ͳͬͯͯŋŋŋʯ –  OBPZBʮͳΔ΄ͲɻͰ΋ͦΕ͸ແବͬΆ͍Ͷʯ –  "ʮͦ͏Ͱ͢Ͷʯ

Slide 22

Slide 22 text

໰୊Λ၆ᛌతʹ੔ཧ͢Δ ͜ͷද͕େࣄͳͷͰ͸ͳ͘ɺ͜ΕΛ ࡞ΔϓϩηεͰ໰୊ͷཧղͱ੔ཧΛ ਐΊͨ͜ͱ͕େࣄ

Slide 23

Slide 23 text

ͦ΋ͦ΋ɺͳΜͰ͏·͍ͬͯ͘ͳ͔͔ͬͨ •  ٕज़త՝୊Λු͖ூΓʹ͢Δଘࡏͷෆࡏ –  ՝୊ͷݱঢ়੔ཧɺ໰୊ͷཧղΛਂΊΔϓϩηε͕͚͍ܽͯͨ –  $50ෆࡏ໰୊ DG3FCVJMEGN  •  ܧଓతʹ໰୊ʹ͍ͭͯߟ͑ΔɾऔΓ૊Ήϓϩηε͕ͳ͔ͬͨ –  Ұےೄʹ͸͍͔ͳ͍໰୊΋ଟ͍ˠܧଓతऔΓ૊Έ͕ඞཁ –  ݸʑਓͷҙ͚ࣝͩͰ͸ܧଓతʹऔΓ૊Ήͷ͸೉͍͠ ٕज़ސ໰͕ఆظతʹ๚໰ͯ͠ ͘Δɺͱ͍͏ͷ͕͜ΕΒΛղ ফ͢Δࡐྉͩͬͨͷ͔ͳͱ

Slide 24

Slide 24 text

Ұํɺࣦഊͨ͜͠ͱ •  ݱঢ়൱ఆ͔Βೖͬͯ͠·ͬͨ͜ͱͰແ༻ͳۓுΛੜΜͩ –  *4)*/ͱ͍͏ϓϩδΣΫτ໊ŋŋŋʮ౗ນ͞ΕΔଆ͔ͱࢥͬͨʯ •  ݱߦγεςϜʹର͢ΔϦεϖΫτෆ଍ –  ࣗ෼ͨͪͷࠓ ച্ɺརӹɺڅྉ ͕ʮෛ࠴ʯ΍ʮϨΨγʔʯͱݺΜͰ ͍ΔͦΕ͔ΒੜΈग़͞Ε͍ͯΔ͜ͱΛ๨Εͯ͸͍͚ͳ͍ –  ೥΋΍͍ͬͯΕ͹ɺࣄۀత੒ޭΛऩΊͨαʔϏε͸·ͣؒҧ͍ͳ͘ ϨΨγʔΛ๊͑Δ •  ͦΕ͕౰વͳΜͩͱ͍͏લఏʹཱͭ ʮੋʑඇʑ͕ΤϯδχΞͷ࢟ ੎Ͱ͠ΐʯ͸ਖ਼࿦Ͱ͕͢ɺਓ ؒ͸ײ৘ͷੜ͖෺Ͱ͢

Slide 25

Slide 25 text

ֶΜͩ͜ͱ •  ϐʔϓϧ΢ΣΞͷʮιϑτ΢ΣΞ։ൃ্ͷ໰୊ͷଟ͘͸ɺٕज़తͱ ͍͏ΑΓࣾձֶతͳ΋ͷͰ͋ΔɻʯΛ஍Ͱ͍ͬͯͨ •  ໰୊ͷཧղٕज़తͳ)PX5P –  ºʮ͜͏͋Δ΂͖Ͱ͠ΐʂʯ –  ˓ʮͳͥͦ͏͋Δ΂͖΋ͷ͕ɺͦ͏ͳ͍ͬͯͳ͍ͷ͔ɻͦ͏ͳΒͳ ͔ͬͨͷ͸ԿͰͳͷ͔ʯͱ͍͏໰͍ •  ͜ΕΛಥ͖٧Ί͍ͯ͘ͱɺٕज़ͷ໰୊Ͱ͸ͳ͘ਓ΍૊৫ʹର͢ΔΞϓϩʔν͕ݟ ͑ͯདྷΔ

Slide 26

Slide 26 text

$50ண೚Ҏ߱ͷ͸ͳ͠

Slide 27

Slide 27 text

ࢁ͸େ͖͔ͬͨ •  ސ໰ͷ೥ؒͰ͍Ζ͍Ζਐḿͨ͠ͱ͸ࢥ͍͕ͬͯͨŋŋŋ •  େ͖ͳۄ͸·͍ͩͭ͘΋͋ͬͨ –  Ͱ͢ΑͶ

Slide 28

Slide 28 text

•  &MBTUJDJUZʹ͚ܽΔσʔληϯλʔΠϯϑϥ ΦϯϓϨϛε  •  ΦΦΧϛগ೥Խ͍ͯ͠ΔΞϥʔτ௨஌ •  ܦ೥Ͱݹ͘ͳͬͨίʔυϕʔεɺΞʔΩςΫνϟ •  ൿ఻ͷλϨԽͨ͠ɺۀ੷ʹ௒ߩݙ͍ͯ͠ΔϚʔέ༻ࣾ಺%# •  ະͩʹ"044-Խ͞Ε͍ͯͳ͍αʔϏε •  ຑᙺ͍ͯͯ͠Α͘Θ͔Βͳ͘ͳ͍ͬͯΔॾʑ –  ϕϯμʔʹࢧ෷͍ͬͯΔӡ༻อकྉͷଥ౰ੑ –  ଓ͚Δඞཁ͕͋Δͷ͔ɺഇࢭ͍͍ͯ͠ͷ͔Θ͔Βͳ͍ϓϩηε –  ΤϯδχΞ͕࢖ͬͯΔಓ۩͕ݹΊ͔͍͠ –  ͍ΖΜͳࡶ༻ʹ௥ΘΕΔ։ൃϚωʔδϟʔ

Slide 29

Slide 29 text

ͳͥސ໰ͷ೥ؒɺ͜ͷେ͖ͳ໰୊ʹखΛ͚ͭΒΕͳ͔ͬͨͷ͔  •  ͦͷ͋ͨΓʹղ͘΂͖໰୊͕͋Δͷ͸ബʑΘ͔ͬͯ͸͍ͨ •  ਓؒ͸ຊೳతʹɺେ͖͗͢Δ໰୊͔Β໨Λഎ͚Δੑ࣭ –  ࣗ෼΋͍ͬͪΐטΈͰ͖ͦ͏ͳ໰୊͸׆ൃʹٞ࿦͞ΕΔ͕ɺઐ໳త͔ ͭେ͖ͳ໰୊͸࿩୊ʹ΋্Βͳ͍

Slide 30

Slide 30 text

վΊͯ໰୊Λཧղ͠ɺ੔ཧ͢Δ͜ͱ͔Β࢝Ίͨ •  ݱঢ়ΛௐࠪɻࢿྉʹαϚϦ͠આ໌Ͱ͖ΔϨϕϧ·ͰཧղΛਐΊΔ •  ৽ਓͱͯ͠ͷΩϟονΞοϓͱͷҰੴೋௗ

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

γεςϜؔ࿈අ༻͸શͯ#*Ͱݟ͑ΔԽ

Slide 35

Slide 35 text

՝୊ײ͕Θ͔͖ͬͯͨͷͰ͍ͭ΋ͷΑ͏ʹ੔ཧͯ͠ŋŋŋ

Slide 36

Slide 36 text

ํ਑Λ໌Β͔ʹͯ͠ɺల։

Slide 37

Slide 37 text

ඞཁͳΒ૊৫ͷܗ΋ม͑Δ͠ɺ෦ॺ΋࡞Δ %8)΍$3.ج൫ͳͲσδλϧ ϚʔέςΟϯά΍σʔλαΠΤϯ εʹඞཁͳج൫Λ։ൃɾӡ༻͢Δ νʔϜ

Slide 38

Slide 38 text

෺ࣄ͕ਐΈ͸͡ΊΔ •  σʔληϯλʔˠΫϥ΢υ΁Ҡߦɻ͋ͱ਺ϲ݄Ͱ׬ྃ •  େྔͷΞϥʔτˠϞχλϦϯάΛ࠶ߏ੒ͯ͠੔ཧ •  ൿ఻ͷλϨ%#ˠ&NCVML EJHEBHͰ࠶ߏங •  "044-Խˠ׬ྃ •  ຑᙺ͍ͯͯ͠Α͘Θ͔Βͳ͘ͳ͍ͬͯͨࣄฑ –  ΤϯδχΞͷ੮ͷి࿩ˠશ෦औͬ෷ͬͨ –  ؂ࠪূ੻ͷͨΊ͚ͩͷνέοτˠ(JUͷཤྺͰ୅༻ͯ͠ࢭΊͨ –  ӡ༻อकྉˠֹͷେ͖ͳ΋ͷΛਫ਼ࠪ͠ϕϯμʔͱՁ֨ަব –  ΤϯδχΞͷಓ۩ˠ༧ࢉΛ֬อͯ͠޷͖ͳ΋ͷΛങ͑ΔϧʔϧΛ࡞ͬͨ –  Ϛωʔδϟʔˠ։ൃνʔϜઐଐͷ૯຿Λޏͬͯશ෦ר͖औͬͯ΋Βͬͨ

Slide 39

Slide 39 text

΍Γ͗͢Δਓͨͪ 曲面ディスプレイ 43インチ4Kモニタ 搬入時

Slide 40

Slide 40 text

Ͳ͏Έͯ΋ήʔϛϯάΩʔϘʔυɻ ҰԠ੩ԻΒ͍͠Ͱ͢ŋŋŋ

Slide 41

Slide 41 text

ਓؾ͸&*;0ͷਖ਼ํܗϞχλ 'MFY4DBO&72ɻ 7JTVBM4UVEJPΛશը໘Խ͢Δͱ͢͜ ͿΔշదͩͦ͏Ͱ͢

Slide 42

Slide 42 text

എதΛԡ͢ •  Πϯϑϥͷ࡮৽͕ਐ·ͳ͔ͬͨͷ͸  •  ٕज़తʹࠔ೉ͳԿ͔ ن໛͕େ͖͗͢Δ  •  ˠಛघͰߴՁͳϋʔυ΢ΣΞΛ࢖͍ͬͯͨͨΊɺͦΕΛࣺͯΔϦεΫ͕େ ͖͘ݱ৔൑அ͕೉͔ͬͨ͠  •  ʮΠϯϑϥΛ೥ޙ·ͰʹΫϥ΢υʹҠͯ͠ʯʮ͑ͬʯ –  ํ਑Λશࣾతʹ໌֬Խͨ͜͠ͱͰपลͷҙࢤܾఆʹ΋ྑ͍೾໲ •  ৽͍͠ϓϩδΣΫτ͸ϚωʔδυαʔϏεΛར༻͢ΔલఏͰઃܭ͞ΕΔΑ͏ʹ ͦ͏͍ͨ͠ͱࢥ͍͚ͬͯͨͲɺ ୭͔͕എதΛԡ͞ͳ͍ͱඈͼࠐ Ίͳ͍ɺΈ͍ͨͳঢ়گΛଧ։

Slide 43

Slide 43 text

フォーカスすべき問題をクリアにすれば、あとはどういう物にすればいいかはエンジニアは知っている

Slide 44

Slide 44 text

ґଘؔ܎Λղআ͢Δ •  "044-Խ͕ਐ·ͳ͔ͬͨͷ͸  •  ΞϓϦέʔγϣϯΤϯδχΞ͸Πϯϑϥଆͷ࡞ۀ͕େมͩͱࢥ͍ͬͯΔ •  Πϯϑϥଆ͸ΞϓϦέʔγϣϯΤϯδχΞ͕େมͩͱࢥ͍ͬͯΔ •  ͓ޓ͍͕૬खͷ࡞ۀ଴ͪͩͱࢥ͍ࠐΈ –  ཁ݅Λ੔ཧͯ͠ɺґଘؔ܎Λղআ͢Δ •  ʮΞϓϦέʔγϣϯଆΛਐΊͯऴΘͬͨΒΠϯϑϥʹ࿈བྷͯ͠ʯ •  ʮΞϓϦέʔγϣϯଆؾʹͤͣઃఆΛਐΊͯ࿈བྷ͕͋ͬͨΒ੾Γସ͑ͯʯ •  ͙͢ʹ׬ྃͨ͠ɻҰ෦αʔϏε͸'BTUMZͰ)551Խ΋

Slide 45

Slide 45 text

ӌճ࿏Λ௵ͯ͠ਖ਼໘ೖΓޱΛ։͚Δ •  Ϛʔέ%#͕ൿ఻ͷλϨԽͯ͠͠·ͬͨͷ͸  –  ෳࡶͳཁ݅ ٕज़ͷબ୒ϛε ଐਓԽ  –  ˠ୲౰͕ηΩϡϦςΟ্ͷࣄ৘͔Βᷖճ͢Δඞཁ͕͋Δŋŋŋͱࢥ͍ࠐΜͰͨ •  جװ%#͸ԕ͍ˠ౿Έ୆ͳͲͷᷖճ࿏Λܦ༝ͯࣾ͠಺΁ಧ͘&5- •  ᷖճͷ࢓ํ͕ಛघෳࡶͳ͍ͤͰ҉໧஌Խ •  $*40ͱձ࿩͠ɺ҆શ͕୲อ͞Εͨਖ਼໘ݰؔΛ࡞Δ –  ͋ͱ͸&NCVML EJHEBHͰ&5- –  044Λૉ௚ʹ࢖͏ –  มΘͬͨ͜ͱ͸ͤͣɺγϯϓϧʹɻ

Slide 46

Slide 46 text

ຑᙺ͍ͯ͠Δ"T*Tͷ5P#FΛೝࣝͤ͞Δ •  ΦΦΧϛগ೥ʹͳ͍ͬͯΔΞϥʔτ΍ϞχλϦϯά –  ҟৗ͕ىͬͯ͜Δͷ͔ىͬͯ͜ͳ͍ͷ͔શવΘ͔Βͳ͍ –  ϕςϥϯ͸ʮ͜Ε͸εϧʔ͍͍ͯ͠΍ͭʯʮ͜Ε͸μϝͳ΍ͭʯͱ͍͏҉໧஌ ͕͋ΔͷͰؾʹͳΒͳ͍ •  ʮ͜Ε͜Ε͜͏͍͏ঢ়ଶʹ·Ͱ΋͍ͬͯͬͯཉ͍͠ʯͱ͍͏ظ଴஋ΛΫϦ Ξʹ͢Δ

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

%BUB%PHͰϞχλϦϯάΞϥʔτΛ࠶ߏங •  ணखͨ͠Β਺೔Ͱ5P#Fͳঢ়ଶʹͳͬͨ –  Կ೥΋͍··ͰͷܗͰ΍ͬͯͨͷ͸ԿͩͬͨΜͩײ

Slide 49

Slide 49 text

΍͸Γɺࣾձతͳ໰୊ •  ʮͳͥͦ͏͋Δ΂͖΋ͷ͕ɺͦ͏ͳ͍ͬͯͳ͍ͷ͔ɻͦͷݪҼ͸Կ ͔ ʯ –  ํ਑͕໌֬ʹͳ͍ͬͯͳ͍͜ͱ͕ϘτϧωοΫʹˠ໌֬ʹ͢Δ –  ϧʔϧ͕Ұਓา͖ͯ͠ϘτϧωοΫʹˠࢥ͍ࠐΈΛऔΓআ͘ –  ෳࡶʹߟ͑͗ͯ͢ʮ΍ΕΔؾ͕͠ͳ͍ʯ͕ϘτϧωοΫʹˠγϯϓϧ ͳ୅ସҊΛఏࣔ͠τϨʔυΦϑΛڐ༰͢Δ

Slide 50

Slide 50 text

݁Ռ͕ग़࢝ΊΔ •  Ϋϥ΢υҠߦͷ͓͔͛ͰώϧφϯσεΞλοΫͰ΋མͪͳ͍ •  &5-Λγϯϓϧʹ͓͔ͨ͛͛͠Ͱ%8)ߋ৽׬͕ྃޕޙˠૣேʹ୹ॖ͞ ΕΔ –  ϚʔέςΟϯάࢪࡦͷճస਺্͕͕Δ •  ΤϯδχΞͷୀࣾ࣌ࠁ͕ૣ͘ͳͬͨ –  ʮ೥͘Β͍લͬͯͳΜ͔ΈΜͳ஗͘·Ͱ࢒ͬͯ·ͨ͠ΑͶʯʮ͔֬ʹŋŋŋͳΜ Ͱ͚ͩͬͨͬŋŋŋʯ

Slide 51

Slide 51 text

ྑ͔ͬͨྑ͔ͬͨŋŋŋͱݴ͍͍ͨͱ͜Ζ͕ͩ

Slide 52

Slide 52 text

•  &MBTUJDJUZʹ͚ܽΔσʔληϯλʔΠϯϑϥ ΦϯϓϨϛε  •  ΦΦΧϛগ೥Խ͍ͯ͠ΔେྔͷΞϥʔτ௨஌ •  ܦ೥Ͱݹ͘ͳͬͨίʔυϕʔεɺΞʔΩςΫνϟ •  ൿ఻ͷλϨԽͨ͠ɺۀ੷ʹ௒ߩݙ͍ͯ͠ΔϚʔέ༻ࣾ಺%# •  ຑᙺ͍ͯͯ͠Α͘Θ͔Βͳ͘ͳ͍ͬͯΔॾʑ –  ϕϯμʔʹࢧ෷͍ͬͯΔӡ༻อकྉͷଥ౰ੑ –  ଓ͚Δඞཁ͕͋Δͷ͔ɺഇࢭ͍͍ͯ͠ͷ͔Θ͔Βͳ͍ϓϩηε •  ୅දྫŋŋŋ؂ࠪূ੻ͷͨΊͷ3FENJOFνέοτىථ –  ࢖ͬͯΔಓ۩ ϋʔυ ͕ݹΊ͔͍͠ –  ͍ΖΜͳࡶ༻ʹ௥ΘΕΔ։ൃϚωʔδϟʔ ʮҰ൪໽հͦ͏ͳ࿩Ͱ͚͢Ͳ͜ Ε͸Ͳ͏ͳͬͨΜͰ͢ ʯ ʮŋŋŋʯ

Slide 53

Slide 53 text

技術的負債 த৺ʹ޲͔͏΄Ͳਂࠁ౓͕ େ͖͍ͱ͢Δ

Slide 54

Slide 54 text

पล͹͔Γ͕ղܾ͞Ε͍ͯͯɺҰ൪େ͖ͳ໰୊͕ղܾ͞Ε͍ͯͳ͍ 技術的負債 レガシー アーキテクチャ 問題 (JU)VC σϓϩΠ ࣗಈԽ ϩάͷՄࢹ Խ 4MBDL ৘ใڞ༗ ϏϧυύΠ ϓϥΠϯ

Slide 55

Slide 55 text

൓ল •  ૊৫తίϯαϧతͳΞϓϩʔνʹཔΓ͖͗ͨ͢Β͍ –  ݁Ռɺຊؙʹख͕͔ͭͳ͍ͱ͍͏ঢ়گʹ –  େ͖ͳ໰୊ʹखΛग़͍ͯ͠Δͭ΋ΓͰ͍͕ͨɺϚΫϩʹ͸΍͸Γʮղ ͚Δൣғ಺ͷ໰୊Λղ͍͍ͯΔʯঢ়گΛ୤͍ͤͯͳ͔ͬͨ ʮଟ͘ͷ໰୊͸ࣾձతͰ͋Δͷ͸ ΄Μ·΍ͳʙʯͱ͍͏੒ޭମݧ͕ अຐΛͨ͠

Slide 56

Slide 56 text

ਖ਼௚͢·Μ͔ͬͨɻͪΌΜͱ ٕज़ͷ໰୊ʹٕज़ͰΞϓϩʔ ν͢ΔͰ

Slide 57

Slide 57 text

΋͏ͻͱͭؾ͍ͮͨ͜ͱ •  Ͳ͏΍Β$50Ͱ͋Δࢲͷ޻਺͸͋Μ·ΓΈΜͳؾʹͯ͠ͳ͍ͬΆ͍ –  ࣄۀ෦ͷΤϯδχΞͷେ͖ͳ޻਺ΛϦϑΝΫλϦϯάʹ࢖͏ͧʂͱͳΔͱͦΕ ͳΓͷઆಘίετ͕͔͔Γͦ͏ –  ʮ$50͕޷͖ʹ΍ͬͯΔʯͱ͍͏ͷ͸Ͳ͏΍Β୭΋ؾʹͯ͠ͳ͍ͬΆ͍

Slide 58

Slide 58 text

ŋŋŋͱ͍͏Θ͚Ͱɺٕज़తΞϓϩʔνΛ։࢝ •  ೥Ҏ্લʹϩʔϯνͯ͠ɺͣͬͱͦͷ··։ൃ͖ͯͨ͠ҰٳϨετϥϯ ࣄۀ͸৳ͼ੝Γ  –  $MBTTJD"417#4DSJQU –  044ք۾Ͱ͍͏ͱੲͷ1)1Έ͍ͨͳײ͡ •  Ͳ͏͢Δ  –  /&5ʹҠߦ͢Δ $ͰϦϥΠτ͢Δ  –  ୤8JOEPXTϓϥοτϑΥʔϜ  –  ·ͣ͸ςετΛॻ͘  –  όοΫΤϯυΛ"1*Խͯ͠Ϟμϯͳϑϩϯτͱ෼཭ 

Slide 59

Slide 59 text

ݸਓతͳաڈͷ൓ল͔Β •  ए͔Γ͜͠Ζɺن໛ײ΍՝୊ͳͲΛ͋·Γؾʹ͍͖ͤͣͳΓϦϑΝ ΫλϦϯά͔Βೖͬͨ͜ͱ͕͋ͬͨ –  ͏·͍ͬͨ͘͜ͱ΋͋Δ –  Ұํɺࣦഊͨ͜͠ͱ΋͋Δˠத్൒୺ͳͷ͕৽ͨͳෛ࠴ʹŋŋŋ

Slide 60

Slide 60 text

ࣗࣾͷաڈͷ൓ল͔Β •  աڈʹओྗࣄۀͷେن໛ͳγεςϜϦχϡʔΞϧ –  ϏοάϦϥΠτ $MBTTJD"41͔Β/&5΁Ҡߦ  –  ϦχϡʔΞϧʹର͢Δظ଴͕ߴ·Γ͗ͯ͢ɺେখ͋ΒΏΔཁ͕݅ϦχϡʔΞϧ ʹدͤΒΕΔ –  ϓϩδΣΫτن໛͕େ͖͘ͳΓ͗͢ऩଋ·Ͱʹͱͯ΋ۤ࿑ͨ͠Β͍͠ •  ΞʔΩςΫνϟ͸ඞཁΑΓ΋ෳࡶͳ΋ͷʹͳͬͯ͠·ͬͨ •  ൓ল͔Β –  Կͷ໰୊Λղܾ͍ͨ͠ͷ͔ɺͦͷϑΥʔΧεΛ͸͖ͬΓͤ͞Δ –  ؔ৺ࣄΛ໌֬ʹ͠είʔϓΛখ͘͞ɻ࠶ઃܭʹ,*44ݪଇΛ๨Εͳ͍

Slide 61

Slide 61 text

ղܾࡦΑΓલʹ࣮૷ΛಡΈݱߦγεςϜͷ՝୊Λ໌Β͔ʹ͢Δ •  ΍ͬͺΓʮ໰୊Λཧղ͢Δʯͱ͍͏جຊ࢟੎͸่͞ͳ͍ •  ͸΍Δؾ࣋ͪΛ཈͑ɺݱߦγεςϜ෼ੳΛͬ͘͡Γߦ͏ ʮԶͷ7JTVBM4UVEJPʯ BLB&NBDT  ˞স͏ͱ͜ΖͰ͢

Slide 62

Slide 62 text

஍ಓʹίʔυϦʔσΟϯά •  6OJWFSTBMDUBHT IUUQTDUBHTJP Ͱλά෇͚ –  ΞΫςΟϒʹϝϯς͕ଓ͍͍ͯΔDUBHT •  BOZUIJOHZBFUBHTͱBOZUIJOHDNPDDVSTͰιʔείʔυΛ౉Γา͘ –  ΠϯΫϦϝϯλϧʹγϯϘϧΛߜΓࠐΈ֘౰ՕॴʹδϟϯϓͰ͖Δ&NBDT֦ு –  ϞμϯͳΤσΟλͰ͋Ε͹ಉ༷ͷػೳ͕͋Δ͸ͣ

Slide 63

Slide 63 text

ಡΈ࢝Ίͨ͸ྑ͍͕ɺԿΛख͕͔ΓʹݴޠԽ͢Δ͔  •  ൺֱର৅͕ཉ͍͠ –  ൺֱ΋ͳ͘ݱঢ়Λઆ໌͍ͯ͘͠ͷ͸ɺળ͠ѱ͠΋Θ͔ΓͮΒ͍ –  ຊਓ͸ཧղͰ͖ͯ΋पғͷਓʹઆ໌ͮ͠Β͍  •  ڞ௨ݴޠతͳ΋ͷͱൺֱ͢Δͷ͕ྑͦ͞͏ –  અࢠɺͦΕʮύλʔϯʯ΍

Slide 64

Slide 64 text

ΠσΟΦϜɺσβΠϯύλʔϯɺΞʔΩςΫνϟύλʔϯ •  ʮΞʔΩςΫνϟʯͷจ຺ͷύλʔϯͩͱओʹҎԼͷࡾ͔ͭ –  ΞʔΩςΫνϟύλʔϯŋŋŋཻ౓େ –  σβΠϯύλʔϯŋŋŋத –  ΠσΟΦϜ ϓϩάϥϛϯάύλʔϯ ŋŋŋখ •  ໰୊͸ཻ౓େ͖Ί͔Β෼ੳ͍ͨ͠ –  ΑͬͯɺΞʔΩςΫνϟύλʔϯͷΧλϩά͕͋Ε͹͍͍ –  અࢠɺͦΕ1PG&"" ΤϯλʔϓϥΠζΞϓϦέʔγϣϯΞʔΩςΫνϟύλʔ ϯ ͕Α͘஌ΒΕͨ୅ද΍

Slide 65

Slide 65 text

1PG&"" 1BUUFSOTPG&OUFSQSJTF"QQMJDBUJPO"SDIJUFDUVSF  ೥ஶऀϚʔνϯɾϑΝ΢ϥʔ ʮͨͱ͑͹܅͕ͨͪ࢖ͬͯΔ"DUJWF3FDPSE ͯͷ͸͜ͷຊͰղઆ͞Ε͍ͯΔύλʔϯͷҰ ͭͳΜͩΑɺ͑ͬ΁Μʯ 

Slide 66

Slide 66 text

ϨΠϠԽΞʔΩςΫνϟͷύλʔϯΧλϩάͷ၆ᛌਤ JEBTBLJDIZ͞ΜͷϒϩάΑΓ  h"p://d.hatena.ne.jp/asakichy/20120611/1339366061

Slide 67

Slide 67 text

ύλʔϯͱ࣮૷Λൺֱ͠ͳ͕Βߏ଄΍՝୊Λ໌Β͔ʹ͢Δ パターンにはそれぞれ長所・短所がある。パターンを基準に分類していくと自分たちのシステムの構造的 な長所や短所を言語化しやすかった

Slide 68

Slide 68 text

͜͏ͯ͠ϨΠϠ͝ͱʹ໰୊Λཧղ͠ͳ͕ΒݴޠԽ͍͖ͯ͠ŋŋŋ

Slide 69

Slide 69 text

Ճ͑ͯɺ՝୊͚ͩͰͳ͘௕ॴ΋໌Β͔ʹ͢Δ

Slide 70

Slide 70 text

ݱঢ়͕ݴޠԽͰ͖ͨΒ5P#F΋ߟ͑ͯΈΔ

Slide 71

Slide 71 text

೔ࠒ։ൃऀ͕ײ͡ΔετϨεͱͷϚοϐϯάΛߦ͏

Slide 72

Slide 72 text

υϝΠϯͷΑΓਂ͍ཧղ΋ฒߦͯ͠ߦ͏ •  ࣄۀ੹೚ऀɺϚʔέςΟϯάɺӦۀͱͷձ࿩ػձΛ૿΍͢ •  ϓϩμΫτઓུ͓ΑͼϓϩμΫτϚωδϝϯτʹࣗ෼΋ՃΘͬͯυ ϝΠϯͷ஌ࣝΛ૿΍͢

Slide 73

Slide 73 text

໰୊ͷཧղ͕ਐΉʹͭΕݱ࣮తͳਐΊํ͕ݟ͑ͯ͘Δ •  ϏοάϦϥΠτΛ͠ͳͯ͘΋গͣͭ͠ృΓସ͍͚͑ͯͦ͏ –  ϖʔδίϯτϩʔϥ τϥϯβΫγϣϯεΫϦϓτͷ૊Έ߹ΘͤͳͷͰϖʔδ ୯ҐͰͷ࣮૷ͷಠཱੑ͕ߴ͍ –  σʔλϚούͰந৅Խ͢Δ͜ͱͰ෺ཧ૚ σʔλϕʔε ͸ͦͷ··ɺ৽͍͠υ ϝΠϯΦϒδΣΫτΛಋೖͰ͖ͦ͏

Slide 74

Slide 74 text

ݴޠબఆ͸ݱࡏͷ௕ॴΛͳΔ΂͘อଘ͢Δ͜ͱΛ໨ඪʹͨ͠

Slide 75

Slide 75 text

৽͍࣮͠૷͸ബ͍ϑϨʔϜϫʔΫɺബ͍࣮૷Λ໨ࢦ͢ •  ՝୊ʹ߹ΘͤΔ –  σʔλߏ੒Λڧ੍͢ΔϑϧελοΫͳ΋ͷ͸࠾༻ͮ͠Β͍ –  ΋ͱ΋ͱઃܭ͸ෳࡶͰ͸ͳ͍ɻෳࡶͳΞʔΩςΫνϟΛ࣋ͪࠐΉͷ͸ຊ຤స౗ –  ബ͍࣮૷͕ϕετ •  ࢀߟʹͨ͠΋ͷŋŋŋ͍͖͞ΐ͏ͷ;ΕʔΉΘʔ͘͸ͯͳڭՊॻ –  IUUQTXXXTMJEFTIBSFOFUDIPZBQDBTJB –  IUUQTHJUIVCDPNIBUFOB)BUFOB5FYUCPPL

Slide 76

Slide 76 text

ࢀߟʹͨ͠ͷ͸ͲΜͳΞʔΩςΫνϟίϯηϓτ͔ •  ಡΉίʔυ͕࠷খ ڞಉ։ൃͷͨΊʹ  –  ݶΓͳ͘ബ͍ϑϨʔϜϫʔΫ㲈ઃܭࢦ਑ŋŋŋಡΉίʔυ࠷খ –  ڞಉ։ൃʹඞཁͳͷ͸ڞ௨ͷ࣮૷Ͱ͸ͳ͘ɺڞ௨ͷઃܭࢦ਑  •  ҆શͰ͋Δ͜ͱ ৴པੑઃܭ  –  ةݥͳ͜ͱΛ͢ΔͨΊʹΑΓଟ͘ͷίετ͕ඞཁʹͳΔΑ͏ʹ •  σϑΥϧτͰ҆શɻةݥͳ͜ͱΛ͢Δʹ͸໌ࣔతͳએݴ –  42-Ͱ*0͢Δͷ΋ίετ͕ඞཁͳ͜ͱˠ؆୯ʹҾ͚ΔΑ͏ʹ͗͢͠ͳ͍ •  ίετ͕͔͔Δ͜ͱΛศརʹͯ͠͸͍͚ͳ͍ cf. ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく h"ps://www.slideshare.net/cho45/yapc-asia-2011

Slide 77

Slide 77 text

ϓϩτλΠϐϯάŋŋŋ໰୊Λཧղ͢ΔɺԾઆݕূͷͨΊͷࢼ࡞ •  1ZUIPO –  ΤίγεςϜ͕ࡢࠓͷτϨϯυ΋͋Γ׆ൃɻܧଓੑ΋ظ଴Ͱ͖Δ –  ֶशίετ͕௿͍ –  ͍·ར༻͍ͯ͠Δݴޠͱɺಛੑ͕େ͖͘͸มΘΒͳ͍ –  8JOEPXTͰ΋ɺNBD04Ͱ΋։ൃͰ͖Δ •  'MBTL 3PVUJOH ΞϧϑΝఔ౓ͷখ͞ͳϑϨʔϜϫʔΫ  •  03.ͳ͠ –  %BUB.BQQFS૚ͱɺ1MBJO0ME1ZUIPO0CKFDUͳυϝΠϯΦϒδΣΫ τ

Slide 78

Slide 78 text

モデル (データソース層、ドメイン層) データソースからユビキタス言語へのマッピングも

Slide 79

Slide 79 text

値オブジェクト Enum や namedtuple など標準でミニマムな機能で シンプルなオブジェクトとして表現する

Slide 80

Slide 80 text

コントローラ (Flask では "View") KISS ・・・ 凝ったことはしない

Slide 81

Slide 81 text

Plain なオブジェクトなのでテストも楽 実行も速い

Slide 82

Slide 82 text

ਐ௙Ͳ͏Ͱ͔͢ •  ࣮૷։͔࢝Βϲ݄ऑͰओཁͳը໘͸֓Ͷಈ͘Α͏ʹ –  ϑϩϯτΤϯυ͸ผνʔϜ͕վળΛଓ͚͍ͯΔ •  γϯϓϧͳΞʔΩςΫνϟ͸޷ײ৮ •  ͜ͷ··1ZUIPOͰ͍͘ͷ  –  ೝূपΓΛ໰୊ͳ͘طଘ࣮૷ͱڞଘͰ͖ͯɺ42-4FSWFSυϥΠόͷੑೳʹ໰ ୊͕ͳ͚Ε͹ŋŋŋ –  1ZUIPOͷ5ZQF)JOUTͷಋೖΛݕ౼த

Slide 83

Slide 83 text

Ҿ͖ଓ͖ɺ͕Μ͹Δ͍ͧ

Slide 84

Slide 84 text

ओு

Slide 85

Slide 85 text

ٕज़తෛ࠴ͷ໰୊͸૊৫΍γεςϜʹݻ༗ͷ΋ͷ •  ૊৫ɺγεςϜʹݻ༗ͷ΋ͷɻҰൠԽ͢Δͷ͸೉͍͠ –  ࡞Γ௚͕͍͍͠ͷ͔ɺѱ͍ͷ͔ɻͲΜͳઃܭ͕͍͍ͷ͔ѱ͍ͷ͔Ұ֓ʹ͸ݴ͑ͳ͍ •  υϝΠϯɺ๊͍͑ͯΔσʔλɺఀࢭແఀࢭɺ૊৫ͷέΠύϏϦςΟɺ͜Ε·ͰͷܦҢɺ͔͚ΒΕΔ ίετ ࣄۀঢ়گ ŋŋŋඇৗʹͨ͘͞Μͷม਺ –  ͔ͩΒͦ͜ɺͦͷݻ༗ͷ໰୊Λཧղ͢ΔݟۃΊΔ͜ͱ͕ॏཁ •  ໰୊Λਖ਼͘͠ཧղ͢Δલʹղܾ͢Δ͜ͱΛٸ͗͗͢ͳ͍  •  ͦͷݻ༗ͷ໰୊ͱηοτͰߟ͑ͳ͍ͱγεςϜ΍ϓϩηεͷଥ౰ੑ͸ධՁͰ͖ͳ͍ –  ˓˓Λ࢖ͬͯΔ͔Β͍͍ɺ˚˚Λ࢖ͬͯͳ͍͔Βμϝͱ͍͏͜ͱͰ͸ͳ͍

Slide 86

Slide 86 text

Ұํɺྲྀߦ΍σϑΝΫτελϯμʔυ͸஌͓ͬͯ͘ͱ໾ʹཱͭ •  ੈͷதͰ͸ΑΓγϯϓϧͳ΍ΓํͰͦͷ໰୊Λղܾ͢ΔΞΠσΞ͕ڞ༗͞Ε͍ͯΔ –  ϕετɾϓϥΫςΟε –  ͨͱ͑͹ɺ5IF5XFMWF'BDUPS"QQ •  ஌Βͣʹ࡞ΓࠐΉͱɺΞϯνύλʔϯΛ౿ΜͰෛ࠴ʹͳΓ΍͍͢ •  ૊৫తʹ͸ਓࡐ͕ଟ༷ͩͱΑΓ෯޿͘ελϯμʔυΛ஌Δ͜ͱ͕Ͱ͖Δ –  -JOVY044ͳࢲ͕.JDSPTPGUͳҰٳʹ –  ಛఆٕज़ʹͩ͜ΘΒͣਓࡐ࠾༻ͷ෯Λ֦͛ͨ

Slide 87

Slide 87 text

໰୊ʹ͍ͭͯߟ͑Δ͜ͱ͸େࣄɺҰํɺͱ͖ʹ͸੿଎΋େࣄ •  ໰୊ʹ͍ͭͯߟ͑͗ͯ͢಄Ͱ͔ͬͪʹͳΔͱ΋ͷ͝ͱ͕ਐ·ͳ͍ •  खΛಈ͔ͨ͠΄͏͕໰୊ͷཧղ͕ૣ͍৔໘͸ͱͯ΋ଟ͍ –  ϓϩτλΠϐϯάɺτϥΠΤϥʔ 図解・拙速は巧遅に勝る http://blog.kentarok.org/entry/2017/01/17/002401

Slide 88

Slide 88 text

೥ؒͷॴײ •  େ͖͍໰୊͔Β໨Λഎ͚ͣϑΥʔΧε͢Δ –  ΋͏ɺຊ౰ʹɻ͜Ε͸ສճ͙Β͍಄ͷதͰ࠶ੜͨ͠ –  ʮԶ͸େ͖ͳ໰୊ʹ޲͖߹ͬͯΔʯͱࢥͬͯͯ΋ɺແҙࣝʹେมͳ໰୊Λආ͚ ͕֮ͯͯࣗͳ͍  •  ͡Ό͋ސ໰ब೚࣌ʹ͍͖ͳΓҰ൪େ͖ͳ໰୊ʹ޲͔ͬͯͨΒΑ͔͔ͬͨͱ ͍͏ͱͦ͏ͱ΋ݴ͑ͳ͍ –  ͍͖ͳΓΞʔΩςΫνϟʹखΛग़͍ͯͯ͠ɺՌͨͯ͠੒ޭ͔ͨ͠ ແཧήʔ  –  ໰୊ղܾͷ੒ޭମݧΛੵΈॏͶ͖͔ͯͨΒͦ͜ɺ΍ΕΔಓے͕Έ͑ͨͱ͍͏ͷ ΋͋Δ

Slide 89

Slide 89 text

ཁ͢Δʹɺόϥϯεॏཁ 長々と喋った割に、いつもどおり、極めて無難な結論に達してしまいました

Slide 90

Slide 90 text

·ͱΊ •  ٕज़తෛ࠴ͱ޲͖߹͖ͬͯͨ೥ؒ •  ܧଓͯ͠ߟ͑ଓ͚Δ͜ͱ͕େࣄ •  ໰୊Λཧղ͢Δɺਖ਼͍͠໰୊ʹϑΥʔΧε͢Δ͜ͱ͕େࣄ •  ͳΜ͔ͩΜͩͰɺόϥϯεॏཁ