Download - 第11回rest勉強会 リファクタリング(クライアント編)
![Page 1: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/1.jpg)
リファクタリング クライアント編
AWS上で構築するRESTfulアプリ勉強会 ~Web開発ワークショップ~【第11回】
![Page 2: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/2.jpg)
概要
![Page 3: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/3.jpg)
概要1. 前回のおさらい 2. クライアントのテストの難しさ
![Page 4: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/4.jpg)
概要1. 前回のおさらい 2. クライアントのテストの難しさ
![Page 5: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/5.jpg)
リファクタリング=プログラムの動作を変えずに内部構造を改
善する
![Page 6: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/6.jpg)
リファクタリングの方法1. メソッドの抽出 2.メソッドの移動 3.オブジェクトによるデータ値の置き換え 4.条件記述の分解 5.メソッド名の変更等々...
「リファクタリング カタログ」 でググってみてください
![Page 7: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/7.jpg)
リファクタリングの手順1. リファクタリングすべきか判断する。 2. テストがあるか?なければ書く。 3. リファクタリングする 4. テストする 5. 1に戻る
「5. 1に戻る」、重要!
![Page 8: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/8.jpg)
コードの匂い
リファクタリングすべきコードは
「匂う」
![Page 9: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/9.jpg)
不吉な匂い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勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/10.jpg)
分類してみました1.激臭系 2.蓋を開けたら臭う系 3.メンドクサイ系 4.加齢臭系 5.生臭い系 6.汗臭い系 7.ウソ臭い系
![Page 11: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/11.jpg)
ひとつだけ紹介1.激臭系• 長すぎるメソッド •巨大なクラス •多すぎる引数 •スイッチ文
![Page 12: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/12.jpg)
概要1. 前回のおさらい 2. クライアントのテストの難しさ
![Page 13: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/13.jpg)
クライアントプログラムの闇
• コールバック地獄 • イベントの嵐 • 状態依存
![Page 14: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/14.jpg)
今回は
コールバック地獄
をちょっとだけ解消
![Page 15: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/15.jpg)
ワークショップ
![Page 16: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/16.jpg)
本日のメニュー1. 事前準備 2. Lesson1 TODO一覧表示のテスト 3. Lesson2 TODO詳細のデータ取得テスト 4. Lesson3 TODO詳細のデータ取得処理のちょっとリファクタリング
![Page 17: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/17.jpg)
事前準備• gitのブランチを整える • 前回、前々回不参加の方はテーブル追加、列追加する
![Page 18: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/18.jpg)
gitのブランチを整える
■masterブランチを前回の内容を終えた状態にする
■masterブランチを元に、今回の作業用である、 「vol/11」ブランチを作成する
![Page 19: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/19.jpg)
人によって手順が違います!(重要)■前回の内容を途中までやった方 ■前回の内容を完了した方 ■今回から参加の方
gitのブランチを整える
![Page 20: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/20.jpg)
http://
goo.gl/WEHXqXジーオーオー.ジーエル/ ダブリューイーエイチエックスキューエックス
ここに詳しく 書いております!
![Page 21: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/21.jpg)
今回のマニュアルにリンクがあります。 ※後ほど説明
第5回と第6回に不参加の方は テーブル追加、列追加をする
![Page 22: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/22.jpg)
各Lessonについては Qiitaの投稿で詳しく!
![Page 23: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/23.jpg)
テスト結果
![Page 24: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/24.jpg)
マニュアル(Qiita)
http:// goo.gl/YXKfevジーオーオー.ジーエル/ ワイエックスケーエフイーブイ
![Page 25: 第11回rest勉強会 リファクタリング(クライアント編)](https://reader030.vdocuments.pub/reader030/viewer/2022021418/5a647bd67f8b9a52568b4863/html5/thumbnails/25.jpg)
他の部分のテストコードも書いてみ
よう!
🍻飲みDev🍕 テーマ