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

xpjug2019 A-4: チケットシステムの設計と実装、『あのチーム』の運用

xpjug2019 A-4: チケットシステムの設計と実装、『あのチーム』の運用

チケットシステムの設計と実装、『あのチーム』の運用

seki at druby.org

September 21, 2019
Tweet

More Decks by seki at druby.org

Other Decks in Programming

Transcript

  1. ࠓ೔ͷ࿩
    20 RWiki
    800
    ௕ੜ͖͸݁Ռʢ໨ඪͰ͸ͳ͍ʣɻࠓ೔ͷ࿩͸௕ੜ͖ͷൿ݃Ͱ͸ͳ͍Αʂ
    ௕ੜ͖Ͱ͖ͨͷ͸ྑ͍ͱ͜Ζ͕͔͋ͬͨΒͩͱࢥ͏ͷͰ঺հ͠·͢ɻ

    View full-size slide

  2. ࠓ೔ͷΦν
    XP
    ͋ͷνʔϜ΋͍͢͝ʂ

    View full-size slide

  3. ࢲʹ͍ͭͯ
    - Ruby
    - XP
    !N@TFLJ

    View full-size slide

  4. Rubyͷίϛολ
    ERB, dRuby, Rinda
    RubyKaigi
    &3#͸࢖Θ͞Εͨਓ΋͍Δ͔΋͠Εͳ͍ɻ
    3VCZ,BJHJ͸ຖ೥ొஃʂϥοΩʔʂ
    ֏

    View full-size slide

  5. RWiki
    ERB dRuby
    WikiWikiWeb
    RD
    Ruby
    OODB
    3%͸3VCZͷจॻͷͨΊͷॻࣜɻ1MBJOΛݟͳ͕ΒNBU[͕ߟ͑ͨʂʁ
    ֏

    View full-size slide

  6. eXtreme Programming
    2004 XP
    RWiki StoryCard
    ݱࡏ໿ΠςϨʔγϣϯ
    91ࡇΓͰ͸Կ౓͔ࣄྫΛ঺հ͍ͯ͠Δ

    View full-size slide

  7. ͋ͷνʔϜͷಛ௃
    ૊ΈࠐΈɾࣗࣾ੡඼ɾϛογϣϯΫϦςΟΧϧɾେن໛ɾฒߦෳ਺όʔδϣϯ
    8JLJͷن໛͸໿ສϖʔδɻຖ೔ϖʔδ͕ฤू͞Ε͍ͯΔɻ

    View full-size slide

  8. RWiki StoryCard֦ு
    RWiki
    ࠓ೔঺հ͢ΔγεςϜɻ
    νέοτΛϖʔδͰදݱ͢ΔνέοτγεςϜɻ
    લ਎ʹ#VH5SBDLJOH4ZTUFN֦ு΋͋ͬͨɻ :"31$Ͱ࿩ͨ͠Α͏ͳؾ΋͢Δ

    View full-size slide

  9. ೥ද
    ੈل຤͔Βੈل΁
    ERb, dRuby 1999
    RWiki 2000
    2001 BTS YARPC19101
    StoryCard
    Keynote 2004 (JaSST, XP )
    2008 ( )
    2014 XP / XP (XP )
    2017 ,
    ruby-1.8.7 2.6 2019

    View full-size slide

  10. ໨࣍
    ͜ͷॱͰ঺հ͠·͢

    View full-size slide

  11. νέοτ൪߸
    prefix + 3 4
    prefix 5
    4

    View full-size slide

  12. ਖ਼نԽ͞Εͯͳ໊͍લͷૢ࡞
    String#succ
    ్தͰ໋໊نଇΛ֦ு͢Δ͜ͱʹͳͬͯগ͠য͕ͬͨ4USJOHTVDDΛࢥ͍ग़ͯ͠ηʔϑ
    ͩͬͨ
    ֏

    View full-size slide

  13. νέοτͷstatus
    ͳΜ͍ͯ͏ͷʁ

    View full-size slide

  14. छྨ
    story bug
    task
    UBTL͸91తͳUBTLͰ͸ͳ͍ɻ͜ͷνʔϜͰ͸ೖΕࢠͷTUPSZ͸ӡ༻্ېࢭɻඞͣ୯ಠ
    Ͱ׬͔݁֬͠ΊΒΕΔ୯Ґʹ͢Δɻ

    View full-size slide

  15. ΠςϨʔγϣϯ
    999
    ͩΜͩΜλΠϜϘοΫεͱͯ͠ͷͩ͜ΘΓ͕ͳ͘ͳͬͯɺͨͩͷ൪஍ʹͳͬͨ

    View full-size slide

  16. ঢ়ଶ
    open close
    done
    ཱ৔΍ࢹ఺ʹΑͬͯ஌Γ͍ͨঢ়ଶ͸มΘͬͯ͘Δ͠ɺΑΓࡉ͔͍ঢ়ଶΛൃݟ͢Δέʔε
    ΋͋ΔɻͰ΋ຖ೔νέοτΛಡΜͰΕ͹Θ͔ΔͷͰɺ݁ہ͸ऴΘͬͯΔ͔Ͳ͏͔͚ͩ
    ໌ࣔ͢Ε͹ॆ෼ͳ͜ͱ͕Θ͔ͬͨɻ

    View full-size slide

  17. ݟੵ
    1 1.0
    ॱௐͳͷ͔ɺࠔ͍ͬͯΔͷ͔ɺ͍ͭࢼͤΔͷ͔ɺͦ͏͍͏͜ͱʹڵຯ͕͋Δɻ࣮੷͸
    Ͳͷ͘Β͍ۤ࿑͔ͨ͠Θ͔Δ͚ͲɺࠓͰ͸΄ͱΜͲ࢖͍ಓ͕ͳ͍ɻ

    View full-size slide

  18. ݟੵ
    ೲظΛ໿ଋͤͨ͞Γ଎౓ΛڝͬͨΓɺͦ͏͍͏͜ͱ͸Ͳ͏Ͱ΋͍͍ɻ
    ʢ΋ͦ͠͏͍͏͜ͱٻΊΔͱݟੵΓ͸͓͔͘͠ͳΔྫ/಺͞ΜϕϩγςΟࣄ݅ʣ

    View full-size slide

  19. status͸มΘΓଓ͚ͯͨ
    ઐ༻ͷϑΥʔϜͷํ͕ϓϩάϥϚతʹ͸࡞Γ΍͍͢
    σʔλͷ੍໿ɺਖ਼نԽͳͲϓϩάϥϚͷ౎߹Λԡ͠෇͚ͯͳ͍

    View full-size slide

  20. WikiϖʔδΛͦͷ··࢖͏
    ࢴͷෆ۩߹ථ͸ཝ֎ʹϝϞॻ͍ͨΓɺෆ׬શͩͬͨΓࣗ༝͕ͩ
    ཧղͰ͖Δɻ8JLJʹॻ͍ͨ൒ఆܕʗ൒ࣗ༝ͳهड़Λղऍ͢Δ࢓૊ΈΛ༻ҙͨ͠ɻ

    View full-size slide

  21. จॻ͔ΒσʔλΛநग़
    RD
    : status
    3%EBUBͱ͍͏:".-Ҏલʹ3%ͷߏ଄Λσʔλදݱʹ࢖͏ࢼΈ͕
    ͨͿΜ͋ͬͨɻ38JLJ͸௨ৗͷจॻʹ3%EBUBΛࠞͥͯ࢖͏Α͏ͳײ͡ʂ
    ֏

    View full-size slide

  22. จॻ͔ΒσʔλΛநग़
    JSC͔ΒE3VCZͰ38JLJͷ಺༰ΛݟΔͱ͜Μͳͷ
    ֏

    View full-size slide

  23. ೜ऀࣜςετ
    Story/Bug
    +B445ΑΓ

    View full-size slide

  24. ೜ऀࣜ͸TDDͷࣗવͳ֦ு
    TDD
    νέοτ͸ސ٬͕৮ͬͯΘ͔ΔΑ͏ͳʮγεςϜʹର͢ΔมߋʯͰ͋Δͱ͍͏͜ͱɻ
    ϥΠϒϥϦͳͲ෦඼͚ͩ࡞ͬͯ΋৮Εͳ͍΋ͷ͸νέοτͷ୯Ґʹ͠ͳ͍ɻ

    View full-size slide

  25. ςετͱཤྺ
    ݱࡏ͸ཤྺͱ઱౓ɺϦεΫɺ։ൃͷςʔϚ͔Βܭࢉ͓ͨ͢͢͠ΊςετεΠʔτநग़Ξ
    ϧΰϦζϜʹΑΓɺςετͷස౓Λௐ੔͍ͯ͠Δʢ਺೔͔Β਺ϲ݄ʹҰ౓ʣ

    View full-size slide

  26. நग़͞Εͨςετͷར༻
    (('test:νέοτ໊'))
    ֏

    View full-size slide

  27. ཤྺͷ͍͢͝΍ͭ
    2003
    NG
    ৽͍͠࢓༷͸աڈͷ࢓༷Λ্ॻ͖͢ΔͷͰ͠͹͠͹ໃ६ͪ͠Ό͏
    ·࣮ͨ૷͕มԽͨ͜͠ͱͰςετ͢Δҙຯ͕ͳ͘ͳͬͨ΋ͷ΋͋Δ
    ࠷ۙɺ೥ͷνέοτͷςετ͕ෆཁʹͳ͍ͬͯΔͷʹؾ͍ͮͨ

    View full-size slide

  28. ΠϯσοΫεฤ
    ͍ͭ΋ͱͲΜͳ෩ʹҧ͏͔ͻͱ໨ͰΘ͔Δɻ

    View full-size slide

  29. ΠϯσοΫεͷ࣮૷
    Iteration, ,
    શͯͷνέοτ͕DMPTFʹͳͬͨΠςϨʔγϣϯΛӅ͢
    ΞΫςΟϒͳΠςϨʔγϣϯ͚͕ͩදࣔ͞ΕΔ
    ֏

    View full-size slide

  30. νέοτͷछྨͰ෼ྨ
    story bug

    View full-size slide

  31. αΠϯͷ౰ॳͷҙਤ

    View full-size slide

  32. ࠓ͸੡඼ɾόʔδϣϯɾ୲౰ऀ

    View full-size slide

  33. ேձฤ
    9:15-10:00

    View full-size slide

  34. ேձϏϡʔ
    Story

    View full-size slide

  35. ேձϏϡʔ
    yonezawa

    View full-size slide

  36. yonezawaேձϏϡʔ

    View full-size slide

  37. yonezawaேձϏϡʔ
    PC visited
    close

    View full-size slide

  38. yonezawaேձϏϡʔ
    45 45
    bug story

    View full-size slide

  39. 45෼ؒ
    45
    91͔ΒֶΜͩ΋ͷͷͻͱͭʼλΠϜϘοΫε

    View full-size slide

  40. ෇ᝦࢴͱน
    ΞΫςΟϒͳνέοτʢ͍·΍ͬͯΔνέοτʣʹ͍ͭͯ͸෇ᝦࢴ΍ෆ۩߹ථͳͲͷ
    ෺ཧతνέοτʹࣅ͍ͤͯΔ

    View full-size slide

  41. ࢴͰ͸೉͍͜͠ͱ
    ߋ৽͠ͳ͍ͳΒࣺͯͨ΄͏͕͍͍ɻ
    ຖ೔νέοτಡΈฦͯ͠ߋ৽ͯ͠ΔͱυϦϧֶशͷΑ͏ͳޮՌ͕͋ͬͯɺϝϯόʔͷ೴
    ಺഑ઢ͕ڧԽ͞ΕΔɻਓଆ͕ϓϥΠϚϦͷσʔλϕʔεʹͳΔɻ

    View full-size slide

  42. ͓·͚/͋͑ͯল͍ͨ΋ͷ
    ྲྀߦΓͷγεςϜʹ͍͍ͨͯ͋Δ΍ͭɻͦΕͧΕཧ༝͕͋ͬͯল͍ͨɻ

    View full-size slide

  43. ͓·͚/͋͑ͯল͍ͨ΋ͷ
    ࡞͔ͬͯΒফ͞Εͨ΋ͷ΋ଟ͍ɻͨͱ͑͹௨஌ܥ͸༻ҙ͕ͯ͋ͬͨ͠௚઀͋ͬͯ࿩͠
    ͨํ͕଎͍࣮֬͠ͳͷͰӅ͞Εͨɻʢπʔϧ࡞Δํ͸ָ͍͠ʣ

    View full-size slide

  44. ࠓ೔ͷΦν
    XP
    ͋ͷνʔϜ΋͍͢͝ʂ

    View full-size slide