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
テスト駆動開発のススメ
Search
Yumihiki
August 19, 2021
Programming
22k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
テスト駆動開発のススメ
https://rakus.connpass.com/event/218578/
Yumihiki
August 19, 2021
More Decks by Yumihiki
See All by Yumihiki
pathlibのススメ
nibuno
0
81
ノリと勢いで勉強会を共同主催しはじめた話
nibuno
1
490
LTってなんなん?
nibuno
0
180
【初心者向け】ググらずに!? ターミナル上で Pythonオブジェクトを調べよう
nibuno
0
570
勇気出してアウトプットしたらコメントをもらえて自分の理解が深まった良い話🤩
nibuno
0
220
目標を決めるにあたって 新年の抱負 超LT会- vol.2
nibuno
0
410
パーフェクトPHPのススメ
nibuno
1
1.2k
Other Decks in Programming
See All in Programming
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
140
AI活用は、個人から組織へ|マルチプレイヤーエージェントハーネス「QM」の社内活用事例 / AI use is moving from individuals to orgs
rkaga
1
270
SREの越境 / SRE Collaboration
y0hgi
2
280
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
310
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
330
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.5k
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
530
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
200
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
130
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
170
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
260
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
160
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
A Tale of Four Properties
chriscoyier
163
24k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Producing Creativity
orderedlist
PRO
348
41k
Speed Design
sergeychernyshev
33
2.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
530
The Curious Case for Waylosing
cassininazir
1
540
The Spectacular Lies of Maps
axbom
PRO
1
1k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Are puppies a ranking factor?
jonoalderson
2
3.9k
Designing for humans not robots
tammielis
254
26k
Transcript
テスト駆動開発のススメ おすすめの技術書 LT会 - vol.2 #itbookslt 2021/08/19
自己紹介 君の名は?
自己紹介 Yumihiki / Tatsuya Nibuno Twitter: Yumihiki(@nibupro) エセ関西人 パーソルテクノロジースタッフ株式会社 実務未経験から転職/エンジニア歴約1年半
目次 何話すん?
目次 • 結論・前置き • テスト駆動開発とは • テスト駆動開発(書籍)の良いところ • 勉強するきっかけ?(時間の都合上発表しない つもりですが、公開するスライドには掲載します)
結論・前置き はじめに
結論・前置き • テスト駆動開発未経験の人にオススメ ◦ テストコードを書くことのメリットがよくわかる ◦ ビギナーの開発系エンジニアさんにもおすすめ ◦ 「テスト駆動開発って何か難しそう・・・」と 身構えていませんか?
• この本を読むと、テスト駆動開発がしたくなる! ◦ 所謂テスト駆動開発のことだけでなく デザインパターンや良い振る舞いなど色々学べます!
テスト駆動開発とは? そもそも
テスト駆動開発とは? • 「プロダクトのコードより先にテストコードを書き、実装していく」開発手法と して一般的には認知されている(と思っています) • テスト駆動開発(書籍)では次のように解説されている > TDDはテスト技法ではない(Cunningham の考案)。TDDは分析技法であり、設計技法 であり、実際には開発の全てのアクティビティを構造化する技法なのだ。
> 本書『テスト駆動開発』で書かれているような本来のTDDは、プログラマが自分自身で 不安を制御するための補助輪のような役割を果たす小さなプラクティスでした。 テスト駆動開発(2017年 第1版)Kent Beck著 和田卓人訳 オーム社 P278, P300
テスト駆動開発(書籍)の 良いところ 本題!
テスト駆動開発(書籍)の良いところ1 • コツコツとコードを良くする過程を学ぶことができる • 汚いコードから洗練されたコードへ ◦ 最初から動作するきれいなコードはなかなか書けない ◦ だから、最初は「動くコード」を書いて、「TDD」を実践し
動作するきれいなコードへ書き換えていく ◦ 最初から動作するきれいなコードを書こうとして変なところで詰まる 経験がたくさんあったので目から鱗でした・・・!
• 章が短いので、少しずつ進めていくのも容易 ◦ 毎日1章ずつ進めていくことができる程度の規模感 • ソースを少しずつ書いていくので間違えにくい ◦ 章ごとに終了時点のコードを確認できるから間違いが少ない ◦ コードをたくさん書いてデプロイして、エラーが出る
◦ 学習のトラウマの1つ(と勝手に思っています) ◦ そういうのが起こりにくい気がしています ◦ 訳者の和田卓人さんによる訳注や解説もとても素敵! テスト駆動開発(書籍)の良いところ2
テスト駆動開発(書籍)の良いところ3 • 優れたエンジニアの振る舞い、思考を学べる ◦ テスト駆動開発を(仕事で)実践できなくても学びになる ◦ TODOリストを書いて、消していく ◦
小さな改修でコツコツと成功しているかどうか確認する振る舞い ◦ デザインパターンの解説も出てくる ◦ メソッドのインライン化といったリファクタリング手法(?) ◦ ある種ペアプロをやっているような感覚 (例題の進め方はペアプロをイメージして書いた、との記述あり) ◦ 章が終わる際にはふりかえり
テスト駆動開発(書籍)の良いところ4 • そして、テストコードがあると安心なんだと実感できた ◦ コードを直して、開発環境にデプロイして、 画面操作してバッチ実行... ではなくIDE上でユニットテストを実行すること で、確認できる ◦ 全てがテストコードで解決できるわけではないとのことですが、 それでも段違いな気がする・・・!
◦ リファクタリングして改善するには、必須の技法だと感じた • テスト駆動開発に対する認識を変えてくれた良著!
ご静聴ありがとう ございました
勉強するきっかけ? 脱線ちゃう? ※本章は時間の都合上、 発表資料から省きました。
テスト駆動開発とは? 勉強するきっかけ1 • 有名な書籍やアジャイル系の本にはテスト駆動開発のことがよく挙げられている > 「どうやったらそんなにわかりやすくて見通しのよい、綺麗なコードが書けるんだい?」 > 「簡単だよ」彼は答えた。「テストを先に書いているんだ」
著者:Jonathan Rasmusson 訳者:近藤修平・角掛拓未 (オーム社、2011年) 「アジャイルサムライー達人開発者への道 」P261 > 私にとって、レガシーコードとは、単にテストのないコードです。この定義については疑問もあ りました。コードの良し悪しとテストに何の関係があるのでしょう。私にとってその答えは簡単で す。そしてこれが、本書を通じて詳しく述べていきたい革新です。 著者:マイケル・C・フェザーズ 訳者:平澤章・越智典子・稲葉信之・田村友彦・小堀真義(翔泳社 ・2009年)「レガシーコード改善ガイド」 vi
テスト駆動開発とは? 勉強するきっかけ2 • 日々の労働の疲れを癒すために2021年6月25日に開催された PHPTechCafeへ参加 • タイトル:PHPerのための「PHPUnit について語り合う」 • https://rakus.connpass.com/event/213508/
• 題材はPHPUnitだけど、テスト駆動の考え方など何か勉強になるかなと • TDD Boot Camp 2020 Online#1 基調講演/ライブコーディングの紹介 • https://www.youtube.com/watch?v=Q-FJ3XmFlT8 • この動画をきっかけとして、テスト駆動開発を学ぶようになりました (eclipseでのユニットテストの実行方法はこの動画を参考にしました) • 来週2021年8月23日に PHP8.1 の新機能について語り合う PHP TechCafe 開催だそうです!
改めて ご視聴ありがとう ございました