Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
BIT VALLEY 2018 ミクシィにおけるTDDの取り組みと実態
Search
dsakamoto
September 10, 2018
Technology
480
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BIT VALLEY 2018 ミクシィにおけるTDDの取り組みと実態
dsakamoto
September 10, 2018
More Decks by dsakamoto
See All by dsakamoto
Dive into mixi 2018/9/21 2年連続でISUCON予選通過するための技術
dsakamoto
0
1.8k
Other Decks in Technology
See All in Technology
形式手法を使って仕様をコーディングしよう
mikanichinose
0
160
企業の現実世界をグラフで写し取る
sansantech
PRO
0
230
メルカリにおけるAI時代の高速プロトタイピング基盤「Arca」
ryotarai
18
14k
The seven pitfalls of AI (revised version)
ufried
0
170
Apache Iceberg が拓く AI 時代のオープンレイクハウス
tomtanaka
0
210
雪かき部 #7 もう怖くない!SELECT文!
foursue
0
270
個別開発で終わらせない。 現場の課題をプロダクトの強さに変える StockmarkのFDE
ktkrhr
0
520
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
16
120k
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
310
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
1
140
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
630
AWS FinOps Agent 結局何が得意なの?
siromi
0
230
Featured
See All Featured
A better future with KSS
kneath
240
18k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
250
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
600
Building the Perfect Custom Keyboard
takai
2
890
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
500
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
330
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
290
GraphQLとの向き合い方2022年版
quramy
50
15k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
First, design no harm
axbom
PRO
2
1.3k
Transcript
(c) mixi, Inc, ϛΫγΟʹ͓͚Δ TDDͷऔΓΈͱ࣮ଶ גࣜձࣾϛΫγΟ ࡔຊେี
(c) mixi, Inc, ࣗݾհ • גࣜձࣾϛΫγΟ • ࡔຊ େี •
2017৽ଔೖࣾ • ීஈαʔόαΠυΤϯδχΞ • RubyΛॻ͔͘AWSͱٔΕ͍ͯΔ • झຯͰElixir, JavaScript, GoͳͲ
(c) mixi, Inc, ࣗݾհ • גࣜձࣾϛΫγΟ • ࡔຊ େี •
2017৽ଔೖࣾ • ීஈαʔόαΠυΤϯδχΞ • RubyΛॻ͔͘AWSͱٔΕ͍ͯΔ • झຯͰElixir, JavaScript, GoͳͲ ͍ͬ͘͢͟͝Γ
(c) mixi, Inc, ࠓ͢͜ͱ͞ͳ͍͜ͱ • ͢͜ͱ • ฐࣾͰͷTDDΛೝͯ͠Β͏ͨΊͷऔΓΈ • ࣾΞϯέʔτ݁ՌΛͱʹͨࣾ͠Ͱͷ࣮ଶ
• ݸਓతͳ “””ײ””” • ͞ͳ͍͜ͱ • TDDͦͷͷʹ͍ͭͯͷৄࡉͳઆ໌
(c) mixi, Inc, ฐࣾͰͷऔΓΈʹ͍ͭͯ
(c) mixi, Inc, ฐࣾͰͷऔΓΈʹ͍ͭͯ • ςετݚम • TDD Challenge
(c) mixi, Inc, ฐࣾͰͷऔΓΈʹ͍ͭͯ • ςετݚम • TDD Challenge
(c) mixi, Inc, ͳͥςετݚमΛߦ͏ͷ͔ • ͲͷΑ͏ͳܗͰ͋ΕςετΛॻ͘ͱ͍͏ͷҰൠతͰ͋ΓશࣾతʹߦΘΕͯ ͍Δͷ • →աڈɺݚमͱͯ͠ߦΘΕ͍ͯͳ͔ͬͨ •
→ͦͦςετ͢Βॻ͍ͨ͜ͱͷͳ͍৽ଔ͕ଐ͞Ε͍ͯͨ • ݁Ռͱ࣭ͯ͠ͷྑ͘ͳ͍ςετίʔυ͕ॻ͔ΕΔ • ͦͦ͘͠ςετ͕ॻ͔Εͳ͍ • ͱ͍͏ݱ͔ΒͷΛ౿·͑ݚमʹΈࠐ·Εͨ
(c) mixi, Inc, ςετݚम • 2017৽ଔ͔Βςετݚम͕ಋೖ • http://alpha.mixi.co.jp/entry/2017/07/07/173650 • ʮं૭͔ΒͷTDD(*)ʯΛϕʔεʹϖΞϓϩܗࣜͰςετۦಈ։ൃΛߦ͏
*ं૭͔ΒͷTDD http://objectclub.jp/technicaldoc/testing/stack_tdd.pdf ༷ࢠͰ͢
(c) mixi, Inc,
(c) mixi, Inc,
(c) mixi, Inc, ฐࣾͰͷऔΓΈʹ͍ͭͯ • ςετݚम • TDD Challenge
(c) mixi, Inc, TDD Challenge • ৽ଔͰධͩͬͨςετݚमΛֶੜ͚Πϕϯτͱͯ͠ΞϨϯδ • ֶੜ࣌ʹͳ͔ͳ͔ςετΛॻ͘͜ͱ͕ͳ͍ •
ͦͦͲ͏ͬͯॻ͍͍͚͍͍͔ͯΘ͔Βͳ͍ • ςετͷॻ͖ํ͔ΒTDDͷϑϩʔΛମݧ • 9/7(ۚ)ʹ։࠵͠·ͨ͠
(c) mixi, Inc, ࣾͰͷ༷ࢠ
(c) mixi, Inc, લఏ • ϛΫγΟࣾͰଟछଟ༷ͳαʔϏε͕ల։͞Ε͍ͯ·͢ • νʔϜ͝ͱʹٕज़ελοΫ։ൃελΠϧશ͘ҟͳΔ • Web
app, Android/iOS app, Unity, etc etc…. • શࣾͰ౷Ұͷ։ൃख๏ͳͲͳ͘దࡐదॴ • ฐࣾΤϯδχΞͷTDDʹର͢Δؾ࣋ͪΛฉ͍ͯΈ·ͨ͠
(c) mixi, Inc, શମͷΞϯέʔτ • ճऀ 38໊ • TDDΛ͍ͬͯ·͔͢ʁ •
ॴଐ͍ͯ͠ΔνʔϜͰTDDΛ࣮ફ͍ͯ͠·͔͢ʁ • TDDΛ࣮ફ্ͨ͠Ͱײͨ͡ϝϦοτɾσϝϦοτ • ଞͷਓνʔϜϝϯόʔʹTDDΛקΊ͍ͨͰ͔͢ʁ • (࣮ફ͍ͯ͠ͳ͍߹)ͳ࣮ͥફ͍ͯ͠·ͤΜ͔ʁ
(c) mixi, Inc, શମͷΞϯέʔτ • ճऀ 38໊ • TDDΛ͍ͬͯ·͔͢ʁ •
ॴଐ͍ͯ͠ΔνʔϜͰTDDΛ࣮ફ͍ͯ͠·͔͢ʁ • TDDΛ࣮ફ্ͨ͠Ͱײͨ͡ϝϦοτɾσϝϦοτ • ଞͷਓνʔϜϝϯόʔʹTDDΛקΊ͍ͨͰ͔͢ʁ • (࣮ફ͍ͯ͠ͳ͍߹)ͳ࣮ͥફ͍ͯ͠·ͤΜ͔ʁ
(c) mixi, Inc, TDDΛ͍ͬͯͯΑ͔ͬͨ͜ͱɺಘΒΕͨϝϦοτʹ͍ͭͯڭ͍͑ͯͩ͘͞ • ૄ݁߹ͳ࣮ɺ༷ಈ࡞αϯϓϧͷςετʹΑΔ໌จԽ • ࣮͠ΕΛ͙͜ͱ͕Ͱ͖ͨɻظ͢Δڍಈ͕ཧ͞ΕͲ͏ৼΔ͏͖ ͔ઃܭͬΆ͍͜ͱ͕Ͱ͖ͨɻ •
ϨΞέʔεڥքΛ͜΅ͣ͞ʹॻ͚Δ͠ɺάϦʔϯɾϨουΛ܁Γฦ͢͜ͱ Ͱୡײ͕ಘ͍͢
(c) mixi, Inc, TDDΛ͍ͬͯͯΑ͔ͬͨ͜ͱɺಘΒΕͨϝϦοτʹ͍ͭͯڭ͍͑ͯͩ͘͞ • ςετϑΝʔετͰͳͯ͘ɺςετΛॻ͖ͳ͕Β։ൃΛਐΊΔͱɹ҆৺ײ͕͋Δ • Βͳ͍ίʔυ֮͑ͯͳ͍ίʔυʹमਖ਼͕ඞཁʹͳͬͯɺ҆৺ͯ͠มߋΛՃ͑ Δ͜ͱ͕Ͱ͖Δ •
ςετ͕ઌߦ͢Δ͜ͱͰɺͦͷ͠ͷ͗ͷ࣮Ͱͳ͘ςετ͕Ͱ͖Δ࣮͕Ͱ͖ͨ ΓɺϦϑΝΫλ࣌ͷ҆৺ʹͭͳ͕ͬͨΓ͢Δͱײ͍ͯ͡Δ
(c) mixi, Inc, ରʹTDDΛਐΊΔʹ͋ͨͬͯࠔͬͨ͜ͱɺσϝϦοτͩͳͱײͨ͜͡ͱʹ͍ͭͯڭ͍͑ͯͩ͘͞ • test codeͷཧίετ • طଘͷίʔυϕʔεʹςετίʔυ͕͍ͬͯͳ͍ͱɺςετΛಋೖ͢Δ ·Ͱʹ͕͔͔࣌ؒΔ
• ϓϩδΣΫτ͕ڊେͩͱςετΛ࣮ߦ͢Δͷʹ͔͔࣌ؒͬͯɺ͍͍ͪͪς ετۦಈͯͨ͠Β͕͔͔࣌ؒͬͯ͠·͏
(c) mixi, Inc, ରʹTDDΛਐΊΔʹ͋ͨͬͯࠔͬͨ͜ͱɺσϝϦοτͩͳͱײͨ͜͡ͱʹ͍ͭͯڭ͍͑ͯͩ͘͞ • ࠓ৽نࣄۀΛ͍ͬͯΔͨΊɺ࡞Γ͠ϒϥογϡΞοϓͷաఔͰςετͷҙٛ ͕ͳ͘ͳͬͨΓᐫʹͳΔ͜ͱଟ͍ͷͰɺΊͯ͠·͍·ͨ͠ɻ • ΫϥΠΞϯτΞϓϦͷΑ͏ʹϏϧυ͓Αͼςετʹ10୯ҐͰ͕͔͔࣌ؒΓɺ༷͕ ͜Ζ͜ΖมΘΔ։ൃʹ͓͍ͯ͋·ΓTDD͙ͦΘͳ͍Α͏ʹײͨ͡ɻ
• ήʔϜΛ։ൃ͢Δ͏͑ͰTDDʹ͍͍ͯΔɺͦ͏Ͱͳ͍͕ଘࡏ͢ΔͷͰѻ͍ ͕͍͠ɻ
(c) mixi, Inc, Ξϯέʔτ·ͱΊ • ϝϦοτ • ςετʹ͍ͭͯ೦಄ʹஔ͖ͳ͕Β࡞ۀΛਐΊΔ͜ͱͰ༷࿙ΕΛճආɺઃܭΛ͢͢Ί͘͢ͳͬ ͨͱײ͍ͯ͡Δ •
ෆ҆Λίϯτϩʔϧ͠ͳ͕Βண࣮ʹҰาͣͭਐΊΔ҆৺ײ͕ϝϦοτͱͯ͠ײ͡ΒΕ͍ͯΔ • σϝϦοτ • ςετΛճ্͢Ͱͷڥඋςετίʔυͷཧɾӡ༻ίετ͕ߴ͍ • ։ൃ͢ΔϓϩμΫτͷੑ࣭ɺϑΣʔζʹΑͬͯෆదͳ߹͕ଟ࣮͘ࡍʹಋೖ͍ͯ͠ͳ͍ύ λʔϯ
(c) mixi, Inc, ݸਓతͳ͓ؾ࣋ͪ • “ςετۦಈ։ൃϓϩάϥϛϯάதͷෆ҆Λίϯτϩʔϧ͢Δख๏ͩ” • ςετۦಈ։ൃ ·͕͖͑ •
ෆ҆ͳΛ໌Β͔ʹ͠ͳ͕ΒਐΊΔ • ༷ઃܭʹ͍ͭͯਂ͘ߟ͑Δඞཁ • ͦͷաఔͰ࿙ΕͳͲΛ͙͖͔͚ͬͱͳͬͯΑ͍ • ͱ͍͏͔جຊతʹ͕ࣗࣗ৴͡ΒΕͳ͍!!! • TDD͕͙ͦΘͳ͍෦Ͱಋೖͯ͠ίετ͕େ͖͘ͳΔͷຊస
(c) mixi, Inc, શମ·ͱΊ • ฐࣾͰߦ͍ͬͯΔݱͷΛ౿·͑ͨςετʹؔ͢Δݚमͱɺֶੜʹମݧ ͯ͠Β͑ΔΠϕϯτΛհ • ࣭୲อɺઃܭͷ͢͢Ί͢͞ͷྑ͞Λମݧ •
Ұͭͷख๏ͱͯ͠TDDΛͬͯΒ͏׆ಈ • ॴଐ͢ΔΤϯδχΞͨͪͷTDDʹର͢Δؾ࣋ͪͱ࣮ײΛൃද
(c) mixi, Inc, EOF
(c) mixi, Inc, Appendix
(c) mixi, Inc, શମ͚Ξϯέʔτ • ճ 38 • TDDΛ͍ͬͯ·͔͢ʁ •
ॴଐ͍ͯ͠ΔνʔϜͰTDDΛ࣮ફ͍ͯ͠·͔͢ʁ • TDDΛ࣮ફ্ͨ͠Ͱײͨ͡ϝϦοτɾσϝϦοτ • ଞͷਓνʔϜϝϯόʔʹTDDΛקΊ͍ͨͰ͔͢ʁ • (࣮ફ͍ͯ͠ͳ͍߹)ͳ࣮ͥફ͍ͯ͠·ͤΜ͔ʁ
(c) mixi, Inc,
(c) mixi, Inc, TDDΛ͍ͬͯͯΑ͔ͬͨ͜ͱɺಘΒΕͨϝϦοτʹ͍ͭͯڭ͍͑ͯͩ͘͞ ࣮ʹࣗ৴͕࣋ͯ·͢ɻ جຊతʹʮςετ͕͋Δʯ͜ͱ͕อূ͞Ε͍ͯΔͷͰɼ҆৺ͯ͠ίʔυΛॻ͍ͯJenkins͓͡͞ΜʹౖΒΕΔ͜ͱ͕Ͱ͖Δ ࣮࿙Ε͕ݮͬͨ / ظ͢Δಈ࡞͕Θ͔Γ͔ͬͨ͢ ۦಈͰܶతʹخ͍͜͠ͱࢥ͍͔ͭͳ͍ʢςετͦͷͷ͋Δ͚Ͳʣɻ
ઌʹςετΛ४උ͢Δ͜ͱͰɺ࣮࣌ʹԿ͕ඞཁͱ͞Ε͍ͯΔ͔ɺߟ͑ͳ͚ΕͳΒͳ͍ͷ͔ͱ͍ͬͨ͜ͱΛࣗવͱҙࣝ͢ΔΑ͏ʹͳͬͨ ·ͨɺςετ͕ઌߦ͢Δ͜ͱͰɺͦͷ͠ͷ͗ͷ࣮Ͱͳ͘ςετ͕Ͱ͖Δ࣮͕Ͱ͖ͨΓɺϦϑΝΫλ࣌ͷ҆৺ʹͭͳ͕ͬͨΓ͢Δͱײ͍ͯ͡Δ ಛʹOSSͱͯ͠ެ։͢Δࡍʹπʔϧͷ৴པੑ୲อܰඍͳෆ۩߹ࠞೖΛ͛Δͷ͕ྑ͍ɻ Βͳ͍ίʔυ֮͑ͯͳ͍ίʔυʹमਖ਼͕ඞཁʹͳͬͯɺ҆৺ͯ͠มߋΛՃ͑Δ͜ͱ͕Ͱ͖Δ ϨΞέʔεڥքΛ͜΅ͣ͞ʹॻ͚Δ͠ɺάϦʔϯɾϨουΛ܁Γฦ͢͜ͱͰୡײ͕ಘ͍͢ όά͕ίϛοτ͞Εʹ͘͘ͳͬͯ݁Ռతʹ্࣭͕͕Δɻ όάमਖ਼ʹ͓͍ͯɺใࠂ͞ΕͨόάΛ࠶ݱ͢ΔςετΛ࡞͔ͯ͠Β࣮Λमਖ਼͢Δ͜ͱͰແҙຯͳվम (վमͨͭ͠Γ͕ͩվमͰ͖ͳ͍) ΛճආͰ͖ΔϝϦοτΛײ͡Δɻ ࣮ͷલʹৼΔ͍͓Αͼ༷͕໌֬ʹͳΓɺઃܭͷॿ͚ʹͳΔ લ৬Ͱ͍͕ͬͯͨQAͰݕূ͢Δ߲͕ݮͬͨɻ ϦϞʔτϦϙδτϦʹpush͢ΔલʹඞͣςετΛ௨͢ඞཁ͕͋ΔϫʔΫϑϩʔʹ͢Δ͜ͱͰࣄނ͕ݮͬͨɻ ࣮͠ΕΛ͙͜ͱ͕Ͱ͖ͨɻظ͢Δڍಈ͕ཧ͞ΕͲ͏ৼΔ͏͖͔ઃܭͬΆ͍͜ͱ͕Ͱ͖ͨɻ ࡉ͔ͳϛεʹؾ͖͍ͮ͢ test feed backʹΑΔproduction codeͷ্࣭ ૄ݁߹ͳ࣮ɺ༷ಈ࡞αϯϓϧͷςετʹΑΔ໌จԽ ςετΛॻ͘தͰ༷Λ໌֬ԽͰ͖Δɻ༷ܾ·ͬͨͱࢥ͍͕ͬͯͨ࿙Ε͍ͯͨέʔεʹؾ͘͜ͱ͕Ͱ͖Δɻ ςετϑΝʔετͰͳͯ͘ɺςετΛॻ͖ͳ͕Β։ൃΛਐΊΔͱ҆৺ײ͕͋Δ viewʹϩδοΫؙग़͠ɺͳͲͻͲ͍࣮ʹͳΔ͜ͱͳ͘ͳͬͨ rubyಈ͔͢·ͰΘ͔ΒΜͷͰઌʹςετॻ͍ͱ͘ͱศར ϝιουΛ௨͢ςετΛॻ͘ͷ͔༷ʹ४ͨ͡ςετΛॻ͘ͷ͔ߟ͑ΔΑ͏ʹͳͬͨؾ͕͢Δ
(c) mixi, Inc, ରʹTDDΛਐΊΔʹ͋ͨͬͯࠔͬͨ͜ͱɺσϝϦοτͩͳͱײͨ͜͡ͱʹ͍ͭͯڭ͍͑ͯͩ͘͞ ࡶͳςετଟʑ͋Δ TDDΛ໌จԽͨ͜͠ͱʹΑΔྫ֎ͷೝΊʹ͘͞ ϓϩδΣΫτ͕ڊେͩͱςετΛ࣮ߦ͢Δͷʹ͔͔࣌ؒͬͯɺ͍͍ͪͪςετۦಈͯͨ͠Β͕͔͔࣌ؒͬͯ͠·͏ɻ ෳਓͰ͍ͬͯ͘ͱɺͦΕͧΕඞཁͱࢥ͍ͬͯΔ͜ͱͳͲͷՁ؍͕߹Θͳ͔ͬͨΓ͢ΔͷͰ͙͢ʹಋೖͱ͍͏͜ͱ͕͘͠ײ͡Δ ɾClean ArchitectureͷΑ͏ʹςετۦಈΛલఏͱͨ͠ઃܭಘͯͯ͠ίʔυྔ͕૿େ͕ͪ͠ͳͷͰͦ͜σϝϦοτͷ̍ͭͱͳΔͱࢥΘΕΔ
ɾTDDΛ࣮ફ͍ͯ͠ͳ͍ൺֱతग़དྷΔதڃΤϯδχΞͷཧղ͕ಘΒΕʹ͍͘໘͋Δ (্هͷίʔυྔ͕૿େ͢Δͦͷ̍ͭͱࢥΘΕΔ) ɾςετͷཻΛͲͷఔ·Ͱ୲อ͢Δ͖͔Αٞ͘ʹͳΔɻશέʔεΛΧόʔͰ͖Εཧ͕ͩݱ࣮తʹ͕࣌ؒΓͳ͍͜ͱଟ͘ɺམͱ͠ॴΛܾΊΔͨΊͷஅࡐྉͱͯ͠ઈରతͳ ج४͕ଘࡏ͠ͳ͍ ɾTDDʹ͓͚ΔΫϥεઃܭ (ΞϓϦέʔγϣϯଆͦ͏͕ͩςετίʔυଆͷํ) Λհ͍ͯ͠Δྫগͳ͍ͷͰͦ͜ͷϕετϓϥΫςΟεΓ͍ͨ TDDະܦݧऀʹςετͷॏཁੑΛΒͳ͍ਓʹॏཁੑɺϝϦοτΛઆ໌͢Δɺ࣮ײͯ͠Β͏ͷ͕ࠔ ࠓ৽نࣄۀΛ͍ͬͯΔͨΊɺ࡞Γ͠ϒϥογϡΞοϓͷաఔͰςετͷҙ͕ٛͳ͘ͳͬͨΓᐫʹͳΔ͜ͱଟ͍ͷͰɺΊͯ͠·͍·ͨ͠ɻ ͪΐͬͱ໘ɻ ༷͕໌֬ʹ༩͑ΒΕ͓ͯΒͣɺͨͱ͑ίϯϙʔωϯτͷڥքͰͷ༷ዞҙతʹܾΊΒΕΔ߹ɺઌʹૈ࣮͘͢Δํ͕ΑΓదͳ༷͓ΑͼઃܭΛܾఆͰ͖ΔΑ͏ʹࢥͬͨɻTDDΛݪ ཧతʹద༻͠Α͏ͱ͢Δͱɺ༷ → ઃܭͱ͍͏ྲྀΕ͕Ұํʹա͗Δؾ͕͢Δɻ·ͨɺΫϥΠΞϯτΞϓϦͷΑ͏ʹϏϧυ͓Αͼςετʹ10୯ҐͰ͕͔͔࣌ؒΓɺ༷͕͜Ζ͜ΖมΘΔ։ ൃʹ͓͍ͯ͋·ΓTDD͙ͦΘͳ͍Α͏ʹײͨ͡ɻ ήʔϜΛ։ൃ͢Δ͏͑ͰTDDʹ͍͍ͯΔɺͦ͏Ͱͳ͍͕ଘࡏ͢ΔͷͰѻ͍͕͍͠ɻ Ͳ͏ͯ͠ೲظ͕ഭΔͱ㚽ΖʹͳΔɻ ΓؾͰͳ͍ਓͷࣄͷύϑΥʔϚϯε͕ۃʹԼ͕Δ߹͕͋Δɻ ಛʹࢥ͍͔ͭͳ͍Ͱ͢ ςετέʔεΛա৴ͯ͠όά͕ൃݟͰ͖ͳ͍ test codeͷཧίετ ֎෦αʔϏεͷґଘόϦόϦͳͷίϯτϩʔϥͳͲ্ҐͷϨΠϠʔͰ͏·͍͔͘ͳ͍ ༷͕ᐆດͳதͰͱΓ͋͑ͣίʔυΛॻ͖ग़͢ͱ͍͏͜ͱ͕Ͱ͖ͳ͍ɻͦͷ߹݁ہޙ͔ΒςετΛॻ͍ͯTest DrivenʹͰ͖ͳ͔ͬͨΓ͢Δɻ ຊʹςετ͚͔ͩΒॻ͖࢝ΊΔͷ͍͠ & ޮ͕ѱ͍ͱࢥ͏ طଘͷίʔυϕʔεʹςετίʔυ͕͍ͬͯͳ͍ͱɺςετΛಋೖ͢Δ·Ͱʹ͕͔͔࣌ؒΔ
(c) mixi, Inc,
(c) mixi, Inc, ςετݚमΛड͚ͨ৽ଔ͚Ξϯέʔτ • ճ14 • ݚमΛड͚ΔલͷTDDʹ͍ͭͯ (͍͔ͬͯͨɺΒͳ͍͔ͳͲ) •
ݚमޙɺଐઌݸਓͰͷ։ൃͰTDDΛ࣮ફ͍ͯ͠·͔͢ • TDDͷ࣮ફ͍ͬͯΔ or ͍ͬͯͳ͍ཧ༝ͳΜͰ͔͢ʁ
(c) mixi, Inc,
(c) mixi, Inc, TDDͷ࣮ફ͍ͬͯΔ or ͍ͬͯͳ͍ཧ༝ͳΜͰ͔͢ʁ ͍··Ͱͷίʔυʹςετॻ͔Ε͍ͯΔ͠ɼTDDշײ͕͋Δ͔Β ݱঢ়ͷϓϩμΫτʹςετΛಋೖ͢Δ͜ͱͷ࡞ۀίετ͕ߴ͍, ৽نͰ࡞͢Δ߹ςετΛॻ͘ ςετΛॻ͘͜ͱͰࠓ͔Βॻ͘ίʔυͷ༷ʹ͍ͭͯͷཧղ͕ਂ·Δɻ
ςετΛॻͨ͘ΊʹϝιουͷΠϯλʔϑΣʔεΛܾΊΔඞཁ͕͋ΔͷͰ៉ྷͳίʔυ͕ॻ͚ΔΑ͏ʹͳΔؾ͕͢Δɻ TDDͷਖ਼ղ͕Θ͔Βͳ͍ ݁ہTDD͍࣮͢͠Λॻ͍ͯɺςετ௨࣮ͬͯͰ͖͚ͨͲɺͦͷ͍͍ؔ͢ͷ͔ʁͱ͍͏ͷʹؕͬͨͷͰɻ ͋ͱUnityͰςετॻ͍ͯࢥͬͨͷϑϨʔϜϫʔΫଆͰ༻ҙͯ͠ΔΫϥεΛςετͰnew()͢Δํ๏͕Θ͔Βͳͯ͘ɺ݁ہ࣮ͷํॻ͖͑Δ݁ՌʹͳͬͨΓɻ ςετ͕͍ͷͰશͳςετۦಈΛΔؾ͕ى͖ͳ͍(bug fix ͷ࣌ TDD ͢Δ͚Ͳ) ࠷ॳ͔Βશମͷ࣮ײ͕(ະख़Ώ͑ʹ)ݟ͍͑ͯͳ͍ͷͰ࠷ॳʹςετॻ͜͏ͱࢥ͑ͳ͍ ػցֶशपΓΛ৮͓ͬͯΓɺςετΛॻ͘ͷ͕͍͠ ςετࣗମྲྀੴʹॻ͖·͕͢ɺςετϑΝʔετͰॻ͍͍ͯΔΘ͚Ͱͳ͍Ͱ͢ɻ ΄ͱΜͲ৮ͬͨ͜ͱ͕ͳ͍ݴޠ&&৮ͬͨ͜ͱ͕ͳ͍ϑϨʔϜϫʔΫ&&Α͘Βͳ͍ϓϩμΫτ…ͷΑ͏ͳঢ়گͰɺ͍͖ͳΓςετ͔Βॻ͘ͷ͍͠ͳͱײ͡ ͍ͯΔͨΊɺTDDΛ࣮ફͰ͖͍ͯͳ͍ͷ͕ݱঢ়Ͱ͢ɻ ϓϩμΫτʹςετίʔυ͕͍ͬͯͳ͍ ༷มߋϦϑΝΫλϦϯάͳͲͷࡍʹςετ͕ແ͍ͱཱͪߦ͔ͳ͍ͱ͔ɺTDDΛߦ͏จԽΛ࡞͓͍ͬͯͯϨϏϡʔίετΛԼ͛Δͱ͔ʢཁ݅ɾ༷ʹରͯ͠ς ετΛϨϏϡʔͯ͋͠Δఔ࣮ํͷϨϏϡʔʹͳΔʣ Unity։ൃͰςετΛॻ͖ͮΒ͍(ࢼͯ͠ͳ͍͚ͲPlayModeTestͱ͍͏ͷ͕͋ΔΒ͍͔͠Βݴ͍༁͔)ɻ Viewͱؔ͠ͳ͍෦ɾΓ͚͍ͯΔ෦ςετ͕͋Δ(ςετۦಈͰͳ͘ɺอकͷత͕ڧ͍) ָ͍͔͠Β͍ͬͯΔ ༷Λ໌֬ʹͰ͖Δ͔Β