SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Downloaden Sie, um offline zu lesen
DevLove 2012

 世界をすこしだけ
前に進めるということ
#devlove2012a

         グロースエクスパートナーズ(株)
                    和智 右桂
イノベーション?




  Ahchan and iPad http://www.flickr.com/photos/jetalone/4694268917/ by jetalone
JavaEE勉強会 所属             Yukei Wachi


 グロースエクスパートナーズ株式会社 勤務


      和智 右桂
 ネコ好き
               IT アーキテクト
                           @digitalsoul0124
 Digital Romanticism
         http://d.hatena.ne.jp/digitalsoul
                               Photo by @digitalsoul0124 All rights reserved.
エンタープライズと
現場へのこだわり
バランス

  開発      翻訳

       プレゼン
in Summer
マイルストーン




  Milestone http://www.flickr.com/photos/pluralzed/107713803/ by pluralzed
GOOSの価値は?
アジェンダ

•
テスト駆動開発の進化
•進化の正体
•すこしだけ、前に

                        スライド中で使用されている画像について、
     その著作権の全部または一部は、 クレジットに示した著者によって保留されています。

                        Photo by @digitalsoul0124 All rights reserved.
テスト駆動開発の
   進化
2002   2007
二重の
ループ
開発スタイルとしての
        完成

   何をどう作るのか?
フィードバックループ
リリース
       バックログ
               ペアプログラミング




          ユニットテスト

受け入れテスト
               日次ミーティング
フィーチャを差し込む




   Todd English's Olives http://www.flickr.com/photos/lwy/4925948800/ by LWY
オブジェクト指向観




 関連しあうオブジェクトの
          網の目
モック




  網の中のオブジェクトを
        テストする
内側の質/外側の質
受け入れテスト ユニットテスト

        システム



外側の質    内側の質
ウォーキングスケルトン
              USER
              ID     名前
              001    テスト太郎
 名前   テスト太郎




 すべてのコンポーネントを
   通過する最低限の実装
コードを書くことから
ソフトウェアを作ることへ
進化の正体
時代背景
2000




       http://www.extremeprogramming.org/map/code.html
2000-2005
フレームワークの充実



   http://fit.c2.com/   http://jbehave.org/reference/stable/index.html




 2002                          2003
2005-2010
ドキュメントの充実
2005   2007   2010
知の流れ
流れの中で
彼らは何をしたのか?




  Taylor Creek Fish http://www.flickr.com/photos/averain/2742705037/ by Averain
モックの
歩んだ道
1999               !
                 od
             Pe"
      ers!
    e!
 o G
N
2000                                                                       XP2000




Endo-Testing:
Unit Testing with Mock Objects.
                   Tim Mackinnon, Steve Freeman, Philip Craig




http://www.ccs.neu.edu/research/demeter/related-work/extreme-programming/MockObjectsFinal.PDF
モックの登場
ユニットテストはXPにとって本質的なプラ
クティスだが、コードがある程度複雑になる
と、個別にテストするのが難しくなる。
モックオブジェクトと呼ぶテクニックを
使って、ドメインコードをダミーと置き換
え、実際の機能をエミュレートしつつ、コー
ドのふるまいを検証する。
ソースコード
public void testCreationWithExistingClass() {
  myMockPackage.addContainedType(
     new MockType(EXISTING_CLASS_NAME));
  myMockWorkspace.addPackage(mockPackage);
  JUnitCreatorModel creatorModel =
    new JunitCreatorModel(myMockWorkspace,
PACKAGE_NAME);
  try {
     creatorModel.createTestCase(EXISTING_CLASS_NAME);
     fail("Should generate an exception for existing type");
  } catch (ClassExistsException ex) {
     assertEquals(EXISTING_CLASS_NAME, ex.getClassName());
  }
  myMockWorkspace.verify();
}
2004                                OOPSLA2004




Mock Roles, Not Objects
Steve Freeman, Nat Pryce, Tim Mackinnon, Joe Walnes




                                   http://jmock.org/oopsla2004.pdf
設計手法としての価値
以前は実装に集中しすぎていたが、最も大
切なのは、このテクニックにより、オブジェ
クト同士が演じるロールが強調されること
だ。
            - Tim Mackinnon



  http://www.mockobjects.com/2009/09/brief-history-of-mock-objects.html
インターフェイスの発見




  Endo-Testingでも見られた概念が
              より洗練されている
2006                    OOPSLA2006




Evolving an Embedded Domain-
Specific Language in Java
               Steve Freeman, Nat Pryce




                       http://jmock.org/oopsla2006.pdf
内部DSLとしての
jMock




   流れるようなインターフェイス
DSL本へ
ウォーキング
 スケルトン
   の
  起源
このパターンというか戦略を見つけたのは
1994年頃だった。1997年頃までに
Walking Skeletonという名前を
付けて、1999年にはIncremantal

Rearchitectureと相性がいいこと
がわかってきた。
                - Alistair Cockburn


           http://alistair.cockburn.us/Walking+skeleton
Spanning Application
             - Poppendiecks (2003)


Tracer Bullets
  - Dave Thomas & Andy Hunt (1999)
フィードバックの源泉




ウォーキング・スケルトンを基に
ビルド・テストデプロイの自動化
   River Ridge Trail by by Bruce McKay Yellow Snow Photography
        http://www.flickr.com/photos/brucemckay/5314508266/
継続的デリバリーへ
巨人の肩に乗る
ひとつずつ石を積む
すこしだけ、前に
進むべき道は
どこに見つかるだろう
実践し続けること
学び続けること




  20091204_Hermitage_library_002 http://www.flickr.com/photos/friarsbalsam/4609212148/ by Friar's Balsam
考え続けること




 thought http://www.flickr.com/photos/fresh_photo/3479598520/ by freshphoto
一歩ずつ、前に
足跡を残す
覚悟はいいか?
オレはできてる
ありがとうございました!
         Photo by @digitalsoul0124 All rights reserved.

Weitere ähnliche Inhalte

Andere mochten auch

Dia de la Música
Dia de la MúsicaDia de la Música
Dia de la Música
martinyomar
 
spring semester theta update
spring semester theta updatespring semester theta update
spring semester theta update
Liz Moore
 
Production data of glyphosate technical
Production data of glyphosate technicalProduction data of glyphosate technical
Production data of glyphosate technical
CCM Intelligence
 
НТБ. Евгений Архишин. "Система контроля привилегированных пользователей Safe...
НТБ. Евгений Архишин. "Система контроля  привилегированных пользователей Safe...НТБ. Евгений Архишин. "Система контроля  привилегированных пользователей Safe...
НТБ. Евгений Архишин. "Система контроля привилегированных пользователей Safe...
Expolink
 
Cartilha mudandocomportamentos
Cartilha mudandocomportamentosCartilha mudandocomportamentos
Cartilha mudandocomportamentos
Geraldo Souza
 
Pooja Sharma_CV_Remake
Pooja Sharma_CV_RemakePooja Sharma_CV_Remake
Pooja Sharma_CV_Remake
Pooja Sharma
 

Andere mochten auch (16)

Aditya pharma
Aditya pharmaAditya pharma
Aditya pharma
 
Dia de la Música
Dia de la MúsicaDia de la Música
Dia de la Música
 
spring semester theta update
spring semester theta updatespring semester theta update
spring semester theta update
 
The unjust (worldly smart) Steward (Luke 16:1-8); A role model that Christian...
The unjust (worldly smart) Steward (Luke 16:1-8); A role model that Christian...The unjust (worldly smart) Steward (Luke 16:1-8); A role model that Christian...
The unjust (worldly smart) Steward (Luke 16:1-8); A role model that Christian...
 
Palestra Atendimento - COC (2008)
Palestra Atendimento - COC (2008)Palestra Atendimento - COC (2008)
Palestra Atendimento - COC (2008)
 
Production data of glyphosate technical
Production data of glyphosate technicalProduction data of glyphosate technical
Production data of glyphosate technical
 
НТБ. Евгений Архишин. "Система контроля привилегированных пользователей Safe...
НТБ. Евгений Архишин. "Система контроля  привилегированных пользователей Safe...НТБ. Евгений Архишин. "Система контроля  привилегированных пользователей Safe...
НТБ. Евгений Архишин. "Система контроля привилегированных пользователей Safe...
 
Using ICT to collect pupil feedback
Using ICT to collect pupil feedbackUsing ICT to collect pupil feedback
Using ICT to collect pupil feedback
 
Cartilha mudandocomportamentos
Cartilha mudandocomportamentosCartilha mudandocomportamentos
Cartilha mudandocomportamentos
 
Enterprise Products- Principles and Best Practices
Enterprise Products- Principles and Best PracticesEnterprise Products- Principles and Best Practices
Enterprise Products- Principles and Best Practices
 
Pooja Sharma_CV_Remake
Pooja Sharma_CV_RemakePooja Sharma_CV_Remake
Pooja Sharma_CV_Remake
 
Blackberry Product portfolio
Blackberry Product portfolioBlackberry Product portfolio
Blackberry Product portfolio
 
Arkadin value prop Corporate
Arkadin value prop CorporateArkadin value prop Corporate
Arkadin value prop Corporate
 
Blood Brothers: Easy Terms - Act 1
Blood Brothers: Easy Terms - Act 1Blood Brothers: Easy Terms - Act 1
Blood Brothers: Easy Terms - Act 1
 
Pride and Prejudice: marriage
Pride and Prejudice: marriagePride and Prejudice: marriage
Pride and Prejudice: marriage
 
Formation e-learning : en savoir plus sur cette industrie [Webinaire]
Formation e-learning : en savoir plus sur cette industrie [Webinaire]Formation e-learning : en savoir plus sur cette industrie [Webinaire]
Formation e-learning : en savoir plus sur cette industrie [Webinaire]
 

Ähnlich wie 世界をすこしだけ前に進めるということ

MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
 
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストTestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテスト
Yoichiro Sakurai
 
What makes pyramid unique
What makes pyramid uniqueWhat makes pyramid unique
What makes pyramid unique
Atsushi Odagiri
 
増加するコアを使い切れ!!
増加するコアを使い切れ!!増加するコアを使い切れ!!
増加するコアを使い切れ!!
guestc06e54
 

Ähnlich wie 世界をすこしだけ前に進めるということ (20)

テスト駆動開発の進化
テスト駆動開発の進化テスト駆動開発の進化
テスト駆動開発の進化
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
 
Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築
 
Java/Androidセキュアコーディング
Java/AndroidセキュアコーディングJava/Androidセキュアコーディング
Java/Androidセキュアコーディング
 
Gws in fukuoka
Gws in fukuokaGws in fukuoka
Gws in fukuoka
 
tech talk about JS #0
tech talk about JS #0tech talk about JS #0
tech talk about JS #0
 
テスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ーテスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ー
 
ScalaMatsuri 2016
ScalaMatsuri 2016ScalaMatsuri 2016
ScalaMatsuri 2016
 
5分でわかる!ownCloudアドオンの作り方
5分でわかる!ownCloudアドオンの作り方5分でわかる!ownCloudアドオンの作り方
5分でわかる!ownCloudアドオンの作り方
 
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストTestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテスト
 
SGT技術トークス 継続的デリバリー
SGT技術トークス 継続的デリバリーSGT技術トークス 継続的デリバリー
SGT技術トークス 継続的デリバリー
 
What makes pyramid unique
What makes pyramid uniqueWhat makes pyramid unique
What makes pyramid unique
 
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチMonadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
 
Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程
 
増加するコアを使い切れ!!
増加するコアを使い切れ!!増加するコアを使い切れ!!
増加するコアを使い切れ!!
 
Oracleがnode.jsをやり始めたというのだが!
Oracleがnode.jsをやり始めたというのだが!Oracleがnode.jsをやり始めたというのだが!
Oracleがnode.jsをやり始めたというのだが!
 
第11回しゃちほこオラクル倶楽部
第11回しゃちほこオラクル倶楽部第11回しゃちほこオラクル倶楽部
第11回しゃちほこオラクル倶楽部
 
JaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッションJaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッション
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
 
Androidで使えるモックフレームワーク
Androidで使えるモックフレームワークAndroidで使えるモックフレームワーク
Androidで使えるモックフレームワーク
 

Mehr von Yukei Wachi

エッセンシャルスクラムのエッセンス
エッセンシャルスクラムのエッセンスエッセンシャルスクラムのエッセンス
エッセンシャルスクラムのエッセンス
Yukei Wachi
 
Dddをもっと身近に
Dddをもっと身近にDddをもっと身近に
Dddをもっと身近に
Yukei Wachi
 
Future Center@Junkudo
Future Center@JunkudoFuture Center@Junkudo
Future Center@Junkudo
Yukei Wachi
 

Mehr von Yukei Wachi (20)

エヴァンス本から今学べること
エヴァンス本から今学べることエヴァンス本から今学べること
エヴァンス本から今学べること
 
価値の源流に向かう旅
価値の源流に向かう旅価値の源流に向かう旅
価値の源流に向かう旅
 
スモールリーダーシップ読書会ワークショップ
スモールリーダーシップ読書会ワークショップスモールリーダーシップ読書会ワークショップ
スモールリーダーシップ読書会ワークショップ
 
「言葉の地図」でチームの議論をスムーズに
「言葉の地図」でチームの議論をスムーズに「言葉の地図」でチームの議論をスムーズに
「言葉の地図」でチームの議論をスムーズに
 
ドメイン駆動設計再入門
ドメイン駆動設計再入門ドメイン駆動設計再入門
ドメイン駆動設計再入門
 
ゆらぎのある決定
ゆらぎのある決定ゆらぎのある決定
ゆらぎのある決定
 
知識から反射へ
知識から反射へ知識から反射へ
知識から反射へ
 
エッセンシャルスクラムのエッセンス
エッセンシャルスクラムのエッセンスエッセンシャルスクラムのエッセンス
エッセンシャルスクラムのエッセンス
 
コードに語らせるために
コードに語らせるためにコードに語らせるために
コードに語らせるために
 
「攻めのIt」を実現するアーキテクチャーとdev opsの関係
「攻めのIt」を実現するアーキテクチャーとdev opsの関係「攻めのIt」を実現するアーキテクチャーとdev opsの関係
「攻めのIt」を実現するアーキテクチャーとdev opsの関係
 
ざっくり DDD 入門!!
ざっくり DDD 入門!!ざっくり DDD 入門!!
ざっくり DDD 入門!!
 
人が作るソフトウェア 〜今組織パターンを読む意味〜
人が作るソフトウェア 〜今組織パターンを読む意味〜人が作るソフトウェア 〜今組織パターンを読む意味〜
人が作るソフトウェア 〜今組織パターンを読む意味〜
 
教科書と現場のあいだ
教科書と現場のあいだ教科書と現場のあいだ
教科書と現場のあいだ
 
Dddをもっと身近に
Dddをもっと身近にDddをもっと身近に
Dddをもっと身近に
 
Future Center@Junkudo
Future Center@JunkudoFuture Center@Junkudo
Future Center@Junkudo
 
Growing Grails Software, Driven by Domain
Growing Grails Software, Driven by DomainGrowing Grails Software, Driven by Domain
Growing Grails Software, Driven by Domain
 
戦略的設計入門
戦略的設計入門戦略的設計入門
戦略的設計入門
 
Model on Grails
Model on GrailsModel on Grails
Model on Grails
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
DDD Part3 Retrospective
DDD Part3 RetrospectiveDDD Part3 Retrospective
DDD Part3 Retrospective
 

Kürzlich hochgeladen

Kürzlich hochgeladen (12)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

世界をすこしだけ前に進めるということ