SlideShare a Scribd company logo
1 of 17
Download to read offline
How to read
関西に最近くると聞かれる
• 「きょんさんってたくさん書籍読みますよ
ね」
• 「そうかもしれませんね」
• 「一ヶ月でどれくらい読むんですか?」
• 「うーん。あまり測っていないかも。。。
多分年間で数十冊くらい。」
• 「どうやって読むんですか?」
• 「えっとですね。。。」
1. まず目次から内容を予想する。30分くら
い。
2. 3日で全部読む。わからないところは飛ば
す。言い回しや価値のある部分を知る。
3. マインドマップでわからないことを書く。
4. 次はじっくり全部読む。
5. マインドマップでわかったことを削除する。
わからないことは追加する。
6. 変更量をメトリクスする。
自分の学習行為を定量化できてい
ないで、ソフトウェア開発を定量
化とか自動化とかROIとかwww
まぁ、とりあえず定量化した
らいいと思うよ。
あと、無駄をなくせ。
TDDと契約プログラミングの
違い
TDDでの設計と保証
1. テストで対象の振る舞いを書く
2. 実装をする
Design by Contractでの設計
と保証
1. 事前条件、公理を定義する
2. 事前条件、事後条件、不変条件として定義
する
3. 実装する
まぁ、ホーア論理だよ。P {C} Q だよ。
DbCとCoqはどう違うのか?
• 全然わかりません。
• コンパイルタイムチェックの契約プログラミン
グと依存型プログラミングは結構似ている。
• DbCは停止性を証明する必要はないけど、
Coqは停止性を証明する必要がある。
「振る舞い」か「公理」か
Stack Preconditions
remove(s:STACK[G]) require not empty(s)
item(s:STACK[G]) require not empty(s)
Stack Aximos
item(put(s, x)) = x
remove(put(s, x)) = x
empty(new)
not empty(put(s, x))
比較
• TDD : ある集合の具体的な値をなにかの形
で実行時検査するしか保証がとれない。
• DbC : 公理を満たさないモジュールは定義
できない。
比較
• TDD : ユースケースを書くけど、ユースケー
スは網羅されていない。
• DbC : 公理は比較的網羅する方向にある。
書かないと警告ばっかりでるからな!
つまり優れたプログラマーの
テストは公理を書いているか
もしれない。くらい。
まぁUncleBobくらいのTDDであ
れば。DbCとかなり近いです。

More Related Content

Viewers also liked

The Lego Scrum Awakens
The Lego Scrum AwakensThe Lego Scrum Awakens
The Lego Scrum Awakens
Masanori Kado
 

Viewers also liked (14)

Scrum,Test,Metrics #sgt2016
Scrum,Test,Metrics #sgt2016Scrum,Test,Metrics #sgt2016
Scrum,Test,Metrics #sgt2016
 
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAAJenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
 
Test Retrospective #kyon_kao_wedding in Tokyo
Test Retrospective #kyon_kao_wedding in TokyoTest Retrospective #kyon_kao_wedding in Tokyo
Test Retrospective #kyon_kao_wedding in Tokyo
 
The Lego Scrum Awakens
The Lego Scrum AwakensThe Lego Scrum Awakens
The Lego Scrum Awakens
 
Nexus and LeSS #rsgt2016
Nexus and LeSS #rsgt2016Nexus and LeSS #rsgt2016
Nexus and LeSS #rsgt2016
 
焦らず急いでの意味
焦らず急いでの意味焦らず急いでの意味
焦らず急いでの意味
 
Kaizen process with test #hackt
Kaizen process with test #hacktKaizen process with test #hackt
Kaizen process with test #hackt
 
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
 
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
 
HosCon2017 マルチリージョンの仮想化インフラができるまで
HosCon2017 マルチリージョンの仮想化インフラができるまでHosCon2017 マルチリージョンの仮想化インフラができるまで
HosCon2017 マルチリージョンの仮想化インフラができるまで
 
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイドアジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
 
[RSGT2017] つらい問題に出会ったら
[RSGT2017] つらい問題に出会ったら[RSGT2017] つらい問題に出会ったら
[RSGT2017] つらい問題に出会ったら
 
世界と事例から学ぶ、プロダクトオーナーの「素養」としてのアジャイルメトリクス
世界と事例から学ぶ、プロダクトオーナーの「素養」としてのアジャイルメトリクス世界と事例から学ぶ、プロダクトオーナーの「素養」としてのアジャイルメトリクス
世界と事例から学ぶ、プロダクトオーナーの「素養」としてのアジャイルメトリクス
 
ConoHa blockchain スマート宅配ボックス
ConoHa  blockchain  スマート宅配ボックス ConoHa  blockchain  スマート宅配ボックス
ConoHa blockchain スマート宅配ボックス
 

More from kyon mm

ICST2015 GUI Testingの紹介 #SIGSTJ
ICST2015 GUI Testingの紹介 #SIGSTJICST2015 GUI Testingの紹介 #SIGSTJ
ICST2015 GUI Testingの紹介 #SIGSTJ
kyon mm
 
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
kyon mm
 
Cafetesting12
Cafetesting12Cafetesting12
Cafetesting12
kyon mm
 
The History of Groovy #GroovyBase
The History of Groovy #GroovyBaseThe History of Groovy #GroovyBase
The History of Groovy #GroovyBase
kyon mm
 

More from kyon mm (20)

ICST2015 GUI Testingの紹介 #SIGSTJ
ICST2015 GUI Testingの紹介 #SIGSTJICST2015 GUI Testingの紹介 #SIGSTJ
ICST2015 GUI Testingの紹介 #SIGSTJ
 
Sta introduction in_kyoto #devkan
Sta introduction in_kyoto #devkanSta introduction in_kyoto #devkan
Sta introduction in_kyoto #devkan
 
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
 
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
 
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
 
テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)
 
Gradle 2.2, 2.3 news #jggug
Gradle 2.2, 2.3 news #jggugGradle 2.2, 2.3 news #jggug
Gradle 2.2, 2.3 news #jggug
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
 
Groovyで学ぶプロセス代数 #jjug
Groovyで学ぶプロセス代数 #jjugGroovyで学ぶプロセス代数 #jjug
Groovyで学ぶプロセス代数 #jjug
 
テストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornightテストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornight
 
GradleのREPLプラグイン紹介 #jggug
GradleのREPLプラグイン紹介 #jggugGradleのREPLプラグイン紹介 #jggug
GradleのREPLプラグイン紹介 #jggug
 
契る意味 #pykonjp2014
契る意味 #pykonjp2014契る意味 #pykonjp2014
契る意味 #pykonjp2014
 
いつでも聞けるTDD入門 #TDDBC_NAGOYA
いつでも聞けるTDD入門 #TDDBC_NAGOYAいつでも聞けるTDD入門 #TDDBC_NAGOYA
いつでも聞けるTDD入門 #TDDBC_NAGOYA
 
ソフトウェア開発を勉強し始めて3年間でやったこと~After~ #devsumi
ソフトウェア開発を勉強し始めて3年間でやったこと~After~ #devsumiソフトウェア開発を勉強し始めて3年間でやったこと~After~ #devsumi
ソフトウェア開発を勉強し始めて3年間でやったこと~After~ #devsumi
 
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk
 
詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst
 
TDDの自殺 #TDDeX
TDDの自殺 #TDDeXTDDの自殺 #TDDeX
TDDの自殺 #TDDeX
 
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
UnitTestは最もTDDしやすいか否か? #TDDMeetUpUnitTestは最もTDDしやすいか否か? #TDDMeetUp
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
 
Cafetesting12
Cafetesting12Cafetesting12
Cafetesting12
 
The History of Groovy #GroovyBase
The History of Groovy #GroovyBaseThe History of Groovy #GroovyBase
The History of Groovy #GroovyBase
 

Recently uploaded

Recently uploaded (11)

論文紹介: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
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: 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
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
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
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介: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...
 

@kyon_mmの書籍の読み方 #AsianAA