リファクタリングにおけるテストについて
CyberXエンジニアの中陳です。
今回も、社内のエンジニアミーティングLTで発表した内容を書きたいと思います。
今回のLTでは、以前に社内の読書会で作成した資料をもとに、
「リファクタリング プログラミングの体質改善テクニック」の「第4章 テストの構築」について発表しました。
この章では、リファクタリングをする上で欠かせないものとして、
テストの重要性やJUnitを用いたテストのやり方について書かれています。
リファクタリングとは、外部から見た振る舞いを変えずに、
理解や修正が簡単になるように、ソースコードに変更を加えることです。
リファクタリングをしようとするなら、振る舞いが変わっていないことを保証するために、
テストを書くことが必須条件となります。
事前にテストを書いておくことによって、バグの発見にかかる時間も削減でき、
結果的にプログラミングを書く速度も向上する恩恵にもあずかれます。
下記は発表で使用した資料になります。
テストを書いて、しっかりとリファクタリングしていきたいですね!
今回も、社内のエンジニアミーティングLTで発表した内容を書きたいと思います。
今回のLTでは、以前に社内の読書会で作成した資料をもとに、
「リファクタリング プログラミングの体質改善テクニック」の「第4章 テストの構築」について発表しました。
この章では、リファクタリングをする上で欠かせないものとして、
テストの重要性やJUnitを用いたテストのやり方について書かれています。
リファクタリングとは、外部から見た振る舞いを変えずに、
理解や修正が簡単になるように、ソースコードに変更を加えることです。
リファクタリングをしようとするなら、振る舞いが変わっていないことを保証するために、
テストを書くことが必須条件となります。
事前にテストを書いておくことによって、バグの発見にかかる時間も削減でき、
結果的にプログラミングを書く速度も向上する恩恵にもあずかれます。
下記は発表で使用した資料になります。
リファクタリング読書会20120220
参考文献:「リファクタリング プログラミングの体質改善テクニック」マーチン・ファウラー著 View more presentations from cyberxengineer
テストを書いて、しっかりとリファクタリングしていきたいですね!
エンジニアミーティングLT
CyberXエンジニアの石川です.
CyberXでは,毎週金曜日にエンジニアのみで1時間のミーティングを行なっています.
ミーティングでは,毎回エンジニアが2名技術ネタをライトニングトークしています.
毎回こんな感じでエンジニアが集まって発表をしています.
今回は,自分が行ったライトニングトークに関して報告します!
今回の発表では,「リファクタリング プログラミングの体質改善テクニック」の「第2章 リファクタリングの原則」の内容を解説しました.
この章では,リファクタリングという言葉の定義や,リファクタリングのメリット・デメリットに関してまとめられています.
著者であるマーチン・ファウラーの実際の経験や,ケント・ベックなどの言葉を用いて,リファクタリングというものがどうあるべきかが端的にまとめられています.
リファクタリングの重要性や,実際に自分も感じたことのある悩みなどに簡潔に答えを教えてくれる非常に良い章です.
写真はリファクタリングを行うタイミングについて解説しているところです.
個人的な感想ではありますが,この本をまだ読んだことの無い方には,まず2章を読んでいただきたいと思います.
この章で自分が一番印象に残ったのは,ケント・ベックの「僕は,偉大なプログラマなんかじゃない.偉大な習慣を身につけたプログラマなんだ」という言葉です.
この一言は,自分にとって大きな励みとなりました.
このブログを見ていただいている皆さんに,少しでもリファクタリングへの興味・関心を持って頂ければ幸いです.
下記は自分の発表で用いた資料です.
スライドが多くなってしまってまとまりに欠いている気がしますが,みなさんのお役に立てれば嬉しい限りです.
最後までご覧いただき有難うございました.
CyberXでは,毎週金曜日にエンジニアのみで1時間のミーティングを行なっています.
ミーティングでは,毎回エンジニアが2名技術ネタをライトニングトークしています.
毎回こんな感じでエンジニアが集まって発表をしています.
今回は,自分が行ったライトニングトークに関して報告します!
今回の発表では,「リファクタリング プログラミングの体質改善テクニック」の「第2章 リファクタリングの原則」の内容を解説しました.
この章では,リファクタリングという言葉の定義や,リファクタリングのメリット・デメリットに関してまとめられています.
著者であるマーチン・ファウラーの実際の経験や,ケント・ベックなどの言葉を用いて,リファクタリングというものがどうあるべきかが端的にまとめられています.
リファクタリングの重要性や,実際に自分も感じたことのある悩みなどに簡潔に答えを教えてくれる非常に良い章です.
写真はリファクタリングを行うタイミングについて解説しているところです.
個人的な感想ではありますが,この本をまだ読んだことの無い方には,まず2章を読んでいただきたいと思います.
この章で自分が一番印象に残ったのは,ケント・ベックの「僕は,偉大なプログラマなんかじゃない.偉大な習慣を身につけたプログラマなんだ」という言葉です.
この一言は,自分にとって大きな励みとなりました.
このブログを見ていただいている皆さんに,少しでもリファクタリングへの興味・関心を持って頂ければ幸いです.
下記は自分の発表で用いた資料です.
スライドが多くなってしまってまとまりに欠いている気がしますが,みなさんのお役に立てれば嬉しい限りです.
【CyberX読書会】リファクタリング 2012/02/06
View more PowerPoint from cyberxengineer
最後までご覧いただき有難うございました.
アシアル勉強会にいってきました!
CyberXのプログラマIです。
今回は先日受講してきたアシアル株式会社 さんのJavascript入門講座について、
書きたいと思います。
今後、スマフォでもHTML5/CSS3/Javascriptが必須であろうということで弊社でも積極的に勉強会などに参加していたりします。
まず、先にJavascript入門講座の感想を一言で言ってしまうと、わかりやすいです!
初心者でも理解しやすい内容になっています。
講義全体の内容を、下記に載せておきます。
1. 基本文法
- 変数
- 演算子
- データ型
- 配列
- 制御命令
- 関数
- オブジェクト
- プロトタイプ
2. クライアントサイド Jacascript
- DOM
- CSSセレクタ
- イベントハンドラ
- イベントリスナ
このような感じで講義が進んでいくので、
今までちょっと触ったことがある人も、基礎部分を再確認できたり、
スルーしてきた内容を学ぶことができます。
次に、個人的に勉強になったところを少しだけ抜粋したいと思います。
まずはイベントハンドラとイベントリスナのところですね。
イベントリスナに関しては同一要素の同一イベントに対して、
複数設定することができたりします。
イベントハンドラ
イベントリスナ
イベント周りの知識に関しては、iPhoneでのタッチイベントでも
利用できそうですね!
例えば、下記のようなcanvas要素に、タッチイベントを登録しておいて、
関数の処理を記述すれば、ドラッグ&ドロップなどもできそうですね!!
あと、Tips的なことも講師の方が教えてくれたりします。
例えば、0詰めの日付(ex.2011/01/01)を表示させる場合、
string.sliceを使うと方法なども教えてくれます。
他にもいろいろ教えてくれて、非常に勉強になりました!
アシアルさん、ありがとうございました。
今回は先日受講してきたアシアル株式会社 さんのJavascript入門講座について、
書きたいと思います。
今後、スマフォでもHTML5/CSS3/Javascriptが必須であろうということで弊社でも積極的に勉強会などに参加していたりします。
まず、先にJavascript入門講座の感想を一言で言ってしまうと、わかりやすいです!
初心者でも理解しやすい内容になっています。
講義全体の内容を、下記に載せておきます。
1. 基本文法
- 変数
- 演算子
- データ型
- 配列
- 制御命令
- 関数
- オブジェクト
- プロトタイプ
2. クライアントサイド Jacascript
- DOM
- CSSセレクタ
- イベントハンドラ
- イベントリスナ
このような感じで講義が進んでいくので、
今までちょっと触ったことがある人も、基礎部分を再確認できたり、
スルーしてきた内容を学ぶことができます。
次に、個人的に勉強になったところを少しだけ抜粋したいと思います。
まずはイベントハンドラとイベントリスナのところですね。
イベントリスナに関しては同一要素の同一イベントに対して、
複数設定することができたりします。
<button id="btn">ボタン</button>
イベントハンドラ
<script type="text/javascript">
document.getELementById("btn").onclick = function() {
alert("test");
};
</script>
イベントリスナ
<script type="text/javascript">
document.getELementById("btn").addEventListener("click", function(){'test'});
</script>
イベント周りの知識に関しては、iPhoneでのタッチイベントでも
利用できそうですね!
例えば、下記のようなcanvas要素に、タッチイベントを登録しておいて、
関数の処理を記述すれば、ドラッグ&ドロップなどもできそうですね!!
canvas = document.getElementById('touch');
canvas.addEventListener("touchstart", function(){}, false);
canvas.addEventListener("touchmove", function(){}, false);
canvas.addEventListener("touchend", function(){}, false);
canvas.addEventListener("touchcancel", function(){}, false);
<canvas id="touch" width="200" height="200"></canvas>
あと、Tips的なことも講師の方が教えてくれたりします。
例えば、0詰めの日付(ex.2011/01/01)を表示させる場合、
string.sliceを使うと方法なども教えてくれます。
他にもいろいろ教えてくれて、非常に勉強になりました!
アシアルさん、ありがとうございました。