技術的負債と向き合う

 技術的負債と向き合う

オープンセミナー2017@岡山での発表スライドです

B4afc7d853d7f1cb6a253d3c7183c05a?s=128

Naoya Ito

May 15, 2017
Tweet

Transcript

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

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

  3. ن໛ײͳͲ •  ैۀһ໊͘Β͍ɻ͏ͪΤϯδχΞ໊ఔ౓ •  ೥ʹϩʔϯνɺ͋Ε͔Β೥ –  Ϩετϥϯ͸೥ •  αʔόʔ͸୆ఔ౓ • 

    $ɺ7#ɺ1ZUIPOɺ+BWB4DSJQUɺ(Pɺ4XJGU –  8FC͸ࠓͷͱ͜Ζ.JDSPTPGUςΫϊϩδ /&5$MBTTJD"41  –  σʔλΤϯδχΞϦϯάपΓ΍Πϯϑϥ͸1ZUIPOɺ/PEFɺ(P –  'BTUMZɺ"84 &#4ɺ-BNCEB ɺ42-4FSWFS#JH2VFSZ3FETIJGU •  ͨͩ͠ઈࢍҠߦதͰɺ·ͩΦϯϓϨ΋͋Δ
  4. ΞδΣϯμ •  ೥ؒͷऔΓ૊Έ –  ٕज़ސ໰ͱͯ͠ܞΘͬͨ೥ؒ –  $50ண೚Ҡߦͷ೥ •  ݹ͘ͳͬͨγεςϜͱͲ͏޲͖߹͖͔ͬͯͨ

  5. ٕज़ސ໰ͷࠒͷ͸ͳ͠

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

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

  9. ݁Ռ •  ೥΄ͲͰେ͖͘վળͨ͠ –  (JU)VC'MPX –  ίʔυϨϏϡʔ –  (JU)VC +FOLJOTʹΑΔσϓϩΠͷࣗಈԽ

    –  4FMFOJVN8FC%SJWFSʹΑΔ&&ςετ –  4MBDL 2JJUB5FBN
  10. None
  11. ͦͷޙ΋վળΛଓ͚ͯ೥݄ࠒ $50ண೚௚લ  •  ϒϥϯνσϓϩΠ؀ڥ •  3VOOOJOHCFUBJOQSPEVDUJPO •  ϩάͷՄࢹԽ4MBDL௨஌ʹΑΔΤϥʔݕ஌

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

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

  15. ݁Ռ •  ϦεΫڐ༰౓ͷ޲্ˠՁ஋ఏڙεϐʔυͷ޲্ –  ϦϦʔεස౓͕૿͑҆શʹͳͬͨ͜ͱͰɺมߋͷϦεΫ͕ݮͬͨ –  ૊৫จԽʹ΋େ͖͘ӨڹΛ༩͑ͨ •  िΠν͔͠ϦϦʔεͰ͖ͳ͍ͷͰෆ۩߹Λग़͞ͳ͍Α͏ϐϦϐϦͯͨ͠Β͍͠ • 

    ࠷ۙ͸౰࣌Ұ൪ϐϦϐϦ͍ͯͨ͠Ϧʔμʔ͕ʮ΍ͬͪΌ͑ΑʂʯΈ͍ͨͳ੎͍
  16. None
  17. 一休.comのE2Eテスト事情 h"ps://speakerdeck.com/shotaakasaka/seleniumjp4-ikyu

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

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

  21. ࣄ৘Λ஌Βͳ͍֎ͷਓ͕นଧͪ໾ʹͳΔ͜ͱͰ໰୊Λཧղ •  ౰ॳͷձ࿩ –  Ұٳʮ(JU)VCͱ͔ςετͱ͔΋ͬͱϞμϯͳ։ൃ͕͍ͨ͠ΜͰ͢ʯ –  OBPZBʮ͸΍Δؾ࣋ͪ͸෼͔Δ͕ɺ·ͣ͸ݱঢ়Λڭ͑ͯ͘Εʯ •  ʙिʹҰ౓ͷϛʔςΟϯά – 

    "ʮࠓ೔͸σϓϩΠपΓͷݱঢ়Λઆ໌͠·͢ʯ –  OBPZBʮ͜͜͸ɺ͜͏͍͏͜ͱ ʯ –  #ʮ͍΍ɺͦ͜͸͜Ε͜Ε͜͏͍͏ܦҢͰ͜͏ͳͬͯͯŋŋŋʯ –  OBPZBʮͳΔ΄ͲɻͰ΋ͦΕ͸ແବͬΆ͍Ͷʯ –  "ʮͦ͏Ͱ͢Ͷʯ
  22. ໰୊Λ၆ᛌతʹ੔ཧ͢Δ ͜ͷද͕େࣄͳͷͰ͸ͳ͘ɺ͜ΕΛ ࡞ΔϓϩηεͰ໰୊ͷཧղͱ੔ཧΛ ਐΊͨ͜ͱ͕େࣄ

  23. ͦ΋ͦ΋ɺͳΜͰ͏·͍ͬͯ͘ͳ͔͔ͬͨ •  ٕज़త՝୊Λු͖ூΓʹ͢Δଘࡏͷෆࡏ –  ՝୊ͷݱঢ়੔ཧɺ໰୊ͷཧղΛਂΊΔϓϩηε͕͚͍ܽͯͨ –  $50ෆࡏ໰୊ DG3FCVJMEGN  • 

    ܧଓతʹ໰୊ʹ͍ͭͯߟ͑ΔɾऔΓ૊Ήϓϩηε͕ͳ͔ͬͨ –  Ұےೄʹ͸͍͔ͳ͍໰୊΋ଟ͍ˠܧଓతऔΓ૊Έ͕ඞཁ –  ݸʑਓͷҙ͚ࣝͩͰ͸ܧଓతʹऔΓ૊Ήͷ͸೉͍͠ ٕज़ސ໰͕ఆظతʹ๚໰ͯ͠ ͘Δɺͱ͍͏ͷ͕͜ΕΒΛղ ফ͢Δࡐྉͩͬͨͷ͔ͳͱ
  24. Ұํɺࣦഊͨ͜͠ͱ •  ݱঢ়൱ఆ͔Βೖͬͯ͠·ͬͨ͜ͱͰແ༻ͳۓுΛੜΜͩ –  *4)*/ͱ͍͏ϓϩδΣΫτ໊ŋŋŋʮ౗ນ͞ΕΔଆ͔ͱࢥͬͨʯ •  ݱߦγεςϜʹର͢ΔϦεϖΫτෆ଍ –  ࣗ෼ͨͪͷࠓ ച্ɺརӹɺڅྉ

    ͕ʮෛ࠴ʯ΍ʮϨΨγʔʯͱݺΜͰ ͍ΔͦΕ͔ΒੜΈग़͞Ε͍ͯΔ͜ͱΛ๨Εͯ͸͍͚ͳ͍ –  ೥΋΍͍ͬͯΕ͹ɺࣄۀత੒ޭΛऩΊͨαʔϏε͸·ͣؒҧ͍ͳ͘ ϨΨγʔΛ๊͑Δ •  ͦΕ͕౰વͳΜͩͱ͍͏લఏʹཱͭ ʮੋʑඇʑ͕ΤϯδχΞͷ࢟ ੎Ͱ͠ΐʯ͸ਖ਼࿦Ͱ͕͢ɺਓ ؒ͸ײ৘ͷੜ͖෺Ͱ͢
  25. ֶΜͩ͜ͱ •  ϐʔϓϧ΢ΣΞͷʮιϑτ΢ΣΞ։ൃ্ͷ໰୊ͷଟ͘͸ɺٕज़తͱ ͍͏ΑΓࣾձֶతͳ΋ͷͰ͋ΔɻʯΛ஍Ͱ͍ͬͯͨ •  ໰୊ͷཧղٕज़తͳ)PX5P –  ºʮ͜͏͋Δ΂͖Ͱ͠ΐʂʯ –  ˓ʮͳͥͦ͏͋Δ΂͖΋ͷ͕ɺͦ͏ͳ͍ͬͯͳ͍ͷ͔ɻͦ͏ͳΒͳ

    ͔ͬͨͷ͸ԿͰͳͷ͔ʯͱ͍͏໰͍ •  ͜ΕΛಥ͖٧Ί͍ͯ͘ͱɺٕज़ͷ໰୊Ͱ͸ͳ͘ਓ΍૊৫ʹର͢ΔΞϓϩʔν͕ݟ ͑ͯདྷΔ
  26. $50ண೚Ҏ߱ͷ͸ͳ͠

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

  28. •  &MBTUJDJUZʹ͚ܽΔσʔληϯλʔΠϯϑϥ ΦϯϓϨϛε  •  ΦΦΧϛগ೥Խ͍ͯ͠ΔΞϥʔτ௨஌ •  ܦ೥Ͱݹ͘ͳͬͨίʔυϕʔεɺΞʔΩςΫνϟ •  ൿ఻ͷλϨԽͨ͠ɺۀ੷ʹ௒ߩݙ͍ͯ͠ΔϚʔέ༻ࣾ಺%#

    •  ະͩʹ"044-Խ͞Ε͍ͯͳ͍αʔϏε •  ຑᙺ͍ͯͯ͠Α͘Θ͔Βͳ͘ͳ͍ͬͯΔॾʑ –  ϕϯμʔʹࢧ෷͍ͬͯΔӡ༻อकྉͷଥ౰ੑ –  ଓ͚Δඞཁ͕͋Δͷ͔ɺഇࢭ͍͍ͯ͠ͷ͔Θ͔Βͳ͍ϓϩηε –  ΤϯδχΞ͕࢖ͬͯΔಓ۩͕ݹΊ͔͍͠ –  ͍ΖΜͳࡶ༻ʹ௥ΘΕΔ։ൃϚωʔδϟʔ
  29. ͳͥސ໰ͷ೥ؒɺ͜ͷେ͖ͳ໰୊ʹखΛ͚ͭΒΕͳ͔ͬͨͷ͔  •  ͦͷ͋ͨΓʹղ͘΂͖໰୊͕͋Δͷ͸ബʑΘ͔ͬͯ͸͍ͨ •  ਓؒ͸ຊೳతʹɺେ͖͗͢Δ໰୊͔Β໨Λഎ͚Δੑ࣭ –  ࣗ෼΋͍ͬͪΐטΈͰ͖ͦ͏ͳ໰୊͸׆ൃʹٞ࿦͞ΕΔ͕ɺઐ໳త͔ ͭେ͖ͳ໰୊͸࿩୊ʹ΋্Βͳ͍

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

  31. None
  32. None
  33. None
  34. γεςϜؔ࿈අ༻͸શͯ#*Ͱݟ͑ΔԽ

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

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

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

  38. ෺ࣄ͕ਐΈ͸͡ΊΔ •  σʔληϯλʔˠΫϥ΢υ΁Ҡߦɻ͋ͱ਺ϲ݄Ͱ׬ྃ •  େྔͷΞϥʔτˠϞχλϦϯάΛ࠶ߏ੒ͯ͠੔ཧ •  ൿ఻ͷλϨ%#ˠ&NCVML EJHEBHͰ࠶ߏங •  "044-Խˠ׬ྃ

    •  ຑᙺ͍ͯͯ͠Α͘Θ͔Βͳ͘ͳ͍ͬͯͨࣄฑ –  ΤϯδχΞͷ੮ͷి࿩ˠશ෦औͬ෷ͬͨ –  ؂ࠪূ੻ͷͨΊ͚ͩͷνέοτˠ(JUͷཤྺͰ୅༻ͯ͠ࢭΊͨ –  ӡ༻อकྉˠֹͷେ͖ͳ΋ͷΛਫ਼ࠪ͠ϕϯμʔͱՁ֨ަব –  ΤϯδχΞͷಓ۩ˠ༧ࢉΛ֬อͯ͠޷͖ͳ΋ͷΛങ͑ΔϧʔϧΛ࡞ͬͨ –  Ϛωʔδϟʔˠ։ൃνʔϜઐଐͷ૯຿Λޏͬͯશ෦ר͖औͬͯ΋Βͬͨ
  39. ΍Γ͗͢Δਓͨͪ 曲面ディスプレイ 43インチ4Kモニタ 搬入時

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

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

  42. എதΛԡ͢ •  Πϯϑϥͷ࡮৽͕ਐ·ͳ͔ͬͨͷ͸  •  ٕज़తʹࠔ೉ͳԿ͔ ن໛͕େ͖͗͢Δ  •  ˠಛघͰߴՁͳϋʔυ΢ΣΞΛ࢖͍ͬͯͨͨΊɺͦΕΛࣺͯΔϦεΫ͕େ

    ͖͘ݱ৔൑அ͕೉͔ͬͨ͠  •  ʮΠϯϑϥΛ೥ޙ·ͰʹΫϥ΢υʹҠͯ͠ʯʮ͑ͬʯ –  ํ਑Λશࣾతʹ໌֬Խͨ͜͠ͱͰपลͷҙࢤܾఆʹ΋ྑ͍೾໲ •  ৽͍͠ϓϩδΣΫτ͸ϚωʔδυαʔϏεΛར༻͢ΔલఏͰઃܭ͞ΕΔΑ͏ʹ ͦ͏͍ͨ͠ͱࢥ͍͚ͬͯͨͲɺ ୭͔͕എதΛԡ͞ͳ͍ͱඈͼࠐ Ίͳ͍ɺΈ͍ͨͳঢ়گΛଧ։
  43. フォーカスすべき問題をクリアにすれば、あとはどういう物にすればいいかはエンジニアは知っている

  44. ґଘؔ܎Λղআ͢Δ •  "044-Խ͕ਐ·ͳ͔ͬͨͷ͸  •  ΞϓϦέʔγϣϯΤϯδχΞ͸Πϯϑϥଆͷ࡞ۀ͕େมͩͱࢥ͍ͬͯΔ •  Πϯϑϥଆ͸ΞϓϦέʔγϣϯΤϯδχΞ͕େมͩͱࢥ͍ͬͯΔ •  ͓ޓ͍͕૬खͷ࡞ۀ଴ͪͩͱࢥ͍ࠐΈ

    –  ཁ݅Λ੔ཧͯ͠ɺґଘؔ܎Λղআ͢Δ •  ʮΞϓϦέʔγϣϯଆΛਐΊͯऴΘͬͨΒΠϯϑϥʹ࿈བྷͯ͠ʯ •  ʮΞϓϦέʔγϣϯଆؾʹͤͣઃఆΛਐΊͯ࿈བྷ͕͋ͬͨΒ੾Γସ͑ͯʯ •  ͙͢ʹ׬ྃͨ͠ɻҰ෦αʔϏε͸'BTUMZͰ)551Խ΋
  45. ӌճ࿏Λ௵ͯ͠ਖ਼໘ೖΓޱΛ։͚Δ •  Ϛʔέ%#͕ൿ఻ͷλϨԽͯ͠͠·ͬͨͷ͸  –  ෳࡶͳཁ݅ ٕज़ͷબ୒ϛε ଐਓԽ  – 

    ˠ୲౰͕ηΩϡϦςΟ্ͷࣄ৘͔Βᷖճ͢Δඞཁ͕͋Δŋŋŋͱࢥ͍ࠐΜͰͨ •  جװ%#͸ԕ͍ˠ౿Έ୆ͳͲͷᷖճ࿏Λܦ༝ͯࣾ͠಺΁ಧ͘&5- •  ᷖճͷ࢓ํ͕ಛघෳࡶͳ͍ͤͰ҉໧஌Խ •  $*40ͱձ࿩͠ɺ҆શ͕୲อ͞Εͨਖ਼໘ݰؔΛ࡞Δ –  ͋ͱ͸&NCVML EJHEBHͰ&5- –  044Λૉ௚ʹ࢖͏ –  มΘͬͨ͜ͱ͸ͤͣɺγϯϓϧʹɻ
  46. ຑᙺ͍ͯ͠Δ"T*Tͷ5P#FΛೝࣝͤ͞Δ •  ΦΦΧϛগ೥ʹͳ͍ͬͯΔΞϥʔτ΍ϞχλϦϯά –  ҟৗ͕ىͬͯ͜Δͷ͔ىͬͯ͜ͳ͍ͷ͔શવΘ͔Βͳ͍ –  ϕςϥϯ͸ʮ͜Ε͸εϧʔ͍͍ͯ͠΍ͭʯʮ͜Ε͸μϝͳ΍ͭʯͱ͍͏҉໧஌ ͕͋ΔͷͰؾʹͳΒͳ͍ •  ʮ͜Ε͜Ε͜͏͍͏ঢ়ଶʹ·Ͱ΋͍ͬͯͬͯཉ͍͠ʯͱ͍͏ظ଴஋ΛΫϦ

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

  49. ΍͸Γɺࣾձతͳ໰୊ •  ʮͳͥͦ͏͋Δ΂͖΋ͷ͕ɺͦ͏ͳ͍ͬͯͳ͍ͷ͔ɻͦͷݪҼ͸Կ ͔ ʯ –  ํ਑͕໌֬ʹͳ͍ͬͯͳ͍͜ͱ͕ϘτϧωοΫʹˠ໌֬ʹ͢Δ –  ϧʔϧ͕Ұਓา͖ͯ͠ϘτϧωοΫʹˠࢥ͍ࠐΈΛऔΓআ͘ – 

    ෳࡶʹߟ͑͗ͯ͢ʮ΍ΕΔؾ͕͠ͳ͍ʯ͕ϘτϧωοΫʹˠγϯϓϧ ͳ୅ସҊΛఏࣔ͠τϨʔυΦϑΛڐ༰͢Δ
  50. ݁Ռ͕ग़࢝ΊΔ •  Ϋϥ΢υҠߦͷ͓͔͛ͰώϧφϯσεΞλοΫͰ΋མͪͳ͍ •  &5-Λγϯϓϧʹ͓͔ͨ͛͛͠Ͱ%8)ߋ৽׬͕ྃޕޙˠૣேʹ୹ॖ͞ ΕΔ –  ϚʔέςΟϯάࢪࡦͷճస਺্͕͕Δ •  ΤϯδχΞͷୀࣾ࣌ࠁ͕ૣ͘ͳͬͨ

    –  ʮ೥͘Β͍લͬͯͳΜ͔ΈΜͳ஗͘·Ͱ࢒ͬͯ·ͨ͠ΑͶʯʮ͔֬ʹŋŋŋͳΜ Ͱ͚ͩͬͨͬŋŋŋʯ
  51. ྑ͔ͬͨྑ͔ͬͨŋŋŋͱݴ͍͍ͨͱ͜Ζ͕ͩ

  52. •  &MBTUJDJUZʹ͚ܽΔσʔληϯλʔΠϯϑϥ ΦϯϓϨϛε  •  ΦΦΧϛগ೥Խ͍ͯ͠ΔେྔͷΞϥʔτ௨஌ •  ܦ೥Ͱݹ͘ͳͬͨίʔυϕʔεɺΞʔΩςΫνϟ •  ൿ఻ͷλϨԽͨ͠ɺۀ੷ʹ௒ߩݙ͍ͯ͠ΔϚʔέ༻ࣾ಺%#

    •  ຑᙺ͍ͯͯ͠Α͘Θ͔Βͳ͘ͳ͍ͬͯΔॾʑ –  ϕϯμʔʹࢧ෷͍ͬͯΔӡ༻อकྉͷଥ౰ੑ –  ଓ͚Δඞཁ͕͋Δͷ͔ɺഇࢭ͍͍ͯ͠ͷ͔Θ͔Βͳ͍ϓϩηε •  ୅දྫŋŋŋ؂ࠪূ੻ͷͨΊͷ3FENJOFνέοτىථ –  ࢖ͬͯΔಓ۩ ϋʔυ ͕ݹΊ͔͍͠ –  ͍ΖΜͳࡶ༻ʹ௥ΘΕΔ։ൃϚωʔδϟʔ ʮҰ൪໽հͦ͏ͳ࿩Ͱ͚͢Ͳ͜ Ε͸Ͳ͏ͳͬͨΜͰ͢ ʯ ʮŋŋŋʯ
  53. 技術的負債 த৺ʹ޲͔͏΄Ͳਂࠁ౓͕ େ͖͍ͱ͢Δ

  54. पล͹͔Γ͕ղܾ͞Ε͍ͯͯɺҰ൪େ͖ͳ໰୊͕ղܾ͞Ε͍ͯͳ͍ 技術的負債 レガシー アーキテクチャ 問題 (JU)VC σϓϩΠ ࣗಈԽ ϩάͷՄࢹ Խ

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

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

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

  58. ŋŋŋͱ͍͏Θ͚Ͱɺٕज़తΞϓϩʔνΛ։࢝ •  ೥Ҏ্લʹϩʔϯνͯ͠ɺͣͬͱͦͷ··։ൃ͖ͯͨ͠ҰٳϨετϥϯ ࣄۀ͸৳ͼ੝Γ  –  $MBTTJD"417#4DSJQU –  044ք۾Ͱ͍͏ͱੲͷ1)1Έ͍ͨͳײ͡ • 

    Ͳ͏͢Δ  –  /&5ʹҠߦ͢Δ $ͰϦϥΠτ͢Δ  –  ୤8JOEPXTϓϥοτϑΥʔϜ  –  ·ͣ͸ςετΛॻ͘  –  όοΫΤϯυΛ"1*Խͯ͠Ϟμϯͳϑϩϯτͱ෼཭ 
  59. ݸਓతͳաڈͷ൓ল͔Β •  ए͔Γ͜͠Ζɺن໛ײ΍՝୊ͳͲΛ͋·Γؾʹ͍͖ͤͣͳΓϦϑΝ ΫλϦϯά͔Βೖͬͨ͜ͱ͕͋ͬͨ –  ͏·͍ͬͨ͘͜ͱ΋͋Δ –  Ұํɺࣦഊͨ͜͠ͱ΋͋Δˠத్൒୺ͳͷ͕৽ͨͳෛ࠴ʹŋŋŋ

  60. ࣗࣾͷաڈͷ൓ল͔Β •  աڈʹओྗࣄۀͷେن໛ͳγεςϜϦχϡʔΞϧ –  ϏοάϦϥΠτ $MBTTJD"41͔Β/&5΁Ҡߦ  –  ϦχϡʔΞϧʹର͢Δظ଴͕ߴ·Γ͗ͯ͢ɺେখ͋ΒΏΔཁ͕݅ϦχϡʔΞϧ ʹدͤΒΕΔ

    –  ϓϩδΣΫτن໛͕େ͖͘ͳΓ͗͢ऩଋ·Ͱʹͱͯ΋ۤ࿑ͨ͠Β͍͠ •  ΞʔΩςΫνϟ͸ඞཁΑΓ΋ෳࡶͳ΋ͷʹͳͬͯ͠·ͬͨ •  ൓ল͔Β –  Կͷ໰୊Λղܾ͍ͨ͠ͷ͔ɺͦͷϑΥʔΧεΛ͸͖ͬΓͤ͞Δ –  ؔ৺ࣄΛ໌֬ʹ͠είʔϓΛখ͘͞ɻ࠶ઃܭʹ,*44ݪଇΛ๨Εͳ͍
  61. ղܾࡦΑΓલʹ࣮૷ΛಡΈݱߦγεςϜͷ՝୊Λ໌Β͔ʹ͢Δ •  ΍ͬͺΓʮ໰୊Λཧղ͢Δʯͱ͍͏جຊ࢟੎͸่͞ͳ͍ •  ͸΍Δؾ࣋ͪΛ཈͑ɺݱߦγεςϜ෼ੳΛͬ͘͡Γߦ͏ ʮԶͷ7JTVBM4UVEJPʯ BLB&NBDT  ˞স͏ͱ͜ΖͰ͢

  62. ஍ಓʹίʔυϦʔσΟϯά •  6OJWFSTBMDUBHT IUUQTDUBHTJP Ͱλά෇͚ –  ΞΫςΟϒʹϝϯς͕ଓ͍͍ͯΔDUBHT •  BOZUIJOHZBFUBHTͱBOZUIJOHDNPDDVSTͰιʔείʔυΛ౉Γา͘ – 

    ΠϯΫϦϝϯλϧʹγϯϘϧΛߜΓࠐΈ֘౰ՕॴʹδϟϯϓͰ͖Δ&NBDT֦ு –  ϞμϯͳΤσΟλͰ͋Ε͹ಉ༷ͷػೳ͕͋Δ͸ͣ
  63. ಡΈ࢝Ίͨ͸ྑ͍͕ɺԿΛख͕͔ΓʹݴޠԽ͢Δ͔  •  ൺֱର৅͕ཉ͍͠ –  ൺֱ΋ͳ͘ݱঢ়Λઆ໌͍ͯ͘͠ͷ͸ɺળ͠ѱ͠΋Θ͔ΓͮΒ͍ –  ຊਓ͸ཧղͰ͖ͯ΋पғͷਓʹઆ໌ͮ͠Β͍  • 

    ڞ௨ݴޠతͳ΋ͷͱൺֱ͢Δͷ͕ྑͦ͞͏ –  અࢠɺͦΕʮύλʔϯʯ΍
  64. ΠσΟΦϜɺσβΠϯύλʔϯɺΞʔΩςΫνϟύλʔϯ •  ʮΞʔΩςΫνϟʯͷจ຺ͷύλʔϯͩͱओʹҎԼͷࡾ͔ͭ –  ΞʔΩςΫνϟύλʔϯŋŋŋཻ౓େ –  σβΠϯύλʔϯŋŋŋத –  ΠσΟΦϜ ϓϩάϥϛϯάύλʔϯ

    ŋŋŋখ •  ໰୊͸ཻ౓େ͖Ί͔Β෼ੳ͍ͨ͠ –  ΑͬͯɺΞʔΩςΫνϟύλʔϯͷΧλϩά͕͋Ε͹͍͍ –  અࢠɺͦΕ1PG&"" ΤϯλʔϓϥΠζΞϓϦέʔγϣϯΞʔΩςΫνϟύλʔ ϯ ͕Α͘஌ΒΕͨ୅ද΍
  65. 1PG&"" 1BUUFSOTPG&OUFSQSJTF"QQMJDBUJPO"SDIJUFDUVSF  ೥ஶऀϚʔνϯɾϑΝ΢ϥʔ ʮͨͱ͑͹܅͕ͨͪ࢖ͬͯΔ"DUJWF3FDPSE ͯͷ͸͜ͷຊͰղઆ͞Ε͍ͯΔύλʔϯͷҰ ͭͳΜͩΑɺ͑ͬ΁Μʯ 

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

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

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

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

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

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

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

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

    ͸ͦͷ··ɺ৽͍͠υ ϝΠϯΦϒδΣΫτΛಋೖͰ͖ͦ͏
  74. ݴޠબఆ͸ݱࡏͷ௕ॴΛͳΔ΂͘อଘ͢Δ͜ͱΛ໨ඪʹͨ͠

  75. ৽͍࣮͠૷͸ബ͍ϑϨʔϜϫʔΫɺബ͍࣮૷Λ໨ࢦ͢ •  ՝୊ʹ߹ΘͤΔ –  σʔλߏ੒Λڧ੍͢ΔϑϧελοΫͳ΋ͷ͸࠾༻ͮ͠Β͍ –  ΋ͱ΋ͱઃܭ͸ෳࡶͰ͸ͳ͍ɻෳࡶͳΞʔΩςΫνϟΛ࣋ͪࠐΉͷ͸ຊ຤స౗ –  ബ͍࣮૷͕ϕετ • 

    ࢀߟʹͨ͠΋ͷŋŋŋ͍͖͞ΐ͏ͷ;ΕʔΉΘʔ͘͸ͯͳڭՊॻ –  IUUQTXXXTMJEFTIBSFOFUDIPZBQDBTJB –  IUUQTHJUIVCDPNIBUFOB)BUFOB5FYUCPPL
  76. ࢀߟʹͨ͠ͷ͸ͲΜͳΞʔΩςΫνϟίϯηϓτ͔ •  ಡΉίʔυ͕࠷খ ڞಉ։ൃͷͨΊʹ  –  ݶΓͳ͘ബ͍ϑϨʔϜϫʔΫ㲈ઃܭࢦ਑ŋŋŋಡΉίʔυ࠷খ –  ڞಉ։ൃʹඞཁͳͷ͸ڞ௨ͷ࣮૷Ͱ͸ͳ͘ɺڞ௨ͷઃܭࢦ਑ 

    •  ҆શͰ͋Δ͜ͱ ৴པੑઃܭ  –  ةݥͳ͜ͱΛ͢ΔͨΊʹΑΓଟ͘ͷίετ͕ඞཁʹͳΔΑ͏ʹ •  σϑΥϧτͰ҆શɻةݥͳ͜ͱΛ͢Δʹ͸໌ࣔతͳએݴ –  42-Ͱ*0͢Δͷ΋ίετ͕ඞཁͳ͜ͱˠ؆୯ʹҾ͚ΔΑ͏ʹ͗͢͠ͳ͍ •  ίετ͕͔͔Δ͜ͱΛศརʹͯ͠͸͍͚ͳ͍ cf. ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく h"ps://www.slideshare.net/cho45/yapc-asia-2011
  77. ϓϩτλΠϐϯάŋŋŋ໰୊Λཧղ͢ΔɺԾઆݕূͷͨΊͷࢼ࡞ •  1ZUIPO –  ΤίγεςϜ͕ࡢࠓͷτϨϯυ΋͋Γ׆ൃɻܧଓੑ΋ظ଴Ͱ͖Δ –  ֶशίετ͕௿͍ –  ͍·ར༻͍ͯ͠Δݴޠͱɺಛੑ͕େ͖͘͸มΘΒͳ͍ – 

    8JOEPXTͰ΋ɺNBD04Ͱ΋։ൃͰ͖Δ •  'MBTL 3PVUJOH ΞϧϑΝఔ౓ͷখ͞ͳϑϨʔϜϫʔΫ  •  03.ͳ͠ –  %BUB.BQQFS૚ͱɺ1MBJO0ME1ZUIPO0CKFDUͳυϝΠϯΦϒδΣΫ τ
  78. モデル (データソース層、ドメイン層) データソースからユビキタス言語へのマッピングも

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

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

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

  82. ਐ௙Ͳ͏Ͱ͔͢ •  ࣮૷։͔࢝Βϲ݄ऑͰओཁͳը໘͸֓Ͷಈ͘Α͏ʹ –  ϑϩϯτΤϯυ͸ผνʔϜ͕վળΛଓ͚͍ͯΔ •  γϯϓϧͳΞʔΩςΫνϟ͸޷ײ৮ •  ͜ͷ··1ZUIPOͰ͍͘ͷ 

    –  ೝূपΓΛ໰୊ͳ͘طଘ࣮૷ͱڞଘͰ͖ͯɺ42-4FSWFSυϥΠόͷੑೳʹ໰ ୊͕ͳ͚Ε͹ŋŋŋ –  1ZUIPOͷ5ZQF)JOUTͷಋೖΛݕ౼த
  83. Ҿ͖ଓ͖ɺ͕Μ͹Δ͍ͧ

  84. ओு

  85. ٕज़తෛ࠴ͷ໰୊͸૊৫΍γεςϜʹݻ༗ͷ΋ͷ •  ૊৫ɺγεςϜʹݻ༗ͷ΋ͷɻҰൠԽ͢Δͷ͸೉͍͠ –  ࡞Γ௚͕͍͍͠ͷ͔ɺѱ͍ͷ͔ɻͲΜͳઃܭ͕͍͍ͷ͔ѱ͍ͷ͔Ұ֓ʹ͸ݴ͑ͳ͍ •  υϝΠϯɺ๊͍͑ͯΔσʔλɺఀࢭແఀࢭɺ૊৫ͷέΠύϏϦςΟɺ͜Ε·ͰͷܦҢɺ͔͚ΒΕΔ ίετ ࣄۀঢ়گ ŋŋŋඇৗʹͨ͘͞Μͷม਺

    –  ͔ͩΒͦ͜ɺͦͷݻ༗ͷ໰୊Λཧղ͢ΔݟۃΊΔ͜ͱ͕ॏཁ •  ໰୊Λਖ਼͘͠ཧղ͢Δલʹղܾ͢Δ͜ͱΛٸ͗͗͢ͳ͍  •  ͦͷݻ༗ͷ໰୊ͱηοτͰߟ͑ͳ͍ͱγεςϜ΍ϓϩηεͷଥ౰ੑ͸ධՁͰ͖ͳ͍ –  ˓˓Λ࢖ͬͯΔ͔Β͍͍ɺ˚˚Λ࢖ͬͯͳ͍͔Βμϝͱ͍͏͜ͱͰ͸ͳ͍
  86. Ұํɺྲྀߦ΍σϑΝΫτελϯμʔυ͸஌͓ͬͯ͘ͱ໾ʹཱͭ •  ੈͷதͰ͸ΑΓγϯϓϧͳ΍ΓํͰͦͷ໰୊Λղܾ͢ΔΞΠσΞ͕ڞ༗͞Ε͍ͯΔ –  ϕετɾϓϥΫςΟε –  ͨͱ͑͹ɺ5IF5XFMWF'BDUPS"QQ •  ஌Βͣʹ࡞ΓࠐΉͱɺΞϯνύλʔϯΛ౿ΜͰෛ࠴ʹͳΓ΍͍͢ • 

    ૊৫తʹ͸ਓࡐ͕ଟ༷ͩͱΑΓ෯޿͘ελϯμʔυΛ஌Δ͜ͱ͕Ͱ͖Δ –  -JOVY044ͳࢲ͕.JDSPTPGUͳҰٳʹ –  ಛఆٕज़ʹͩ͜ΘΒͣਓࡐ࠾༻ͷ෯Λ֦͛ͨ
  87. ໰୊ʹ͍ͭͯߟ͑Δ͜ͱ͸େࣄɺҰํɺͱ͖ʹ͸੿଎΋େࣄ •  ໰୊ʹ͍ͭͯߟ͑͗ͯ͢಄Ͱ͔ͬͪʹͳΔͱ΋ͷ͝ͱ͕ਐ·ͳ͍ •  खΛಈ͔ͨ͠΄͏͕໰୊ͷཧղ͕ૣ͍৔໘͸ͱͯ΋ଟ͍ –  ϓϩτλΠϐϯάɺτϥΠΤϥʔ 図解・拙速は巧遅に勝る http://blog.kentarok.org/entry/2017/01/17/002401

  88. ೥ؒͷॴײ •  େ͖͍໰୊͔Β໨Λഎ͚ͣϑΥʔΧε͢Δ –  ΋͏ɺຊ౰ʹɻ͜Ε͸ສճ͙Β͍಄ͷதͰ࠶ੜͨ͠ –  ʮԶ͸େ͖ͳ໰୊ʹ޲͖߹ͬͯΔʯͱࢥͬͯͯ΋ɺແҙࣝʹେมͳ໰୊Λආ͚ ͕֮ͯͯࣗͳ͍  • 

    ͡Ό͋ސ໰ब೚࣌ʹ͍͖ͳΓҰ൪େ͖ͳ໰୊ʹ޲͔ͬͯͨΒΑ͔͔ͬͨͱ ͍͏ͱͦ͏ͱ΋ݴ͑ͳ͍ –  ͍͖ͳΓΞʔΩςΫνϟʹखΛग़͍ͯͯ͠ɺՌͨͯ͠੒ޭ͔ͨ͠ ແཧήʔ  –  ໰୊ղܾͷ੒ޭମݧΛੵΈॏͶ͖͔ͯͨΒͦ͜ɺ΍ΕΔಓے͕Έ͑ͨͱ͍͏ͷ ΋͋Δ
  89. ཁ͢Δʹɺόϥϯεॏཁ 長々と喋った割に、いつもどおり、極めて無難な結論に達してしまいました

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