SlideShare a Scribd company logo
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

PDF
リブライズっていいんじゃね?
PDF
仮想通貨の採掘
PDF
ビブリオバトル(かんばん仕事術)
PDF
ソフトウェアエンジニアとして心がけてきたこと
PDF
ザ・ジェネラリスト #5000dai
PDF
JaSST15 Tohoku 事例発表
PDF
「納品のない受託開発」を支えるコードレビューの取り組み
PDF
20150529 ja sst15東北基調講演web公開用
リブライズっていいんじゃね?
仮想通貨の採掘
ビブリオバトル(かんばん仕事術)
ソフトウェアエンジニアとして心がけてきたこと
ザ・ジェネラリスト #5000dai
JaSST15 Tohoku 事例発表
「納品のない受託開発」を支えるコードレビューの取り組み
20150529 ja sst15東北基調講演web公開用

Viewers also liked (14)

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

More from kyon mm (20)

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

@kyon_mmの書籍の読み方 #AsianAA