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. dRuby20प೥
    [email protected]

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. ೥ද
    ੈل຤͔Βੈل΁
    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 Slide

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

    View Slide

  12. νέοτฤ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  33. αΠϯͷ౰ॳͷҙਤ

    View Slide

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

    View Slide

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

    View Slide

  36. ேձϏϡʔ
    Story

    View Slide

  37. ேձϏϡʔ
    yonezawa

    View Slide

  38. yonezawaேձϏϡʔ

    View Slide

  39. ேձϏϡʔ

    View Slide

  40. ேձϏϡʔ

    View Slide

  41. ேձϏϡʔ

    View Slide

  42. yonezawaேձϏϡʔ
    PC visited
    close

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide