SlideShare una empresa de Scribd logo
1 de 71
Descargar para leer sin conexión
TDD BootCamp
in JJUG CCC
2014.05.17 JJUG CCC 2014 Spring
Shuji Watanabe (@shuji_w6e)
1
#ccc_r53 #jjug_ccc
https://github.com/shuji/legacy-hanbai-kanri
自己紹介
渡辺 修司 / @shuji_w6e
札幌Javaコミュニティ
やさしいデスマーチ
JUnit実践入門
Java, Groovy, JavaScript, AWS, TDD
ロードバイク, スノーボード, トレラン
NEW
4刷!

累計1万部
最近のお仕事...
昨年8月に転職
株式会社クラスメソッド
札幌にて在宅勤務
AWS利用者向けシステムの開発
主にフロントエンドや自動化などを担当
Spring, Ember.js, d3-data
ブログ業務
クラスメソッド札幌オフィス開設!
AWSエンジニア / iOSエンジニア
U/Iターン歓迎!
7月初旬	

開設予定!
アプリ屋から	

移籍可能
Special Thanks TA
@i_takehiro
@grimrose
@sue445
@setoazusa
@torazuka
@uasano
@yujiorama
TDDBCへ
ようこそ
http://devtesting.jp/tddbc/
TDD Boot Camp(TDDBC) とは、テスト
駆動開発(Test Driven Development)につ
いて、座学だけでなく、実習形式で手を
動かして体得することを目的とするイベ
ントです。
ショートバージョン
2時間しかないのでダイジェストで!
TDDとは?
TDDは死んだ?
レガシーコード体験
レガシーコード改善
モデリング
ユニットテストハンズオン
本家TDDBCとの違い
ショートバージョン(本家は1日)
ペアプログラミングは行わない
レビュー大会は行わない
テストファーストに拘らない
プロダクションコードは8分組み
レガシーコードからTDDを体験する
テスト駆動開発とは?
テスト駆動開発とは?
ソフトウェアの開発手法
テスト駆動開発の1サイクル
はじめにテストコードを書く
テストが成功する必要最低限のコードを書く
テスト成功を維持してリファクタリングする
上記サイクルを素早くテンポ良く繰り返す
1.設計する
2.テストを書く
3.コードを書く
4.テストを成功させる
5.リファクタリング
Heuristics
TDDのサイクル
1.設計する
2.テストを書く
3.コードを書く
4.テストを成功させる
5.リファクタリング
Heuristics
TDD 品質保証テスト
品質保証テストはソフトウェアを対象とし、
品質担当者が高い品質を担保するために実施
TDDは品質を担保するわけではない
結果的に品質は高まるが主目的ではない
開発者が安心して開発できるための開発手法
TDDは設計やプログラム自体を対象とする
汚いコードは動かない
密結合
多重ネスト
巨大なクラス
多すぎる引数
多すぎる責務
http://www.flickr.com/photos/peakman2/1017866785/
レガシーコード!
レガシーコード生成のプロセス
1. 最初の仕様でコードを書く
2. 追加機能で増築する
3. 仕様変更で改築する
4. 似たような機能はコピペして作る
5. これらのプロセスが秘伝のタレとなる
http://www.flickr.com/photos/jas_132/5403388208
TDDで解決?
レガシーコードへの道
設計
きれいな動くコードへの道
動かない 動く
きれい
汚い
1.設計する
動かない 動く
きれい
汚い
1.設計する
2.テストを書く
3.コードを書く
4.テストを成功させる
5.リファクタリング
Heuristics
2.テストを書く
動かない 動く
きれい
汚い
1.設計する
2.テストを書く
3.コードを書く
4.テストを成功させる
5.リファクタリング
Heuristics
3.コードを書く
動かない 動く
きれい
汚い
1.設計する
2.テストを書く
3.コードを書く
4.テストを成功させる
5.リファクタリング
Heuristics
4.テストを成功させる
動かない 動く
きれい
汚い
1.設計する
2.テストを書く
3.コードを書く
4.テストを成功させる
5.リファクタリング
Heuristics
5.リファクタリング
動かない 動く
きれい
汚い
1.設計する
2.テストを書く
3.コードを書く
4.テストを成功させる
5.リファクタリング
Heuristics
1.設計する
動かない 動く
きれい
汚い
1.設計する
2.テストを書く
3.コードを書く
4.テストを成功させる
5.リファクタリング
Heuristics
TDDのポイント
テストを意識した設計(テストファースト)
テストによる安心
リファクタリング
イテレーティブな開発サイクル
TDDのこころ
©和田卓人
小さく  
個別に  
すばやく
ひとつずつ、一歩ずつ
小さなステップで
大きなものは小さく分割
確実に、堅実に
手戻りを小さく
ひとりずつ、仕留める
テストは個別撃破する
次のテストを作らない
すばやくまわす
小さく回す
早く回す
すぐに対応
リズム重要
1.設計する
2.テストを書く
3.コードを書く
4.テストを成功させる
5.リファクタリング
Heuristics
使う  
作る  
伝える
自分が最初のユーザー
使いにくいものは使いにくい
自分で評価する
納得できるか?
恥ずかしくないか?
解りやすいか?
道具にこだわる
最高のパフォーマンスを維持する
プロとしてのこだわり
少しでも使いやすく
日々、研究・工夫
未来の自分が読む
テストコードは保守される
読みにくいコードは悪
シンプルに
名前重要
型
どうして、  
テスト駆動開発を  
導入するのか?
http://www.flickr.com/photos/yopse/3772030400/
不安
スキル不足
複雑な要件
仕様変更
経験不足
http://www.flickr.com/photos/32010000@N08/2987901256/
安全を確保する
なぜ、TDDを実践するか?
ソフトウェアは思った以上に複雑
パーフェクトプログラマなんかいない
不安だからユニットテストを書く
セーフティネットとしてのユニットテスト
すばやく回し、すばやいフィードバック
TDDが目指すところ
安心できる健康な開発
変更に強い健康なコード
テスト駆動開発は死んだ?
http://www.flickr.com/photos/palermobootcamp/5464512672/
TDD!TDD!
テストファースト!
TDDは死んだ、無益だ!
http://www.flickr.com/photos/bsom/4625185702/
貴様のプロジェクトでは、
効果的なテストをしてるか?
TDDが無益とか有益とか語る前に...
(ユニット)テスティングできてますか?
テストファーストはテクニックのひとつ
TDDはユニットテストを学ぶ教科書
常時TDDをやる必要もありません
TDDの考え方を学ぶ価値は大きくあります
Long live testing
going with the practice of testing

where no testing had happened before
レガシーコード体験
NO TESTING
レガシーコードを読んでみよう
よくない点を列挙してみよう
どうしてそうなったのかを想像してみよう
5∼10分したらディスカッションします
気になった部分(1)
コンストラクタで在庫決め打ちいいの?
シングルトン
フィールド名とか日本語(ローマ字)が気持ち悪い
注文メソッドが色々やりすぎ
過去の編集履歴
税率がハードコーディング
Integerとintが混在
「なんでマイナス?」
気になった部分(2)
全体1クラス
スレッドセーフでない
ジェネリクスが使われていない
ロガーが使われていない
例外処理
JavaDocがあったりなかったり
値の検査がないのでマイナス在庫?
レガシーコード改善
ユニットテストを活用した改善
対象をテストで保護し(仕様化テスト)、
リファクタリングしていく
レガシーコード仕様化テスト
クラス
クラス
クラス
クラス
ユニットテスト
http://www.flickr.com/photos/alisdair/2398525854/
やって

られっか!?
仕様化テストだけで大変
テストできない部分も多い
コードが複雑でクラス化難しい
そもそもバグが...
辛い、ただ辛い
汚いコードは動かない
密結合
深いネスト
巨大なクラス
多すぎる引数
多すぎる責務
綺麗なコードは変更に強い
疎結合
浅いネスト
小さなクラス
適度な引数
適度な責務
http://www.flickr.com/photos/k1netik/50298297/
設計麻痺に注意
モデリング

+
テスト駆動開発
モデリング
モデリングとは?
要求(業務)をモデルに抽象化すること
As-Is から To-Be へ
大雑把に言えば「設計」
概要を掴むための荒いモデリング
詳細を詰めるための詳細なモデリング
特定の目的のためのモデリング
ドメインモデリング
業務ドメインでの主要データ
静的モデル
クラス図の基盤
Is-A
Has-A *
1
xxx
xxx
xxx
xxx
xxx
*
1
xxx
*
1
*
1
ドメインモデリングの目的
問題領域を把握するため
用語を統一するため
ユースケースを作成する基盤とするため
静的な設計のスタート地点とするため
汎化と集約
汎化(Is-A)と集約(Has-A)を使う
他の細かい関係は重要ではない(今は)
用語整理と問題領域の理解が目的
95%はカバーできる
参考)システム境界
システムと外部との接点
どこからがシステムの機能・データなのか?
ユーザーインターフェイス(画面)
外部インターフェイス
ユーザ
システム境界
システム
外部システム
機能 データ
参考)入出力(なにを)
入力
ファイル、フォームデータ
出力
画面、帳票、ファイル
システム境界
システム
入力
出力
モデリングの例
ざっくりと単語(名詞)を抽出
モデリングの例
属性などを追加していく
Enjoy Testing!
ハンズオンの進め方
ひとつのメソッドを選んでテストしてみよう
テストケースを増やす?
別のメソッドをテストを書く?
仕様変更する?
上から下まで通すテストを書く?
TAに相談してみよう!

Más contenido relacionado

La actualidad más candente

iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?Toshio Ehara
 
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うことKazuhiro Serizawa
 
第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情Kazuhiro Serizawa
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24Kazuhiro Sera
 
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門Shumpei Shiraishi
 
Spring starterによるSpring Boot Starter
Spring starterによるSpring Boot StarterSpring starterによるSpring Boot Starter
Spring starterによるSpring Boot StarterRyosuke Uchitate
 
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbcSpring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbcToshiaki Maki
 
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクションTakahiro Okumura
 
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
アプリエンジニアからクラウド専用のインフラエンジニアになってみてアプリエンジニアからクラウド専用のインフラエンジニアになってみて
アプリエンジニアからクラウド専用のインフラエンジニアになってみてSato Shun
 
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkSpring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkToshiaki Maki
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方Shohei Koyama
 
20160402 JAWS-UG大分 AWS初心者向け勉強会@おおいた2016春
20160402 JAWS-UG大分 AWS初心者向け勉強会@おおいた2016春20160402 JAWS-UG大分 AWS初心者向け勉強会@おおいた2016春
20160402 JAWS-UG大分 AWS初心者向け勉強会@おおいた2016春Midori Ikegami
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjugsk44_
 
2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門Asami Abe
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情Naoki Yamada
 
中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術Noriaki Kadota
 
angular1脳で見るangular2
angular1脳で見るangular2angular1脳で見るangular2
angular1脳で見るangular2Moriyuki Arakawa
 

La actualidad más candente (20)

iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?
 
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
 
第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
 
Rubyのススメ
RubyのススメRubyのススメ
Rubyのススメ
 
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門
 
Spring starterによるSpring Boot Starter
Spring starterによるSpring Boot StarterSpring starterによるSpring Boot Starter
Spring starterによるSpring Boot Starter
 
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbcSpring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbc
 
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
 
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
アプリエンジニアからクラウド専用のインフラエンジニアになってみてアプリエンジニアからクラウド専用のインフラエンジニアになってみて
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
 
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkSpring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
20160402 JAWS-UG大分 AWS初心者向け勉強会@おおいた2016春
20160402 JAWS-UG大分 AWS初心者向け勉強会@おおいた2016春20160402 JAWS-UG大分 AWS初心者向け勉強会@おおいた2016春
20160402 JAWS-UG大分 AWS初心者向け勉強会@おおいた2016春
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjug
 
2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
 
中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術
 
React meetup 3_eight
React meetup 3_eightReact meetup 3_eight
React meetup 3_eight
 
OpenShift のある生活
OpenShift のある生活OpenShift のある生活
OpenShift のある生活
 
angular1脳で見るangular2
angular1脳で見るangular2angular1脳で見るangular2
angular1脳で見るangular2
 

Similar a TDD BootCamp in JJUG CCC - レガシーコード対策編 -

Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Shuji Watanabe
 
使ってみよう! Cloud Automator
使ってみよう! Cloud Automator使ってみよう! Cloud Automator
使ってみよう! Cloud Automator保彦 坂井田
 
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!Yasuaki Matsuda
 
テスト駆動開発へようこそ
テスト駆動開発へようこそテスト駆動開発へようこそ
テスト駆動開発へようこそShuji Watanabe
 
Azure使いから見たAWSの良いところ
Azure使いから見たAWSの良いところAzure使いから見たAWSの良いところ
Azure使いから見たAWSの良いところMasaki Yamamoto
 
Azure Functions あれこれ
Azure Functions あれこれAzure Functions あれこれ
Azure Functions あれこれYasuaki Matsuda
 
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013Takashi Someda
 
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのことDevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのことTerui Masashi
 
俺と AWS Summit 2019 振り返り
俺と AWS Summit 2019 振り返り俺と AWS Summit 2019 振り返り
俺と AWS Summit 2019 振り返りMasayuki KaToH
 
じっくりコトコト煮込んだJavaスープ
じっくりコトコト煮込んだJavaスープじっくりコトコト煮込んだJavaスープ
じっくりコトコト煮込んだJavaスープKazuhiro Serizawa
 
詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasstkyon mm
 
事業会社で働くエンジニアのマインドセット - DevLOVE関西
事業会社で働くエンジニアのマインドセット - DevLOVE関西事業会社で働くエンジニアのマインドセット - DevLOVE関西
事業会社で働くエンジニアのマインドセット - DevLOVE関西Tomoyuki Sugita
 
アウトプットはスキルアップもするしトクもする
アウトプットはスキルアップもするしトクもするアウトプットはスキルアップもするしトクもする
アウトプットはスキルアップもするしトクもするMitsuhiro Yamashita
 
AWS認定クラウド プラクティショナー って何?
AWS認定クラウド プラクティショナー って何?AWS認定クラウド プラクティショナー って何?
AWS認定クラウド プラクティショナー って何?Mitsuhiro Yamashita
 
JAWS-UG沖縄第1回勉強会 EBS/RDSがなくてもwrite massiveに耐えるDBの作り方
JAWS-UG沖縄第1回勉強会 EBS/RDSがなくてもwrite massiveに耐えるDBの作り方JAWS-UG沖縄第1回勉強会 EBS/RDSがなくてもwrite massiveに耐えるDBの作り方
JAWS-UG沖縄第1回勉強会 EBS/RDSがなくてもwrite massiveに耐えるDBの作り方Koichiro Nishijima
 
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語Takashi Someda
 
関数プロキシを使って REST APIっぽくを使ってみる
関数プロキシを使って REST APIっぽくを使ってみる関数プロキシを使って REST APIっぽくを使ってみる
関数プロキシを使って REST APIっぽくを使ってみるNoriaki Sakata
 
ブログを大阪リージョンに移行して東京リージョンをDRサイトにしています。その理由とRTO/RPOそしてコスト。
ブログを大阪リージョンに移行して東京リージョンをDRサイトにしています。その理由とRTO/RPOそしてコスト。ブログを大阪リージョンに移行して東京リージョンをDRサイトにしています。その理由とRTO/RPOそしてコスト。
ブログを大阪リージョンに移行して東京リージョンをDRサイトにしています。その理由とRTO/RPOそしてコスト。Mitsuhiro Yamashita
 
NetBeansでかんたんJava EE ○分間クッキング! #kuwaccho lt
NetBeansでかんたんJava EE ○分間クッキング! #kuwaccho ltNetBeansでかんたんJava EE ○分間クッキング! #kuwaccho lt
NetBeansでかんたんJava EE ○分間クッキング! #kuwaccho ltMasatoshi Tada
 

Similar a TDD BootCamp in JJUG CCC - レガシーコード対策編 - (20)

Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
 
使ってみよう! Cloud Automator
使ってみよう! Cloud Automator使ってみよう! Cloud Automator
使ってみよう! Cloud Automator
 
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
 
テスト駆動開発へようこそ
テスト駆動開発へようこそテスト駆動開発へようこそ
テスト駆動開発へようこそ
 
Azure使いから見たAWSの良いところ
Azure使いから見たAWSの良いところAzure使いから見たAWSの良いところ
Azure使いから見たAWSの良いところ
 
Azure Functions あれこれ
Azure Functions あれこれAzure Functions あれこれ
Azure Functions あれこれ
 
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
 
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのことDevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
 
俺と AWS Summit 2019 振り返り
俺と AWS Summit 2019 振り返り俺と AWS Summit 2019 振り返り
俺と AWS Summit 2019 振り返り
 
じっくりコトコト煮込んだJavaスープ
じっくりコトコト煮込んだJavaスープじっくりコトコト煮込んだJavaスープ
じっくりコトコト煮込んだJavaスープ
 
詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst
 
事業会社で働くエンジニアのマインドセット - DevLOVE関西
事業会社で働くエンジニアのマインドセット - DevLOVE関西事業会社で働くエンジニアのマインドセット - DevLOVE関西
事業会社で働くエンジニアのマインドセット - DevLOVE関西
 
アウトプットはスキルアップもするしトクもする
アウトプットはスキルアップもするしトクもするアウトプットはスキルアップもするしトクもする
アウトプットはスキルアップもするしトクもする
 
AWS認定クラウド プラクティショナー って何?
AWS認定クラウド プラクティショナー って何?AWS認定クラウド プラクティショナー って何?
AWS認定クラウド プラクティショナー って何?
 
JAWS-UG沖縄第1回勉強会 EBS/RDSがなくてもwrite massiveに耐えるDBの作り方
JAWS-UG沖縄第1回勉強会 EBS/RDSがなくてもwrite massiveに耐えるDBの作り方JAWS-UG沖縄第1回勉強会 EBS/RDSがなくてもwrite massiveに耐えるDBの作り方
JAWS-UG沖縄第1回勉強会 EBS/RDSがなくてもwrite massiveに耐えるDBの作り方
 
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
 
LocalStack
LocalStackLocalStack
LocalStack
 
関数プロキシを使って REST APIっぽくを使ってみる
関数プロキシを使って REST APIっぽくを使ってみる関数プロキシを使って REST APIっぽくを使ってみる
関数プロキシを使って REST APIっぽくを使ってみる
 
ブログを大阪リージョンに移行して東京リージョンをDRサイトにしています。その理由とRTO/RPOそしてコスト。
ブログを大阪リージョンに移行して東京リージョンをDRサイトにしています。その理由とRTO/RPOそしてコスト。ブログを大阪リージョンに移行して東京リージョンをDRサイトにしています。その理由とRTO/RPOそしてコスト。
ブログを大阪リージョンに移行して東京リージョンをDRサイトにしています。その理由とRTO/RPOそしてコスト。
 
NetBeansでかんたんJava EE ○分間クッキング! #kuwaccho lt
NetBeansでかんたんJava EE ○分間クッキング! #kuwaccho ltNetBeansでかんたんJava EE ○分間クッキング! #kuwaccho lt
NetBeansでかんたんJava EE ○分間クッキング! #kuwaccho lt
 

Más de Shuji Watanabe

Serverless - Developers.IO 2019
Serverless - Developers.IO 2019Serverless - Developers.IO 2019
Serverless - Developers.IO 2019Shuji Watanabe
 
Ansible ハンズオン on AWS - DevelopersIO 2017
Ansible ハンズオン on AWS - DevelopersIO 2017Ansible ハンズオン on AWS - DevelopersIO 2017
Ansible ハンズオン on AWS - DevelopersIO 2017Shuji Watanabe
 
SSMでマネージドEC2 #reinvent #cmdevio
SSMでマネージドEC2 #reinvent #cmdevioSSMでマネージドEC2 #reinvent #cmdevio
SSMでマネージドEC2 #reinvent #cmdevioShuji Watanabe
 
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #Eプロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #EShuji Watanabe
 
AWSによるWebサイト構築と運用 - concrete5 編 -
AWSによるWebサイト構築と運用 - concrete5 編 -AWSによるWebサイト構築と運用 - concrete5 編 -
AWSによるWebサイト構築と運用 - concrete5 編 -Shuji Watanabe
 
Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003
Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003
Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003Shuji Watanabe
 
CloudSearchによる全文検索 - CM:道 2014/08/01
CloudSearchによる全文検索 - CM:道 2014/08/01 CloudSearchによる全文検索 - CM:道 2014/08/01
CloudSearchによる全文検索 - CM:道 2014/08/01 Shuji Watanabe
 
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
s3+cloud frontによる静的コンテンツ配信 - Sphinx編  #cmdevios3+cloud frontによる静的コンテンツ配信 - Sphinx編  #cmdevio
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevioShuji Watanabe
 
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevio
クラスメソッド会社説明会in札幌 — メンバー紹介   #cmdevioクラスメソッド会社説明会in札幌 — メンバー紹介   #cmdevio
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevioShuji Watanabe
 
テスト駆動開発のはじめ方
テスト駆動開発のはじめ方テスト駆動開発のはじめ方
テスト駆動開発のはじめ方Shuji Watanabe
 
ユースケースからテスト駆動開発へ
ユースケースからテスト駆動開発へユースケースからテスト駆動開発へ
ユースケースからテスト駆動開発へShuji Watanabe
 
テスト駆動開発入門
テスト駆動開発入門テスト駆動開発入門
テスト駆動開発入門Shuji Watanabe
 
テストコードのリファクタリング
テストコードのリファクタリングテストコードのリファクタリング
テストコードのリファクタリングShuji Watanabe
 
テスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ーテスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ーShuji Watanabe
 
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストShuji Watanabe
 
アジャイルテスティング
アジャイルテスティングアジャイルテスティング
アジャイルテスティングShuji Watanabe
 
テストリストの見つけ方
テストリストの見つけ方テストリストの見つけ方
テストリストの見つけ方Shuji Watanabe
 

Más de Shuji Watanabe (20)

Serverless - Developers.IO 2019
Serverless - Developers.IO 2019Serverless - Developers.IO 2019
Serverless - Developers.IO 2019
 
Ansible ハンズオン on AWS - DevelopersIO 2017
Ansible ハンズオン on AWS - DevelopersIO 2017Ansible ハンズオン on AWS - DevelopersIO 2017
Ansible ハンズオン on AWS - DevelopersIO 2017
 
SSMでマネージドEC2 #reinvent #cmdevio
SSMでマネージドEC2 #reinvent #cmdevioSSMでマネージドEC2 #reinvent #cmdevio
SSMでマネージドEC2 #reinvent #cmdevio
 
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #Eプロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
 
ELBの概要と勘所
ELBの概要と勘所ELBの概要と勘所
ELBの概要と勘所
 
AWSによるWebサイト構築と運用 - concrete5 編 -
AWSによるWebサイト構築と運用 - concrete5 編 -AWSによるWebサイト構築と運用 - concrete5 編 -
AWSによるWebサイト構築と運用 - concrete5 編 -
 
Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003
Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003
Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003
 
CloudSearchによる全文検索 - CM:道 2014/08/01
CloudSearchによる全文検索 - CM:道 2014/08/01 CloudSearchによる全文検索 - CM:道 2014/08/01
CloudSearchによる全文検索 - CM:道 2014/08/01
 
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
s3+cloud frontによる静的コンテンツ配信 - Sphinx編  #cmdevios3+cloud frontによる静的コンテンツ配信 - Sphinx編  #cmdevio
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
 
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevio
クラスメソッド会社説明会in札幌 — メンバー紹介   #cmdevioクラスメソッド会社説明会in札幌 — メンバー紹介   #cmdevio
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevio
 
テスト駆動開発のはじめ方
テスト駆動開発のはじめ方テスト駆動開発のはじめ方
テスト駆動開発のはじめ方
 
ユースケースからテスト駆動開発へ
ユースケースからテスト駆動開発へユースケースからテスト駆動開発へ
ユースケースからテスト駆動開発へ
 
テスト駆動開発入門
テスト駆動開発入門テスト駆動開発入門
テスト駆動開発入門
 
テストコードのリファクタリング
テストコードのリファクタリングテストコードのリファクタリング
テストコードのリファクタリング
 
テスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ーテスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ー
 
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
 
アジャイルテスティング
アジャイルテスティングアジャイルテスティング
アジャイルテスティング
 
テストリストの見つけ方
テストリストの見つけ方テストリストの見つけ方
テストリストの見つけ方
 
TDDをはじめよう
TDDをはじめようTDDをはじめよう
TDDをはじめよう
 
Jenkins導入事例
Jenkins導入事例Jenkins導入事例
Jenkins導入事例
 

TDD BootCamp in JJUG CCC - レガシーコード対策編 -