Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
サーバーレス時代にこそ 身につけたいTDD入門
Search
Hiroshi Maekawa (a.k.a. Posaune)
October 06, 2018
Technology
0
300
サーバーレス時代にこそ 身につけたいTDD入門
.NET Conf 2018 Kansai での発表資料です。
Hiroshi Maekawa (a.k.a. Posaune)
October 06, 2018
Tweet
Share
More Decks by Hiroshi Maekawa (a.k.a. Posaune)
See All by Hiroshi Maekawa (a.k.a. Posaune)
「カスタマイズ」から「標準化」へ。 CI as a Service の考え方を取り入れて DevOps を加速させよう!
posaunehm
1
500
大正Geek Night 2018-08-27
posaunehm
0
110
Other Decks in Technology
See All in Technology
Webhook best practices for rock solid and resilient deployments
glaforge
2
310
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
610
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
370
ランサムウェア対策としてのpnpm導入のススメ
ishikawa_satoru
0
230
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
220
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
410
Context Engineeringの取り組み
nutslove
0
380
GitHub Copilot CLI を使いやすくしよう
tsubakimoto_s
0
100
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
260
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
680
AIが実装する時代、人間は仕様と検証を設計する
gotalab555
1
550
pool.ntp.orgに ⾃宅サーバーで 参加してみたら...
tanyorg
0
1.2k
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
22k
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
200
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
79
Information Architects: The Missing Link in Design Systems
soysaucechin
0
780
Navigating Weather and Climate Data
rabernat
0
110
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
エンジニアに許された特別な時間の終わり
watany
106
230k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
130
Building Adaptive Systems
keathley
44
2.9k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Transcript
αʔόʔϨε࣌ʹͦ͜ ʹ͚͍ͭͨTDDೖ ΪϧυϫʔΫεגࣜձࣾ લ തࢤ
͡Ίʹ
ΪϧυϫʔΫεʹ͍ͭͯ
None
None
None
None
None
None
None
αʔόʔϨε࣌ʹͦ͜ ʹ͚͍ͭͨTDDೖ ΪϧυϫʔΫεגࣜձࣾ લ തࢤ
ࣗݾհ • ΪϧυϫʔΫεגࣜձࣾ ALMΤϯδχΞ • Application Lifecycle Management • ಘҙٕ
• ։ൃ • αʔόʔαΠυɿ Java • "OESPJE+BWB→,PUPMJO • iOS: Swift • Webϑϩϯτɿ Vuejs, Angular/Ionic • ͦͷଞɿ C# ͕Ұ൪͖͚ͩͲ࠷ۙॻ͍͍ͯͳ͍… • CI / CDͷඋ • ࠷ۙͬͺΒCircleCI
ͯ͞ɺຊɻ
None
ͦ͏Ͱͳ͍ ʢͱࢥͬͯ·͢ʣ
ͦͦαʔόʔϨεͬͯʁ • ໌ࣔతͳʮϚγϯʯΛҙࣝͤͣɺSaaSαʔϏεͷ Έ߹ΘͤʹΑͬͯػೳΛ࣮ݱ͢Δ • Πϯϑϥͷίετ͕ܶతʹԼ͕Δࣄ͕ଟ͍ • ·ͨɺSLAجຊΫϥυϕϯμʔͤʹͰ ͖ɺগͳ͘ͳΔʢNoOps ͱ͍ΘΕΔʣ
• …ྫ͑ɺ͜Μͳߏɻ
AWS ʹΑΔ αʔόʔϨεߏ CloudFront Cognito ϓϨθϯςʔγϣϯ ΞϓϦέʔγϣϯ σʔλετΞ ଓ ೝূαʔϏε
ήʔτΣΠ
̩ ̥ ̤ ʂ
Azure ʹΑΔαʔόʔϨεߏ ϓϨθϯςʔγϣϯ ΞϓϦέʔγϣϯ σʔλετΞ ଓ "[VSF"DUJWF%JSFDUPSZ "1*.BOBHFNFOU "[VSF4UPSBHF "[VSF$%/
"[VSF'VODUJPOT "[VSF$PTNPT%#
αʔόʔϨεͰࠔΔͱ͜Ζ • ։ൃڥͲ͏͢Δ͔ • ͦͦΫϥυαʔϏεʹϕολϦͳͷͰɺ ʮϩʔΧϧڥʯͱ͍͏֓೦͕ଘࡏ͠ͳ͍ • ٖࣅతʹϩʔΧϧʹڥΛ͑ΔΈଘࡏ͢Δ͕… • ಈ࡞֬ೝΛ͢ΔͨΊʹɺαʔόʔʹΞοϓϩʔυ
͢Δɺͱ͍͏೦ͳ݁Ռʹ…
Function as a Service ʹର͢Δςετ ΞϓϦέʔγϣϯ σʔλετΞ ଓ "[VSF"DUJWF%JSFDUPSZ "1*.BOBHFNFOU
"[VSF'VODUJPOT "[VSF$PTNPT%# Ҿ͑͞ἧ͑ΒΕΕγϛϡϨʔτՄೳ .PDLͰஔ͖͑Λߦ͏ ΠϯϓοτΞτϓοτΛఆٛͯ͠ ։ൃ͢Δ㱺5%%
TDD:ςετۦಈ։ൃ ͱ
ςετۦಈ։ൃ • ᶃ ࠷ॳʹςετΛॻ͘ • ᶄ ςετΛ࣮ߦ͠ɺࣦഊͤ͞Δ • ᶅ ςετ͕ޭ͢ΔΑ͏ʹίʔυΛमਖ਼͢Δ
• ᶆ ςετ͕௨ͬͨঢ়ଶΛอͪͳ͕ΒɺίʔυΛΑ Γݟ͘͢ɺϝϯςφϯε͘͢͠࡞Γม͑Δ • ᶃ ʙ ᶆΛ܁Γฦ͠ɺখ͞ͳεςοϓͰ ιϑτΣΞΛ࡞Γ্͍͛ͯ͘
TDDͷԫۚࡾ֯ܗ https://www.slideshare.net/t_wada/the-spirit-of-tdd
TDDʹ͋Γ͕ͪͳޡղ • TDDͬͯɺΊͬͪΌͰ͖ΔϓϩάϥϚʔ͕Δ ಛघٕೳͰ͠ΐʁ • ҧ͍·͢ɻΊͬͪΌͰ͖ΔϓϩάϥϚʔ TDD͠·ͤΜɻͰ͖ͳ͍ϓϩάϥϚʔͷͨΊͷ ϝιουͳͷͰ͢ɻ
TDDʹ͋Γ͕ͪͳޡղ • ͳΜͰΘ͟Θ͟ςετίʔυͳΜͯແବͳͷ ॻ͘ͷʁ͔͔࣌ؒΔ͚ͩ͡Όͳ͍ʁ • ͋ͳ͕ͨಈ࡞֬ೝͳ͠ͰɺҰൃͰਖ਼͍͠ίʔυ͕ ॻ͚ΔਓͳΒෆཁ͔͠Ε·ͤΜɻ ͦ͏Ͱͳ͍ͳΒɺςετίʔυ࠷খͷಈ࡞֬ೝ ڥΛ࡞͍ͬͯΔΜͰ͢ɻແବ͡Όͳ͍Ͱ͢ɻ
TDDʹ͋Γ͕ͪͳޡղ • TDDͰ։ൃͨ͠ΒςετཁΒͳ͍ΜͩΑͶʂʂ • ཁΓ·͢ɻ ʮ։ൃͷͨΊͷςετʯ͚ͩͰ࣭อূͱͯ͠ ෆेͰ͢ɻಛʹɺʮਖ਼͍͠ͷ͔ʯͱ͍͏ Validation ؍ܾఆతʹෆ͠·͢ɻ
TDDʹ͋Γ͕ͪͳޡղ • ܾ·ͬͨΓํͱ͔ͳ͍ΜͩΑͶʁ • ʮܕʯΛΓ·͠ΐ͏
ܕ - Kata - ʮܕʯͱɺϓϩάϥϚʔ͕࣮ફͱ෮Λ௨ͯ͠ ٕज़Λຏͨ͘Ίͷख๏Ͱ͋Δɻ
Bowling Game Kata • Programming Kata ͷҰͭ • ΈΜͳେ͖ ɺϘϒ͓͡͞Μ͜ͱBob
Martin͕ ࡞͍ͬͯ·͢
Bowling Game Kata http://butunclebob.com/ ArticleS.UncleBob.TheBowlingGameKata
۩ମతʹͲΜͳͷʁ
࣮ࡍʹͬͯΈΔ
·ͱΊ • αʔόʔϨεͷ͔࣌ͩΒͦ͜ɺ࡞Δखஈͱͯ͠ TDD͓͍͑ͯͨ΄͏͕͍͍ • TDD ͷΓํɺ͋ΔఔମͰ֮͑Δඞཁ͕͋ ΔɻͳͷͰɺʮܕʯΛΖ͏ • Bowling
Game Kata Θ͔Γ͘͢Φεεϝ
͞Βʹษڧ͍ͨ͠ਓͷͨΊʹ • ͦͦͲΜͳίʔυ͕͍͍ͱ͔Α͘Θ͔Βͳ͍Μ͚ͩͲ 㱺 Refactoring ୈೋ൛͕ग़Δ͔ΒͨΕΑʢӳޠ൛Ͱ͍͍͔Βങ͓͏ʣ • ͦͦίʔυ͕;Δͯͭ͘Β͍ 㱺 ʮϨΨγʔίʔυվળΨΠυʯಡΈ·͠ΐ͏
• UIपΓͷςετʁ 㱺 Selenium, Puppeteer, Katalon Studio ͋ͨΓΛνΣοΫ͢͠ • ଞͷܕͳ͍ͷʁ 㱺 ϥΠϑήʔϜʢGame of LifeʣΦεεϝ