Skip to content

Instantly share code, notes, and snippets.

@kyaido
Created June 22, 2014 05:57
Show Gist options
  • Save kyaido/88f5b9ab371bff46d7db to your computer and use it in GitHub Desktop.
Save kyaido/88f5b9ab371bff46d7db to your computer and use it in GitHub Desktop.

refactering

リファクタリング: What, Why and When by 斉藤祐也

リファクタリングの本

リファクタリングは期間を決めてするものではない
自分で自分に仕掛ける罠ほど質の悪いものはない
「「プログラマが知るべき97のこと」」

Rule of three

3回目にでくわしたらリファクタリングする
匂ったら変える

リファクタリングのためのテスト by 外村 和仁

http://qa.atmarkit.co.jp/q/2784

テストって何?

自動でプログラムの動作を検証するためのプログラム

  • ユニットテスト
  • E2Eテスト

ユニットテスト

関数単位でのテストって感じかなー

テストがあるとリファクタリングの敷居が下がる
テストの入門にもおすすめ、リファクタリングのためのテストが

振る舞いのためのテストをするのがベスト
リファクタリングしても落ちないテストを書こう

end to end テスト

最初から最後までアプリケーションの振る舞いをテストする

メソッドがないようなイベントドリブンな振る舞いをテストできる
nightwatche seleniumをJSから使いやすくしたラッパーライブラリ

E2Eテストの注意

  • 運用コストが高い
  • 壊れやすい
  • 時間がかかる

リファクター実践 by Ginpei Takanashi

https://github.com/ginpei/tab-ui-refactor-20140621/commits/master

コードを書くのが仕事ではなく製品を作るのが仕事

綺麗なコードはお金にならない
汚いコードは将来余計なお金がかかる
バランス感覚が大事
汚くてもいいから動くものをまず作る、

js-、is-
論理情報と視覚情報を分ける

CSSのリファクタリング by 斉藤祐也

base, layout, module, state

  • shame!!!
    どこで利用されているか
    なぜ恥ずかしいコードを書く必要があるのかそこから脱する手順を書く

ucss
不必要なコードを削除するツール

cssのテスト
csslint
css critic
phantomCSS
webdriverCSS
Huxley
SiteEffect

cssのテストはビジュアルレグレッションのテストになっている状態

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment