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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
dbt Semantic Layerで進めるenechainのデータ民主化
akizhou
1
250
クラウドエージェントの先駆け Devin。今も最先端を走る、他との違い
kinopeee
0
160
ポケモン対戦を自動で記録して振り返ろう
fufufukakaka
0
310
シンプルな設定ファイルで実現する AWS IAM Identity Center の ユーザー管理Terraformフレームワークを公開しました / Simplifying AWS IAM Identity Center User Management: An Open-Source Terraform Framework
yamaguchitk333
0
260
Steerable Visual Representations
sansantech
PRO
0
340
AWSセキュリティで活用するAI機能
cmusudakeisuke
1
280
日本AIベンチャーレポート2026
kentarofujii
0
210
freeeにおけるSoftware Factory
freee
PRO
0
440
Microsoft のサポート ライフサイクルを理解する
murachiakira
PRO
0
150
How to Design Configuration for Rails Applications
willnet
2
1.2k
フィンテック養成勉強会#68
finengine
0
240
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
670
Featured
See All Featured
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
480
[SF Ruby Conf 2025] Rails X
palkan
3
1.5k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
450
Optimising Largest Contentful Paint
csswizardry
37
4k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
860
Navigating Weather and Climate Data
rabernat
0
560
Ethics towards AI in product and experience design
skipperchong
2
440
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
500
KATA
mclloyd
PRO
35
16k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
610
Into the Great Unknown - MozCon
thekraken
41
2.8k
Documentation Writing (for coders)
carmenintech
77
5.6k
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ͱؔ͠ͳ͍෦ɾΓ͚͍ͯΔ෦ςετ͕͋Δ(ςετۦಈͰͳ͘ɺอकͷత͕ڧ͍) ָ͍͔͠Β͍ͬͯΔ ༷Λ໌֬ʹͰ͖Δ͔Β