Suche senden
Hochladen
LINTから理解するTDD
•
Als PPTX, PDF herunterladen
•
0 gefällt mir
•
8 views
M
Masafumi Sasaki
Folgen
LINTの重要さから、TDDというスキルから得られるメリットを理解する。
Weniger lesen
Mehr lesen
Ingenieurwesen
Melden
Teilen
Melden
Teilen
1 von 91
Jetzt herunterladen
Empfohlen
Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)
masanori kataoka
Shinagawa.trac@kaorun
Shinagawa.trac@kaorun
Kaoru NAKAMURA
Android App Development with Gradle & Android Studio
Android App Development with Gradle & Android Studio
Soichiro Kashima
RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ
RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ
Kaz Aiso
PHPカンファレンス関西 2011
PHPカンファレンス関西 2011
Takako Miyagawa
Coderetreat
Coderetreat
YAMANE Toshiaki
ZendStudioのご紹介
ZendStudioのご紹介
Manabu Shinsaka
Node.js Tutorial at Hiroshima
Node.js Tutorial at Hiroshima
Yoshihiro Iwanaga
Empfohlen
Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)
masanori kataoka
Shinagawa.trac@kaorun
Shinagawa.trac@kaorun
Kaoru NAKAMURA
Android App Development with Gradle & Android Studio
Android App Development with Gradle & Android Studio
Soichiro Kashima
RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ
RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ
Kaz Aiso
PHPカンファレンス関西 2011
PHPカンファレンス関西 2011
Takako Miyagawa
Coderetreat
Coderetreat
YAMANE Toshiaki
ZendStudioのご紹介
ZendStudioのご紹介
Manabu Shinsaka
Node.js Tutorial at Hiroshima
Node.js Tutorial at Hiroshima
Yoshihiro Iwanaga
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
Akira Inoue
Potatotops20141217
Potatotops20141217
Mogi Isamu
.NET Coreとツール類の今
.NET Coreとツール類の今
Yuki Igarashi
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
Akira Inoue
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
Yasuhiko Yamamoto
Tizen web app について調べたよ
Tizen web app について調べたよ
Naruto TAKAHASHI
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Akira Inoue
Web開発用ツール導入のすすめ
Web開発用ツール導入のすすめ
Kiyoshi SATOH
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
Takashi Okawa
20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料
Daisuke Ando
株式会社waja 安藤様 登壇資料
株式会社waja 安藤様 登壇資料
leverages_event
少し分かった気になるテスト駆動開発
少し分かった気になるテスト駆動開発
lnial
Visual Studio Code 拡張の勘所
Visual Studio Code 拡張の勘所
Masaki Takeda
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
UnityTechnologiesJapan002
Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介
Shinya Okano
WordCampOsaka2012 開発ツール談義「NetBeans」
WordCampOsaka2012 開発ツール談義「NetBeans」
Atsuhiro Takiguchi
Weitere ähnliche Inhalte
Ähnlich wie LINTから理解するTDD
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
Akira Inoue
Potatotops20141217
Potatotops20141217
Mogi Isamu
.NET Coreとツール類の今
.NET Coreとツール類の今
Yuki Igarashi
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
Akira Inoue
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
Yasuhiko Yamamoto
Tizen web app について調べたよ
Tizen web app について調べたよ
Naruto TAKAHASHI
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Akira Inoue
Web開発用ツール導入のすすめ
Web開発用ツール導入のすすめ
Kiyoshi SATOH
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
Takashi Okawa
20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料
Daisuke Ando
株式会社waja 安藤様 登壇資料
株式会社waja 安藤様 登壇資料
leverages_event
少し分かった気になるテスト駆動開発
少し分かった気になるテスト駆動開発
lnial
Visual Studio Code 拡張の勘所
Visual Studio Code 拡張の勘所
Masaki Takeda
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
UnityTechnologiesJapan002
Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介
Shinya Okano
WordCampOsaka2012 開発ツール談義「NetBeans」
WordCampOsaka2012 開発ツール談義「NetBeans」
Atsuhiro Takiguchi
Ähnlich wie LINTから理解するTDD
(20)
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
Potatotops20141217
Potatotops20141217
.NET Coreとツール類の今
.NET Coreとツール類の今
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
Tizen web app について調べたよ
Tizen web app について調べたよ
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Web開発用ツール導入のすすめ
Web開発用ツール導入のすすめ
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料
株式会社waja 安藤様 登壇資料
株式会社waja 安藤様 登壇資料
少し分かった気になるテスト駆動開発
少し分かった気になるテスト駆動開発
Visual Studio Code 拡張の勘所
Visual Studio Code 拡張の勘所
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介
WordCampOsaka2012 開発ツール談義「NetBeans」
WordCampOsaka2012 開発ツール談義「NetBeans」
LINTから理解するTDD
1.
LINTから理解するTDD
2.
イントロ
3.
プログラムは完成する時まで、全容を把握で きない。
4.
プログラムは完成する時まで、全容を把握で きない。
5.
仕様に従ったユニットテストを通ったプログ ラムは、仕様通りに動くことが担保される。
6.
いくら書き換えても・・・
7.
こう書くべきって言うプログラマが いたらそいつはアマチュア
8.
結論
9.
TDDは仕様チェックのLINTを作りながら開発 すること。
10.
身に付ければ、 Notepadでの開発 ↓ vscodeでの開発 と同レベルのスキルアップが 可能
11.
色々事実を並べてみる。
12.
コンパイルしたプログラムは高確率で動く
13.
なぜ?
14.
VSCODEで書いたプログラムは高確率でコン パイルが通る
15.
eclipseで書いたプログラムも高確率でコンパ イルが通る
16.
notepadで書いたプログラムも高確率でコン パイルが通るか?
17.
プログラムの品質 VSCODEで書いたプログラム notepadで書いたプログラム VSCODEで書いたプログラム VS notepadで書いたプログラム VSCODEで書いたプログラム ※コンパイルが通るかどうか
18.
VSCODEで書いたプログラムのコンパイルが 通る確率が高い(よくて同等)
19.
なぜか?
20.
コンパイルを通す前にエディ タがエラーを教えてくれるか ら
21.
Notepadは、変数名の誤字すら教えてくれな い。
22.
エディタのエラー消しながらプログラム書け ば、コンパイルエラーは起きない。
23.
コンパイルが通ったプログラムは、それだけ でそこそこ動くことが保証される。
24.
機能が正しいかはわからないけど・・・
25.
じゃあ
26.
プログラム書きながら 仕様エラーをチェック 出来たら良くない?
27.
仕様をチェックするLINTを作ろう!
28.
でも、仕様はプロジェクトによって違うから どこにも売ってない・・・
29.
じゃあ、仕様をテストするツール作りましょ う。
30.
とりあえず、プログラム書くまえにチェック ツール作る。
31.
これがテストファースト
32.
リファクタリング
33.
元の機能を変えずにソースを修正する行為
34.
機能追加
35.
元の機能を変えずにソースに機能を追加する 行為
36.
元の機能を変えずに ソースを修正する
37.
数値A,B,Cがあった時、A+BをCで割った結果 を返す
38.
Public int func(int
a ,int b,int c){ return (a+b)/c; } 数値A,B,Cがあった時、A+BをCで割った結果 を返す
39.
Cが0の時計算できない!
40.
Cが0の時はa+bを返す仕様を追加
41.
Public int func(int
a ,int b,int c){ If (c=0) return a+b; return (a+b)/c; } 数値A,B,Cがあった時、A+BをCで割った結果 を返す Cが0の時はA+Bを返す
42.
数値A,B,Cがあった時、A+BをCで割った結果 を返す これを維持したまま プログラム修正!
43.
仕様追加はしない→リファクタリング
44.
Public int func(int
a ,int b,int c){ Int x = a+b; If (c=0) return x; return x/c; } 数値A,B,Cがあった時、A+BをCで割った結果 を返す Cが0の時はA+Bを返す
45.
数値A,B,Cがあった時、A+BをCで割った結果 を返す Cが0の時はA+Bを返す これを維持したまま プログラム修正!
46.
ほぼ新規のソースでも書いた瞬間から、「元 の機能」を意識する
47.
プログラムを書くうえで、 「元の機能」 を維持することは必須
48.
でも
49.
「元の機能」を維持するのは・・・
50.
つらい・・・
51.
なぜなら
52.
いつ維持できなくなるかわか らない
53.
どうやって維持したらいいか わからない
54.
というか・・・
55.
今維持できているか すらわからん!
56.
じゃあ、コンパイルできないかもって思いま すか?
57.
まともな言語なら(jsとかは除く)
58.
まともなエディタなら(notepad除く)
59.
コンパイルが通らない不安はない
60.
修正しながらチェックできるから!!
61.
元の機能を維持してることをチェックしなが ら開発しよう!
62.
TDD!!!
63.
実はもう一個逃げ道があります
64.
「元の機能」を維持するのはつらい
65.
「元の機能」って何?
66.
いつ決まる?どこにある?設計書?
67.
っていうか、作ってる途中に今の機能とか気 にしなければ、そんな不安なくない??
68.
じゃあ
69.
作り終わるまでテストしなきゃいいじゃん
70.
出来上がってから、修正するからバグるんだ よね
71.
リファクタリングしなくていいように、最初 から完璧なプログラム書けばいいじゃん
72.
他との整合性? パーフェクトなソースなんてない?
73.
じゃあ
74.
それっぽい思想、カッコ良さそうな手法、 過去の(自分だけの)経験を基に、 こうあるべき! を主張する能力を身に付けよう!
75.
アホか・・・
76.
プロなら
77.
今の状態がわかる
78.
安全に手直しができる
79.
そんな状態をちゃんと作ってから
80.
仕事しよう
81.
その為のスキルが
82.
TDD!!!
83.
でも余計なテストを書く時間はない(泣)
84.
大丈夫
85.
迷いながら書くプログラムは思った以上遅い!
86.
単に、迷わずに作ったプログラムは早いけど
87.
出来上がったものは・・・
88.
思い込みの塊
89.
迷わなくていい状態を整えて書くスピードは 思った以上に早い!
90.
TDDは
91.
プログラムの 「品質」と「スピード」を 両立させるスキルです!
Jetzt herunterladen