SlideShare a Scribd company logo
リファクタリング
クライアント編
AWS上で構築するRESTfulアプリ勉強会
~Web開発ワークショップ~【第11回】
概要
概要
1. 前回のおさらい
2. クライアントのテスト
の難しさ
概要
1. 前回のおさらい
2. クライアントのテスト
の難しさ
リファクタリング
=プログラムの動作を
変えずに内部構造を改
善する
リファクタリングの方法
1. メソッドの抽出
2.メソッドの移動
3.オブジェクトによるデータ値の置き換え
4.条件記述の分解
5.メソッド名の変更
等々...
「リファクタリング カタログ」
でググってみてください
リファクタリングの手順
1. リファクタリングすべきか判断する。
2. テストがあるか?なければ書く。
3. リファクタリングする
4. テストする
5. 1に戻る
「5. 1に戻る」、重要!
コードの匂い
リファクタリングすべきコードは
「匂う」
不吉な匂い
1.重複したコード
2.長すぎるメソッド
3.巨大なクラス
4.多すぎる引数
5.変更の発散
6.変更の分散
7.属性、操作の横恋慕
8.データの群れ
9.基本データ型への執着
10.スイッチ文
11.パラレル継承
12.怠け者クラス
13.疑わしき一般化
14.一時的属性
15.メッセージの連鎖
16.仲介人
17.不適切な関係
18.クラスのインタフェース不一致
19.未熟なクラスライブラリ
20.データクラス
21.相続拒否
22.コメント
分類してみました
1.激臭系
2.蓋を開けたら臭う系
3.メンドクサイ系
4.加齢臭系
5.生臭い系
6.汗臭い系
7.ウソ臭い系
ひとつだけ紹介
1.激臭系
• 長すぎるメソッド
•巨大なクラス
•多すぎる引数
•スイッチ文
概要
1. 前回のおさらい
2. クライアントのテスト
の難しさ
クライアントプログラムの闇
• コールバック地獄
• イベントの嵐
• 状態依存
今回は
コールバック地獄
をちょっとだけ解消
ワークショップ
本日のメニュー
1. 事前準備
2. Lesson1 TODO一覧表示のテスト
3. Lesson2 TODO詳細のデータ取得テスト
4. Lesson3 TODO詳細のデータ取得処理の
ちょっとリファクタリング
事前準備
• gitのブランチを整える
• 前回、前々回不参加の方は
テーブル追加、列追加する
gitのブランチを整える
■masterブランチを前回の内容
を終えた状態にする
■masterブランチを元に、今回
の作業用である、
「vol/11」ブランチを作成する
人によって手順が違い
ます!(重要)
■前回の内容を途中までやった方
■前回の内容を完了した方
■今回から参加の方
gitのブランチを整える
http://
goo.gl/WEHXqX
ジーオーオー.ジーエル/
ダブリューイーエイチエックスキューエックス
ここに詳しく
書いております!
今回のマニュアルにリンクがあります。
※後ほど説明
第5回と第6回に不参加の方は
テーブル追加、列追加をする
各Lessonについては
Qiitaの投稿で詳しく!
テスト結果
マニュアル(Qiita)
http://
goo.gl/YXKfev
ジーオーオー.ジーエル/
ワイエックスケーエフイーブイ
他の部分のテスト
コードも書いてみ
よう!
🍻飲みDev🍕 テーマ

More Related Content

PDF
第10回rest勉強会 リファクタリング(サーバ編)編
PDF
第12回rest勉強会 これまでの補足・展望編
PDF
第4回REST勉強会 RequireJS編
PDF
第5回rest勉強会 ログイン編
PDF
第6回rest勉強会 アソシエーション編
PDF
Build insider testingwithvs
PPTX
第5回Sql server2017勉強会資料
PDF
第7回rest勉強会 バリデーション編
第10回rest勉強会 リファクタリング(サーバ編)編
第12回rest勉強会 これまでの補足・展望編
第4回REST勉強会 RequireJS編
第5回rest勉強会 ログイン編
第6回rest勉強会 アソシエーション編
Build insider testingwithvs
第5回Sql server2017勉強会資料
第7回rest勉強会 バリデーション編

What's hot (20)

PPTX
Test to net core 3
PDF
Service worker が拓く mobile web の新しいかたち
PDF
Web アプリケーション開発におけるテストの実践 ~ VSUG Day Summer
PDF
The Internal of Serverless Plugins
PDF
React.jsでサービスを作ってみた話
PPTX
「krew」で淀みない業務システムを実現
PDF
Isomorphic web development with scala and scala.js
PDF
多分モダンなWebアプリ開発
PPTX
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
PPTX
2016/12/17 ASP.NET フロントエンドタスク入門
PDF
50分で掴み取る ASP.NET Web API パターン&テクニック
PPT
Web技術勉強会第1回目
PDF
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
PDF
ASP.NET WEB API 開発体験
PDF
Phpでrest apiを作った話
PPTX
What's Azure DevOps
PDF
Service workerとwebプッシュ通知
PDF
Infra as Code in Azure
PPTX
オフラインファーストの思想と実践
PDF
Salesforce DUG TOKYO Meetup #9
Test to net core 3
Service worker が拓く mobile web の新しいかたち
Web アプリケーション開発におけるテストの実践 ~ VSUG Day Summer
The Internal of Serverless Plugins
React.jsでサービスを作ってみた話
「krew」で淀みない業務システムを実現
Isomorphic web development with scala and scala.js
多分モダンなWebアプリ開発
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
2016/12/17 ASP.NET フロントエンドタスク入門
50分で掴み取る ASP.NET Web API パターン&テクニック
Web技術勉強会第1回目
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
ASP.NET WEB API 開発体験
Phpでrest apiを作った話
What's Azure DevOps
Service workerとwebプッシュ通知
Infra as Code in Azure
オフラインファーストの思想と実践
Salesforce DUG TOKYO Meetup #9
Ad

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

PDF
Awsで実現するseleniumテスト高速術
PPTX
テストしなイカ? Seleniumで自動ブラウザテスト
PDF
Continuous delivery-9
PPTX
Continuous delivery chapter4
PDF
PPTX
Istqb : Test automation Engineer
PDF
【17-B-6】RIAの性能テストとアプリケーション品質向上のための管理手法
PDF
PHPUnit でテスト駆動開発を始めよう
PDF
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
PDF
2014-12-17 #ssmjp 運用現場における"品質"とは
PPTX
派生開発
PDF
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
PDF
アジャイル×テスト開発を考える
PDF
Agile pm10 quality_2a
PPT
ビジネス的に高価値なアジャイルテスト
PPTX
Sansan における Android アプリ自動テスト導入事例
PPT
Springを使ったwebアプリにリファクタリングしよう
PDF
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PDF
[AWS初心者向けWebinar] AWSへのアプリケーション移行の考え方と実践
PDF
PHP 2大 web フレームワークの徹底比較!
Awsで実現するseleniumテスト高速術
テストしなイカ? Seleniumで自動ブラウザテスト
Continuous delivery-9
Continuous delivery chapter4
Istqb : Test automation Engineer
【17-B-6】RIAの性能テストとアプリケーション品質向上のための管理手法
PHPUnit でテスト駆動開発を始めよう
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
2014-12-17 #ssmjp 運用現場における"品質"とは
派生開発
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
アジャイル×テスト開発を考える
Agile pm10 quality_2a
ビジネス的に高価値なアジャイルテスト
Sansan における Android アプリ自動テスト導入事例
Springを使ったwebアプリにリファクタリングしよう
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
[AWS初心者向けWebinar] AWSへのアプリケーション移行の考え方と実践
PHP 2大 web フレームワークの徹底比較!
Ad

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