第11回rest勉強会 リファクタリング(クライアント編)

25
リファクタリング クライアント編 AWS上で構築するRESTfulアプリ勉強会 ~Web開発ワークショップ~【第11回】

Upload: ksimoji

Post on 21-Jan-2018

502 views

Category:

Software


1 download

TRANSCRIPT

Page 1: 第11回rest勉強会 リファクタリング(クライアント編)

リファクタリング クライアント編

AWS上で構築するRESTfulアプリ勉強会 ~Web開発ワークショップ~【第11回】

Page 2: 第11回rest勉強会 リファクタリング(クライアント編)

概要

Page 3: 第11回rest勉強会 リファクタリング(クライアント編)

概要1. 前回のおさらい 2. クライアントのテストの難しさ

Page 4: 第11回rest勉強会 リファクタリング(クライアント編)

概要1. 前回のおさらい 2. クライアントのテストの難しさ

Page 5: 第11回rest勉強会 リファクタリング(クライアント編)

リファクタリング=プログラムの動作を変えずに内部構造を改

善する

Page 6: 第11回rest勉強会 リファクタリング(クライアント編)

リファクタリングの方法1. メソッドの抽出 2.メソッドの移動 3.オブジェクトによるデータ値の置き換え 4.条件記述の分解 5.メソッド名の変更等々...

「リファクタリング カタログ」 でググってみてください

Page 7: 第11回rest勉強会 リファクタリング(クライアント編)

リファクタリングの手順1. リファクタリングすべきか判断する。 2. テストがあるか?なければ書く。 3. リファクタリングする 4. テストする 5. 1に戻る

「5. 1に戻る」、重要!

Page 8: 第11回rest勉強会 リファクタリング(クライアント編)

コードの匂い

リファクタリングすべきコードは

「匂う」

Page 9: 第11回rest勉強会 リファクタリング(クライアント編)

不吉な匂い1.重複したコード 2.長すぎるメソッド 3.巨大なクラス 4.多すぎる引数 5.変更の発散 6.変更の分散 7.属性、操作の横恋慕 8.データの群れ 9.基本データ型への執着 10.スイッチ文 11.パラレル継承

12.怠け者クラス 13.疑わしき一般化 14.一時的属性 15.メッセージの連鎖 16.仲介人 17.不適切な関係 18.クラスのインタフェース不一致 19.未熟なクラスライブラリ 20.データクラス 21.相続拒否 22.コメント

Page 10: 第11回rest勉強会 リファクタリング(クライアント編)

分類してみました1.激臭系 2.蓋を開けたら臭う系 3.メンドクサイ系 4.加齢臭系 5.生臭い系 6.汗臭い系 7.ウソ臭い系

Page 11: 第11回rest勉強会 リファクタリング(クライアント編)

ひとつだけ紹介1.激臭系• 長すぎるメソッド •巨大なクラス •多すぎる引数 •スイッチ文

Page 12: 第11回rest勉強会 リファクタリング(クライアント編)

概要1. 前回のおさらい 2. クライアントのテストの難しさ

Page 13: 第11回rest勉強会 リファクタリング(クライアント編)

クライアントプログラムの闇

• コールバック地獄 • イベントの嵐 • 状態依存

Page 14: 第11回rest勉強会 リファクタリング(クライアント編)

今回は

コールバック地獄

をちょっとだけ解消

Page 15: 第11回rest勉強会 リファクタリング(クライアント編)

ワークショップ

Page 16: 第11回rest勉強会 リファクタリング(クライアント編)

本日のメニュー1. 事前準備 2. Lesson1 TODO一覧表示のテスト 3. Lesson2 TODO詳細のデータ取得テスト 4. Lesson3 TODO詳細のデータ取得処理のちょっとリファクタリング

Page 17: 第11回rest勉強会 リファクタリング(クライアント編)

事前準備• gitのブランチを整える • 前回、前々回不参加の方はテーブル追加、列追加する

Page 18: 第11回rest勉強会 リファクタリング(クライアント編)

gitのブランチを整える

■masterブランチを前回の内容を終えた状態にする

■masterブランチを元に、今回の作業用である、 「vol/11」ブランチを作成する

Page 19: 第11回rest勉強会 リファクタリング(クライアント編)

人によって手順が違います!(重要)■前回の内容を途中までやった方 ■前回の内容を完了した方 ■今回から参加の方

gitのブランチを整える

Page 20: 第11回rest勉強会 リファクタリング(クライアント編)

http://

goo.gl/WEHXqXジーオーオー.ジーエル/ ダブリューイーエイチエックスキューエックス

ここに詳しく 書いております!

Page 21: 第11回rest勉強会 リファクタリング(クライアント編)

今回のマニュアルにリンクがあります。 ※後ほど説明

第5回と第6回に不参加の方は テーブル追加、列追加をする

Page 22: 第11回rest勉強会 リファクタリング(クライアント編)

各Lessonについては Qiitaの投稿で詳しく!

Page 23: 第11回rest勉強会 リファクタリング(クライアント編)

テスト結果

Page 24: 第11回rest勉強会 リファクタリング(クライアント編)

マニュアル(Qiita)

http:// goo.gl/YXKfevジーオーオー.ジーエル/ ワイエックスケーエフイーブイ

Page 25: 第11回rest勉強会 リファクタリング(クライアント編)

他の部分のテストコードも書いてみ

よう!

🍻飲みDev🍕 テーマ