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
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
470
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
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
610
From Vanilla Kubernetes to a Batteries-Included Platform: Developer Experience at 1,300+ Clusters
yosshi_
0
640
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
270
推論の観測、できていますか? 〜 Google Cloud Gemini Enterprise Agent Platformで 3つの Gemini モデルを実測して踏んだ、評価の罠 〜
shukob
PRO
0
180
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
0
280
薬剤師(ドメインエキスパート)と一緒に育てる薬局向けAIアシスタント
kakehashi
PRO
2
120
10分で知る最近のOmarchy
komagata
0
160
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
240
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.4k
omasushiというライブラリを作った
polidog
PRO
0
150
Bet AI Day 2026丨Production-Ready AI Agents — エンタープライズの実務を任せるための設計と運用
layerx
PRO
4
2.6k
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
150
Featured
See All Featured
From π to Pie charts
rasagy
0
360
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
Designing for Timeless Needs
cassininazir
1
470
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
520
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
320
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
410
Believing is Seeing
oripsolob
1
210
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
370
Typedesign – Prime Four
hannesfritz
42
3.2k
It's Worth the Effort
3n
188
29k
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ͱؔ͠ͳ͍෦ɾΓ͚͍ͯΔ෦ςετ͕͋Δ(ςετۦಈͰͳ͘ɺอकͷత͕ڧ͍) ָ͍͔͠Β͍ͬͯΔ ༷Λ໌֬ʹͰ͖Δ͔Β