Upgrade to Pro — share decks privately, control downloads, hide ads and more …

テスト駆動開発のススメ

Yumihiki
August 19, 2021

 テスト駆動開発のススメ

Yumihiki

August 19, 2021
Tweet

More Decks by Yumihiki

Other Decks in Programming

Transcript

  1. • 章が短いので、少しずつ進めていくのも容易
 ◦ 毎日1章ずつ進めていくことができる程度の規模感
 • ソースを少しずつ書いていくので間違えにくい
 ◦ 章ごとに終了時点のコードを確認できるから間違いが少ない
 ◦ コードをたくさん書いてデプロイして、エラーが出る


    ◦ 学習のトラウマの1つ(と勝手に思っています)
 ◦ そういうのが起こりにくい気がしています
 ◦ 訳者の和田卓人さんによる訳注や解説もとても素敵!
 テスト駆動開発(書籍)の良いところ2
 
 

  2. テスト駆動開発(書籍)の良いところ3
 
 
 • 優れたエンジニアの振る舞い、思考を学べる
 ◦ テスト駆動開発を(仕事で)実践できなくても学びになる
 ◦ TODOリストを書いて、消していく
 ◦

    小さな改修でコツコツと成功しているかどうか確認する振る舞い
 ◦ デザインパターンの解説も出てくる
 ◦ メソッドのインライン化といったリファクタリング手法(?)
 ◦ ある種ペアプロをやっているような感覚
 (例題の進め方はペアプロをイメージして書いた、との記述あり)
 ◦ 章が終わる際にはふりかえり

  3. テスト駆動開発とは? 勉強するきっかけ1
 • 有名な書籍やアジャイル系の本にはテスト駆動開発のことがよく挙げられている 
 > 「どうやったらそんなにわかりやすくて見通しのよい、綺麗なコードが書けるんだい?」 
 > 「簡単だよ」彼は答えた。「テストを先に書いているんだ」

    
 著者:Jonathan Rasmusson 訳者:近藤修平・角掛拓未 (オーム社、2011年) 
 「アジャイルサムライー達人開発者への道 」P261
 > 私にとって、レガシーコードとは、単にテストのないコードです。この定義については疑問もあ りました。コードの良し悪しとテストに何の関係があるのでしょう。私にとってその答えは簡単で す。そしてこれが、本書を通じて詳しく述べていきたい革新です。 
 著者:マイケル・C・フェザーズ 訳者:平澤章・越智典子・稲葉信之・田村友彦・小堀真義(翔泳社 ・2009年)「レガシーコード改善ガイド」 vi

  4. テスト駆動開発とは? 勉強するきっかけ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 開催だそうです!