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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Hiroshi Maekawa (a.k.a. Posaune)
October 06, 2018
Technology
310
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サーバーレス時代にこそ 身につけたいTDD入門
.NET Conf 2018 Kansai での発表資料です。
Hiroshi Maekawa (a.k.a. Posaune)
October 06, 2018
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
510
大正Geek Night 2018-08-27
posaunehm
0
120
Other Decks in Technology
See All in Technology
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
120
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
7.7k
【FinOps】データドリブンな意思決定を目指して
z63d
2
480
起点・思考・出力で分解する 〜PM業務の自動化設計〜
kazu_kichi_67
2
1.1k
iOS アプリの「これって不具合ですか?」を AI に調べてもらう
miichan
0
150
4人目のSREはAgent
tanimuyk
0
270
Flow 不死:AI 時代 DevOps 的不變本質
cheng_wei_chen
2
550
飲食店もAIで。レジ締めやハンディシステムをつくってる話 / Using AI for restaurant management
vtryo
0
200
AI-DLCを “そのまま導入しなかった”話 ~組織に合わせてアジャストした 私たちの実践共有~
hiroramos4
PRO
1
440
クレデンシャル流出 ― 攻撃 3 時間 vs 復旧 10 時間。この非対称性にどう備えるか
kazzpapa3
3
610
秘密度ラベル初心者が第1歩でつまづかないための「設計・運用」ポイント
seafay
PRO
1
500
“詰む”前に仕組みを作れ 〜技術の波に溺れないためのキャッチアップ術〜
takasyou
7
4.2k
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
The Limits of Empathy - UXLibs8
cassininazir
1
370
Believing is Seeing
oripsolob
1
150
Thoughts on Productivity
jonyablonski
76
5.2k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
240
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
400
The Curious Case for Waylosing
cassininazir
1
400
Accessibility Awareness
sabderemane
1
140
Designing Powerful Visuals for Engaging Learning
tmiket
1
430
Into the Great Unknown - MozCon
thekraken
41
2.6k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
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ʣΦεεϝ