Upgrade to Pro — share decks privately, control downloads, hide ads and more …

質とスピード / Quality and Speed

質とスピード / Quality and Speed

質とスピード
初演: 2019/10/31 @ EOF2019

Takuto Wada

October 31, 2019
Tweet

More Decks by Takuto Wada

Other Decks in Programming

Transcript

  1. ࣭ͱεϐʔυ
    ࿨ా୎ਓ !U@XBEB

    0DU !&0'

    View full-size slide

  2. UXBEB
    U@XBEB
    UXBEB
    ࿨ా୎ਓ

    View full-size slide

  3. ۀքͰͷཱͪҐஔಠΓา͖͢Δελϯυ

    View full-size slide

  4. " $
    ΑΖ͓͘͠ئ͍͠·͢
    "

    View full-size slide

  5. ༩͑ΒΕͨ࣌ؒʹରͯ͠΍Δ΂͖͜ͱ͕ଟ͗͢Δ৔߹ɺ
    Ͳ͏͢΂͖͔ ʢ˞ͪͳΈʹਖ਼ղ͸Bʣ
    B
    είʔϓΛ࡟Δ
    C
    ΋ͬͱਓΛ૿΍͢
    D
    ϦϦʔε೔ΛԆظ͢Δ
    E
    ඼࣭Λ٘ਜ਼ʹ͢Δ
    ʰΞδϟΠϧαϜϥΠʱQ
    ߥͿΔ࢛ఱԦ͕͋ΒΘΕͨʂ

    View full-size slide

  6. ඼࣭Λ٘ਜ਼ʹ͢Ε͹εϐʔυ͸ಘΒΕΔʁ
    w୹ظతʹ͸ಘΒΕΔ
    wதظతʹ͸ٯޮՌʹͳΔ
    w௕ظతʹ͸க໋ইʹͳΔ

    View full-size slide

  7. ͦ΋ͦ΋
    ͜͜Ͱ͍͏
    ʮ඼࣭ʯͱ͸ʁ

    View full-size slide

  8. ඼࣭ͱ͸Կ͔

    View full-size slide

  9. l඼࣭ͱ͸୭͔ʹ
    ͱͬͯͷՁ஋Ͱ͋Δz
    (FSBME8FJOCFSH

    View full-size slide

  10. Accessibility
    Adaptability
    Administrability
    Analyzability
    Auditability
    Availability
    Calibrability
    Changeability
    Compatibility
    Configurability
    Exploitability
    Extensibility
    Flexibility
    Functionality
    Installability
    Integrability
    Internationalizability
    Interoperability
    Learnability
    Maintainability
    Marketability
    Maturity
    Modifiability
    Operability
    Personalizability
    Portability
    Recoverability
    Reliability
    Replaceability
    Reusability
    Scalability
    Security
    Sensitivity
    Stability
    Suitability
    Supportability
    Testability
    Traceability
    Transactionality
    Understandability
    Upgradeability
    Usability
    ... and lots more!

    View full-size slide

  11. ʮ඼࣭ʯ͸
    ͳʹ΍Β೉ͦ͠͏Ͱɺ
    ͪΐͬͱාͦ͏ʹݟ͕͑ͪ

    View full-size slide

  12. lʮ඼࣭ʯͬͪΎ͏͔
    Β೉͘͠ฉ͑ͯ͜·͏
    Μ΍ɻʮ࣭ʯͱݴ͑͹
    օΘ͔ͬͯ͘ΕΔɻz
    ग़యࣦ೦ɻςϨϏ͔ϥδΦͷΠϯλϏϡʔ൪૊ΑΓ

    View full-size slide

  13. lࢲͨͪͷମʹ͸ɺԿ͔ʮྑ
    ͍΋ͷʯΛݟൈ͘ೳྗ͕ͦ
    ͳΘ͍ͬͯΔz
    IUUQTUNUNTIBUFOBCMPHDPNFOUSZ

    View full-size slide

  14. 28"/
    2VBMJUZXJUIPVUBOBNF

    View full-size slide

  15. XXXJUNFEJBDPKQJNBSUJDMFTOFXTIUNM

    View full-size slide

  16. IUUQTXXXKVTFPSKQEFQBSUNFOUBMQPJOUIUNM
    ङ໺Ϟσϧ

    View full-size slide

  17. ʢ͓٬༷͔Βʣݟ͑Δ඼࣭ͱݟ͑ͳ͍඼࣭
    w֎෦඼࣭ͱ಺෦඼࣭
    wར༻࣌ͷ඼࣭ͱ੡඼඼࣭
    wػೳཁ݅ͱඇػೳཁ݅

    View full-size slide

  18. External Quality:
    Correctness, Usability, Efficiency,
    Reliability, Integrity, Adaptability,
    Accuracy, Robustness
    Internal Quality:
    Maintainability, Flexibility, Portability,
    Re-usability, Readability, Testability,
    Understandability
    ֎෦඼࣭ͱ಺෦඼࣭

    View full-size slide

  19. ιϑτ΢ΣΞͷ඼࣭Λ֎෦ࢦඪͰಛ௃͚ͮΔਓ͸ଟ
    ͍ɻਖ਼͍͜͠ͱΛ͢Δɺόά͕ͳ͍ɺ଎͍ɺͳͲͩɻ
    ͕ͩɺͦΕΒ͸ΑΓਂ͍ݪҼͷ঱ঢ়ʹ͗͢ͳ͍ɻ
    ຊॻͰઆ໌͢Διϑτ΢ΣΞͷ඼࣭͸಺෦඼࣭Ͱ͋
    Δɻ಺෦඼࣭Λ࡞ΓࠐΜͩ݁Ռͱͯ͠ɺ֎෦඼࣭ͱ͠
    ͯఆٛ͞ΕΔಛੑͷ࣮ݱʹۙͮ͘͜ͱ͕Ͱ͖Δɻ಺෦
    ඼࣭͸݁ՌͰ͸ͳ͘ݪҼͰ͋Γɺྑ͍ιϑτ΢ΣΞ͕
    උ͍͑ͯΔ΂͖΋ͷͩɻ
    ʰϨΨγʔίʔυ͔Βͷ୤٫ʱQ

    View full-size slide

  20. Ͱ͸ͲͷΑ͏ͳ
    ɹ಺෦඼࣭Λ
    ٘ਜ਼ʹ๋͛ͨͷ͔

    View full-size slide

  21. อकੑ
    Maintainability

    View full-size slide

  22. Joseph P. Cavano and James A. McCall. A framework for the measurement of software quality. In
    software quality assurance workshop on Functional and performance issues, pages 133–139, 1978.
    IUUQTXXXUIPNBTBMTQBVHIPSHQVCGOEJMJUZIUNM
    $BWBOPBOE.D$BMM`T2VBMJUZ'BDUPST

    View full-size slide

  23. #PFIN #SPXO BOE-JQPXT2VBMJUZ$IBSBDUFSJTUJDT

    IUUQTXXXUIPNBTBMTQBVHIPSHQVCGOEJMJUZIUNM

    View full-size slide

  24. #PFIN #SPXO BOE-JQPXT2VBMJUZ$IBSBDUFSJTUJDT

    IUUQTXXXUIPNBTBMTQBVHIPSHQVCGOEJMJUZIUNM

    View full-size slide

  25. .BJOUBJOBCJMJUZʢอकੑʣΛߏ੒͢Δ΋ͷ
    w5FTUBCJMJUZςετ༰қੑ
    w6OEFSTUBOEBCJMJUZཧղ༰қੑ
    w.PEJpBCJMJUZมߋ༰қੑ

    View full-size slide

  26. อकੑΛ
    ٘ਜ਼ʹ๋͛Δͱ
    Ͳ͏ͳΔ͔

    View full-size slide

  27. ݱ৔͔ΒͷதܧͰ͢

    View full-size slide

  28. ർฐ͖ͬͨ͠ݱ৔

    View full-size slide

  29. IUUQTXXXqJDLSDPNQIPUPTPLJOBXBTPCB
    ߥΈ͖ͬͨίʔυ

    View full-size slide

  30. ര஄ॲཧͷΑ͏ͳϦϦʔε

    View full-size slide

  31. IUUQTUXJUUFSDPNOFLPZBTUBUVT

    View full-size slide

  32. IUUQTUXJUUFSDPNHBPHBP@TUBUVT

    View full-size slide

  33. อकੑΛ٘ਜ਼ʹ͢Ε͹εϐʔυ͸ಘΒΕΔʁ
    w୹ظతʹ͸ಘΒΕΔ
    wதظతʹ͸ٯޮՌʹͳΔ
    w௕ظతʹ͸க໋ইʹͳΔ

    View full-size slide

  34. ੈͷதʹ͸ɺ࣌ؒΛ༏ઌ͢ΔͨΊͳΒ඼࣭Λ٘ਜ਼ʹͰ͖Δͱ
    ৴͓ͯ͡Δഐ΋͍ΔΑ͏͕ͩɺͦΕ͸ؒҧ͍ͩɻ
    ͨͱ͑ͲΜͳʹ୹ظతʹ։ൃ଎౓Λ޲্ͤͨ͞ͱͯ͠΋ɺ඼
    ࣭Λ٘ਜ਼ʹ͢Δ͜ͱͰ੒ཱ͍ͯ͠ΔऔΓ૊ΈͳͷͰ͋Ε͹ɺ
    ͦΕ͸·΍͔͠Ͱ͔͠ͳ͍ɻҰ࣌తͳࡨ֮ʹऴΘΔͩΖ͏ɻ
    ඼࣭Λམͱ͢͜ͱ͸ɺౙͷפ͕͞ݫ͍͔͠Βͱ͍ͬͯ೩͑͞
    ͔Δ౛ͰδϟάϦϯά͢ΔΑ͏ͳ΋ͷͩɻ͔֬ʹ΄ΜͷҰॠ
    ख͸Թ·Δ͔΋͠ΕΜɻ͕ͩɺ͍ͣΕ੾Γই΍ͻͲ͍ՐইΛ
    ෛ͏͜ͱʹͳΔͰ͋Ζ͏ɻ
    ʰΞδϟΠϧαϜϥΠʱQ
    ϚελʔηϯηΠᐌ͘

    View full-size slide

  35. IUUQTNBSUJOGPXMFSDPNBSUJDMFTJTRVBMJUZXPSUIDPTUIUNM
    อकੑͷ௿͕͞΋ͨΒ͢΋ͷ
    ͻͱͭͻͱͭͷมߋʹ
    ༨ܭͳ͕͔͔࣌ؒΔ

    View full-size slide

  36. Ͱ͸
    εϐʔυΛམͱͤ͹
    อकੑ͸্͕Δʁ

    View full-size slide

  37. IUUQTUXJUUFSDPNESJMMCJUTTUBUVT

    View full-size slide

  38. IUUQTUXJUUFSDPNWPMVOUBTTUBUVT

    View full-size slide

  39. IUUQTPTBIBUFOBCMPHDPNFOUSZ

    View full-size slide

  40. ͭ·Γ
    τϨʔυΦϑͰ͸
    ͳ͍

    View full-size slide

  41. IUUQTUXJUUFSDPNLBU[DIBOHTUBUVT

    View full-size slide

  42. 2VBMJUZJT'SFF඼࣭Ξοϓ͸ίετΞοϓ͔μ΢ϯ͔
    ίετΞοϓઆ ίετμ΢ϯઆ

    View full-size slide

  43. IUUQTTQFBLFSEFDLDPNTIJNBTIJNBTUBSURVBMJUZSFBMGSFFDBNQBJHO
    2VBMJUZJT'SFF㲈඼࣭࣮࣭ແྉ

    View full-size slide


  44. εϐʔυ
    యܕతͳޡղ
    നؙ෇͖໼ҹෛͷ઀ଓࠜݩ͕૿͑Ε͹ઌ͸ݮΔɻࠜݩ͕ݮΕ͹ઌ͸૿͑Δ

    View full-size slide

  45. ܦӦతͳཁٻʹ߹Θͤͯɺ༩͑ΒΕͨ։ൃظ͔ؒΒॊೈʹԚ͞ͱ
    ଎͞Λબ୒͢Δͱ͍͏Α͏ͳث༻ͳܳ౰͸΄ͱΜͲෆՄೳͩͱ͍
    ͑·͢ɻ͜Ε͸ɺۃΊͯجૅతͳͱ͜ΖͰ͋Ε͹ଟগ͸Ͱ͖Δ͔΋
    ͠Ε·ͤΜ͕ɺ࣮ࡍʹ͸ɺιʔείʔυ͕Ԛͯ͘஗͍ਓ΋͍Ε
    ͹ɺ៉ྷͰ଎͍ਓ΋ଟ͍͘·͢ɻ
    ʰΤϯδχΞϦϯά૊৫࿦΁ͷট଴ʱQ
    ΫΠοΫμʔςΟͷਆ࿩

    View full-size slide

  46. ඼࣭Λ٘ਜ਼ʹ͢Δͷ͸ɺޮՌతͳίϯτϩʔϧํ๏Ͱ͸ͳ
    ͍ɻ඼࣭͸੍ޚม਺Ͱ͸ͳ͍ɻ
    ௿඼࣭Λड͚ೖΕΔ͜ͱͰɺϓϩδΣΫτ͕଎͘ͳΔ͜ͱ
    ͸ͳ͍ɻߴ඼࣭Λཁٻ͢Δ͜ͱͰɺϓϩδΣΫτ͕஗͘ͳ
    Δ͜ͱ΋ͳ͍ɻ
    Ή͠Ζ඼࣭ΛߴΊΔ͜ͱͰɺσϦόϦʔ͕ߴ଎ʹͳΔ͜ͱ
    ͕ଟ͍ɻ඼࣭ج४ΛԼ͛ͯ͠·͏ͱɺσϦόϦʔ͕஗͘
    ͳΓɺ༧ଌͰ͖ͳ͘ͳͬͯ͠·͏ɻ
    ʰΤΫετϦʔϜϓϩάϥϛϯάʱQ

    View full-size slide

  47. ࠷ߴͷ։ൃऀ͕͍ͪ͹Μ͖Ε͍޷͖ͳ։ൃऀͰ͋Δ͜ͱ
    ʹؾ͍ͮͨͱ͖ɺࢲ͸ͼͬ͘Γͨ͠ɻ଎͍ϓϩάϥϚʔ
    ͸ࡶͳϓϩάϥϚʔͩͱࢥ͍͔ͬͯͨΒͩɻ
    ͕ͩɺ࣮ࡍ͸ਖ਼൓ରͩͬͨɻࢲ͕ձͬͨதͰ࠷଎ͷϓϩ
    άϥϚʔ͸ɺίʔυΛѻ͍΍͍͢Α͏ʹอͭ͜ͱʹಛʹ
    ஫ҙΛ෷͍ͬͯͨɻ
    ʰϨΨγʔίʔυ͔Βͷ୤٫ʱQ

    View full-size slide

  48. ίʔυΛॻ͘଎͞ͱίʔυͷ͖Ε͍͞ʹؔ࿈͕͋Δͱೝ
    ࣝͨ͋͠ͱͰ΋ɺࢲ͸ͦͷͭͷ͍͋ͩͷҼՌؔ܎Λݟͭ
    ͚Δͷʹ࣌ؒΛཁͨ͠ɻ
    ίʔυͷ඼࣭Λߴ͘อ͍ͬͯͨʮʹ΋ؔΘΒͣʯ଎͍ͷͰ
    ͸ͳ͍ɻίʔυͷ඼࣭Λߴ͘อ͍ͬͯͨʮ͔Βͦ͜ʯ଎͍
    ͷͩɻ
    ͜ͷ͜ͱΛཧղͨ͠Βɺιϑτ΢ΣΞ։ൃʹର͢Δݟํ͕
    มΘͬͨɻ
    ʰϨΨγʔίʔυ͔Βͷ୤٫ʱQQ

    View full-size slide


  49. εϐʔυ
    ίʔυͷ඼࣭Λ٘ਜ਼ʹ͔ͨ͠Β଎͍ͷͰ͸ͳ͘
    നؙ෇͖໼ҹෛͷ઀ଓࠜݩ͕૿͑Ε͹ઌ͸ݮΔɻࠜݩ͕ݮΕ͹ઌ͸૿͑Δ

    View full-size slide


  50. εϐʔυ
    ίʔυͷ඼࣭Λߴ͘อ͍ͬͯͨʮ͔Βͦ͜ʯ଎͍
    ໼ҹਖ਼ͷ઀ଓࠜݩ͕૿͑Ε͹ઌ΋૿͑Δɻࠜݩ͕ݮΕ͹ઌ΋ݮΔ

    View full-size slide

  51. Ͱ͸
    εϐʔυ͔Β࣭΁
    ͷӨڹ͸Ͳ͏͔

    View full-size slide


  52. εϐʔυ
    Ͱ͸εϐʔυ͔Β࣭΁ͷӨڹ͸Ͳ͏͔

    View full-size slide

  53. ϓϩηε඼࣭Լ͛Δͱखॱϛε౳ʹΑΓख໭Γ͕ൃੜ͠σϦόϦ΁ͷϦʔυ
    λΠϜ͕௕͘ͳΔ
    ಺෦඼࣭͛͞ΔͱόάͷൃੜɺίʔυϨϏϡʔͷࢦఠɺٕज़తෛ࠴ʹΑΔ࣮
    ૷ͷෳࡶ͞ͳͲʹΑΓख໭Γ΍଎౓௿ԼΛট͖ɺσϦόϦ΁ͷϦʔυλΠϜ
    ͕௕͘ͳΔ
    ֎෦඼࣭͛͞Δͱ69όάΛ͏Έɺຊདྷݕূ͍ͨ͜͠ͱ͕ݕূͰֶ͖ͣͼ·
    ͰͷϦʔυλΠϜ͕௕͘ͳΔɻো֐ൃੜʹΑΓɺͦΕͷରԠʹऴΘΕϦιʔ
    ε͕ރׇ͠ຊདྷ΍Δ΂͖͜ͱͷ଍͔ͤʹͳΓɺϦʔυλΠϜ͕௕͘ͳΔ
    ར༻࣌ͷ඼࣭͛͞ΔͱɺΧελϚʔαϙʔτ͕සൃͦ͠ͷରԠʹ૊৫ͷύ
    ϫʔ͕࣋ͬͯߦ͔ΕϦʔυλΠϜ͕௕͘ͳΔ
    2$%ͷτϨʔυΦϑͳΜͯຊ౰͸ແ͔ͬͨΜͩ
    IUUQJLFZIBUFCMPKQFOUSZ

    View full-size slide

  54. IUUQJLFZIBUFCMPKQFOUSZ
    εϐʔυΛམͱ͢ͱԾઆݕূϓϩηε͕ճΒͳ͍

    View full-size slide

  55. ඼࣭͸ѱ͍ͱجຊతʹख໭ΓΛੜΉͷͰ଎౓ʹ௓Ͷ
    ฦΔɻख໭ͬͯΔ࣌ؒ͸ֶͼΛ͏·ͳ͍࣌ؒɻ඼࣭
    ΛԼ͛Δͱ͍͏൑அ͸ֶͼͷ଎౓௿ԼΛڐ༰͢Δͱ
    ͜ͱɻ
    ैདྷͷమ൘ ͩͱޡղ͞Ε͍ͯͨ
    ͩͬͨ඼࣭ͯͯ͢
    ଎౓͋͛Α͏͸඼࣭͸ྼԽ͢Ε͹ख໭Γ͕ൃੜ͢Δ
    ͚ͩͰɺ݁ہ͸ϦʔυλΠϜͷ૿Ճʹ௓ͶฦΔͷͰ
    ΍Ί·͠ΐ͏ɻ
    2$%ͷτϨʔυΦϑͳΜͯຊ౰͸ແ͔ͬͨΜͩ
    IUUQJLFZIBUFCMPKQFOUSZ

    View full-size slide

  56. ͭͷΩʔϝτϦΫε
    wϦʔυλΠϜ
    wσϓϩΠස౓
    w.553 ฏۉम෮࣌ؒ

    wมߋࣦഊ཰
    IUUQTXXXBNB[PODPKQEQ

    View full-size slide


  57. εϐʔυ
    ຊ౰ͷؔ܎ɹ
    ໼ҹਖ਼ͷ઀ଓࠜݩ͕૿͑Ε͹ઌ΋૿͑Δɻࠜݩ͕ݮΕ͹ઌ΋ݮΔ

    View full-size slide

  58. ຊ౰ͷؔ܎ɹ
    w಺෦඼࣭͕εϐʔυΛੜΈ
    wεϐʔυֶ͕ͼͷϧʔϓΛੜΈ
    wֶͼͷϧʔϓ͕֎෦඼࣭ʢҰݩత඼࣭
    ͱັྗ඼࣭ʣΛੜΈ
    w֎෦඼࣭͕ڝ૪ྗΛੜΈ
    wڝ૪ྗ͕ച্ΛੜΈ
    wച্͕಺෦඼࣭ΛҭΉ

    View full-size slide

  59. ʮ࣭WTεϐʔυʯͱ͍͏֓೦͸ࠜຊతʹؒҧ͍ͬͯΔͱࢥ͏ɻ
    ͩͬͯૉૣ͘։ൃΛ͠ͳͯ͘͸؀ڥɺ͋Δ͍͸ࣗ෼ͷ؀ڥͷཧղ
    ͷมԽʹιϑτ΢ΣΞ͕͍ͭͯ͜Εͣɺιϑτ΢ΣΞ͕ղܾ͢΂
    ͖໰୊͕ղܾͰ͖ͳ͘ͳΓɺඞવతʹ࣭͕མͪͯ͠·͏ɻ
    ٯʹɺ࣭ͷߴ͍ιϑτ΢ΣΞΛॻ͔ͳͯ͘͸ɺͳʹ͔͋Δ౓ʹΠ
    ϯϑϥ่͕յ͠ɺૉૣ͘։ൃΛ͢Δ͜ͱ͕Ͱ͖ͳ͘ͳͬͯ͠·
    ͏ɻΠϯϑϥͷ่յ͸ɺ΍ΔؾΛ࡟͙ͷͰಛʹ͕ͨͪѱ͍ɻ
    IUUQTLOPIKQBOTXFSTEDB

    View full-size slide

  60. lQFSGFDUzJTBWFSC
    OPUBOBEKFDUJWF
    ,FOU#FDL

    View full-size slide

  61. ࣭WTεϐʔυͱ͍͏ೋ཯എ൓ͷؔ܎͸ɺ
    ہॴతͳ΋ͷͰ͔͠ͳ͍ɻ
    େҬతʹ͸ɺยํΛ٘ਜ਼ʹͨ͠৔߹ɺ஌Β
    ͵͏ͪʹ΋͏Ұͭ΋٘ਜ਼ʹ͍ͯ͠Δͱ͍͏
    ͜ͱΛ͓๨Εͳ͘ɻ
    IUUQTLOPIKQBOTXFSTEDB

    View full-size slide

  62. Ͳ͏΍ͬͯݸਓͷ
    ࣭Λ্͛Δͷ͔

    View full-size slide

  63. ιϑτ΢ΣΞͷ։ൃʹ࠷ॳ͔Β࠷ޙ·ͰؔΘΔͱ͍͏ܦݧ͸ͱͯ
    ΋وॏͩͬͨΜ͡Όͳ͍ͩΖ͏͔ɻͳͥͳΒɺϓϩδΣΫτ։࢝
    ࣌ͷμϝͳσβΠϯͷͬ͠΃ฦ͠ΛɺޙͰࣗ෼ͰϞϩʹड͚Δ͔
    Βͩɻ
    ౰ॳ΅͘͸ɺ΄ͱΜͲߟ͑ͣίʔυΛʮΞϯμʔΤϯδχΞϦϯ
    άʯ͍ͯͨ͠ɻޙʑ͜ΕΛա౓ʹमਖ਼ͯ͠͠·͍ɺશͯΛʮΦʔ
    όʔΤϯδχΞϦϯάʯ͠࡞ΓࠐΈ͗ͯ͢͠·ͬͨɻ
    IUUQTLOPIKQBOTXFSTEDB

    View full-size slide

  64. ϑΣΠεϒοΫͰಇ͖ͩͨ͜͠Ζʹ͸طʹͦΕͳΓͷܦݧ͕͋ͬ
    ͨͷͰɺ΅͕͘σβΠϯͨ͠γεςϜ͸֓Ͷγϯϓϧ͞ͱચ࿅͞
    Λஸ౓Α݉͘Ͷඋ͍͑ͯͨͱࢥ͏͠ɺଞͷΤϯδχΞͷσβΠϯ
    ͷ໰୊఺΋ɺൺֱత͙͢ʹؾͮ͘͜ͱ͕Ͱ͖ͨɻ͜Ε΋࠷ॳͷ਺
    ೥ͰഓΘΕͨ൑அྗͷ͓͔͛ͩɻ
    ͜ͷʮ൑அྗʯ͸ɺϓϩάϥϚʔʹͱͬͯඇৗʹॏཁͳͷ͕ͩɺ
    ͦ͏؆୯ʹڭ͑ΒΕΔ΋ͷͰ΋ͳ͍ɻ΅͕͘஌ΔݶΓɺ൑அྗΛ
    ͚ͭΔҰ൪ͷํ๏͸ɺࣗ෼Ͱઃܭͨ͠γεςϜΛ௕͍ؒϝϯς͢
    Δ͜ͱͩͱࢥ͏ɻ
    IUUQTLOPIKQBOTXFSTEDB

    View full-size slide

  65. Ұ൪ॏཁͰҰ൪΍͔͍ͬͳεΩϧ͸γεςϜΛઃܭ
    ͢ΔͨΊͷ൑அྗͩɻ
    ݶΓͳ͘γϯϓϧͳσβΠϯ BTTJNQMFBT
    QPTTJCMFCVUOPUTJNQMFS
    ͱ͍͏ͷ͸ͳ͔ͳ͔ڭ͑
    ΒΕΔ΋ͷͰ͸ͳ͘ɺେํܦݧΛॏͶ֮ͯ͑Δ΋ͷ
    ͩɻ
    IUUQTLOPIKQBOTXFSTEDB

    View full-size slide

  66. ଛӹ෼ذ఺͸
    ͍ͭདྷΔͷ͔

    View full-size slide

  67. ςετࣗಈԽͷଛӹ෼ذ఺͸ʮճʯ
    IUUQTXXXBNB[PODPKQEQ
    ͓ΑͦճͰखಈςετͱࣗಈԽ͞Εͨ
    ςετͷίετ͕ٯస͢Δ

    View full-size slide

  68. "1IJMPTPQIZPG4PGUXBSF%FTJHO
    IUUQTXXXBNB[PODPKQEQ

    View full-size slide

  69. once a code base turns to spaghetti, it
    is nearly impossible to fix.
    the payoff for good (or bad) design
    comes pretty quickly, so there's a good
    chance that the tactical approach won't
    even speed up your first release.
    good design eventually pays for itself,
    and sooner than you might think.
    IUUQTXXXBNB[PODPKQEQ
    "1IJMPTPQIZPG4PGUXBSF%FTJHO

    View full-size slide

  70. ಺෦඼࣭΁ͷ౤ࢿͷଛӹ෼ذ఺͸
    ೥ޙͱ͔Ͱ͸ͳ͘
    ϲ݄Ҏ಺ʹݱΕΔ
    IUUQTNBSUJOGPXMFSDPNBSUJDMFTJTRVBMJUZXPSUIDPTUIUNM
    ಺෦඼࣭΁ͷ౤ࢿͷଛӹ෼ذ఺͸ϲ݄Ҏ಺ʹݱΕΔ

    View full-size slide

  71. อकੑΛ٘ਜ਼ʹ͢Ε͹εϐʔυ͸ಘΒΕΔʁ
    w୹ظతʹ͸ಘΒΕΔ
    wϲ݄ޙʹ͸ٯޮՌʹͳΔ
    w௕ظతʹ͸க໋ইʹͳΔ

    View full-size slide

  72. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
    w ʮ඼࣭ͱεϐʔυ͸τϨʔυΦϑͷؔ܎ʹ͋Δʯ͸େ͖
    ͳޡղ
    w ʮ඼࣭ʯͷ໊ͷ΋ͱʹ٘ਜ਼ʹ͞ΕΔͷ͸಺෦඼࣭ͷಛʹ
    อकੑʢςετ༰қੑɺཧղ༰қੑɺมߋ༰қੑʣ
    w ࣮ࡍʹ͸อकੑΛߴΊΕ͹εϐʔυ͸্͕Δ͠ɺอकੑ
    Λམͱͤ͹εϐʔυ͸Լ͕Δɻ
    w εϐʔυΛམͱͯ͠΋อकੑ͸্͕Βͳ͍͠ɺϦʔυλ
    ΠϜ͕௕͘ͳΕ͹Ծઆݕূϓϩηε͕ճΒͳ͍
    w ಺෦඼࣭΁ͷ౤ࢿͷଛӹ෼ذ఺͸ҙ֎ͱૣ͘ ϲ݄Ҏ

    ΍ͬͯ͘Δ

    View full-size slide