Soumettre la recherche
Mettre en ligne
第10回rest勉強会 リファクタリング(サーバ編)編
•
1 j'aime
•
927 vues
K
ksimoji
Suivre
2015/10/23に行われたAWS上で構築するRESTfulアプリ勉強会~Web開発ワークショップ~【第10回】で使用した資料です。
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 36
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
第11回rest勉強会 リファクタリング(クライアント編)
第11回rest勉強会 リファクタリング(クライアント編)
ksimoji
第12回rest勉強会 これまでの補足・展望編
第12回rest勉強会 これまでの補足・展望編
ksimoji
第4回REST勉強会 RequireJS編
第4回REST勉強会 RequireJS編
ksimoji
第5回rest勉強会 ログイン編
第5回rest勉強会 ログイン編
ksimoji
第6回rest勉強会 アソシエーション編
第6回rest勉強会 アソシエーション編
ksimoji
Build insider testingwithvs
Build insider testingwithvs
Tomoyuki Iwade
第7回rest勉強会 バリデーション編
第7回rest勉強会 バリデーション編
ksimoji
第5回Sql server2017勉強会資料
第5回Sql server2017勉強会資料
TakenoriIijima
Recommandé
第11回rest勉強会 リファクタリング(クライアント編)
第11回rest勉強会 リファクタリング(クライアント編)
ksimoji
第12回rest勉強会 これまでの補足・展望編
第12回rest勉強会 これまでの補足・展望編
ksimoji
第4回REST勉強会 RequireJS編
第4回REST勉強会 RequireJS編
ksimoji
第5回rest勉強会 ログイン編
第5回rest勉強会 ログイン編
ksimoji
第6回rest勉強会 アソシエーション編
第6回rest勉強会 アソシエーション編
ksimoji
Build insider testingwithvs
Build insider testingwithvs
Tomoyuki Iwade
第7回rest勉強会 バリデーション編
第7回rest勉強会 バリデーション編
ksimoji
第5回Sql server2017勉強会資料
第5回Sql server2017勉強会資料
TakenoriIijima
Test to net core 3
Test to net core 3
Tatsuya Ishikawa
Service worker が拓く mobile web の新しいかたち
Service worker が拓く mobile web の新しいかたち
Kinuko Yasuda
Web アプリケーション開発におけるテストの実践 ~ VSUG Day Summer
Web アプリケーション開発におけるテストの実践 ~ VSUG Day Summer
Tomoyuki Iwade
The Internal of Serverless Plugins
The Internal of Serverless Plugins
Terui Masashi
「krew」で淀みない業務システムを実現
「krew」で淀みない業務システムを実現
Cybozucommunity
React.jsでサービスを作ってみた話
React.jsでサービスを作ってみた話
GIG inc.
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
TanUkkii
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
tak-nakamura
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Yoichi Kawasaki
2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
miso- soup3
Web技術勉強会第1回目
Web技術勉強会第1回目
龍一 田中
50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック
miso- soup3
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
miso- soup3
Phpでrest apiを作った話
Phpでrest apiを作った話
Yamaguchi Kenya
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
Kohei Asai
What's Azure DevOps
What's Azure DevOps
Kazushi Kamegawa
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
zaru sakuraba
Salesforce DUG TOKYO Meetup #9
Salesforce DUG TOKYO Meetup #9
Akira Kuratani
Infra as Code in Azure
Infra as Code in Azure
Issei Hiraoka
オフラインファーストの思想と実践
オフラインファーストの思想と実践
Shumpei Shiraishi
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
Yahoo!デベロッパーネットワーク
スニペットとウェブカウントを用いたウェブ検索クエリの分類
スニペットとウェブカウントを用いたウェブ検索クエリの分類
Yahoo!デベロッパーネットワーク
Contenu connexe
Tendances
Test to net core 3
Test to net core 3
Tatsuya Ishikawa
Service worker が拓く mobile web の新しいかたち
Service worker が拓く mobile web の新しいかたち
Kinuko Yasuda
Web アプリケーション開発におけるテストの実践 ~ VSUG Day Summer
Web アプリケーション開発におけるテストの実践 ~ VSUG Day Summer
Tomoyuki Iwade
The Internal of Serverless Plugins
The Internal of Serverless Plugins
Terui Masashi
「krew」で淀みない業務システムを実現
「krew」で淀みない業務システムを実現
Cybozucommunity
React.jsでサービスを作ってみた話
React.jsでサービスを作ってみた話
GIG inc.
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
TanUkkii
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
tak-nakamura
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Yoichi Kawasaki
2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
miso- soup3
Web技術勉強会第1回目
Web技術勉強会第1回目
龍一 田中
50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック
miso- soup3
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
miso- soup3
Phpでrest apiを作った話
Phpでrest apiを作った話
Yamaguchi Kenya
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
Kohei Asai
What's Azure DevOps
What's Azure DevOps
Kazushi Kamegawa
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
zaru sakuraba
Salesforce DUG TOKYO Meetup #9
Salesforce DUG TOKYO Meetup #9
Akira Kuratani
Infra as Code in Azure
Infra as Code in Azure
Issei Hiraoka
オフラインファーストの思想と実践
オフラインファーストの思想と実践
Shumpei Shiraishi
Tendances
(20)
Test to net core 3
Test to net core 3
Service worker が拓く mobile web の新しいかたち
Service worker が拓く mobile web の新しいかたち
Web アプリケーション開発におけるテストの実践 ~ VSUG Day Summer
Web アプリケーション開発におけるテストの実践 ~ VSUG Day Summer
The Internal of Serverless Plugins
The Internal of Serverless Plugins
「krew」で淀みない業務システムを実現
「krew」で淀みない業務システムを実現
React.jsでサービスを作ってみた話
React.jsでサービスを作ってみた話
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
Web技術勉強会第1回目
Web技術勉強会第1回目
50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
Phpでrest apiを作った話
Phpでrest apiを作った話
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
What's Azure DevOps
What's Azure DevOps
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
Salesforce DUG TOKYO Meetup #9
Salesforce DUG TOKYO Meetup #9
Infra as Code in Azure
Infra as Code in Azure
オフラインファーストの思想と実践
オフラインファーストの思想と実践
Similaire à 第10回rest勉強会 リファクタリング(サーバ編)編
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
Yahoo!デベロッパーネットワーク
スニペットとウェブカウントを用いたウェブ検索クエリの分類
スニペットとウェブカウントを用いたウェブ検索クエリの分類
Yahoo!デベロッパーネットワーク
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
yayamamo @ DBCLS Kashiwanoha
派生開発
派生開発
尚 鈴木
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
健一 辰濱
Cloud Formation Best Practice
Cloud Formation Best Practice
yutamuramot
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web Service
WataruOhno
App codeでリファクタリング
App codeでリファクタリング
semnil
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
Ayumu Kawaguchi
実はとても面白い...Documentation library
実はとても面白い...Documentation library
Kouta Shiobara
Laravel5を使って開発してみた
Laravel5を使って開発してみた
Takeo Noda
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
Ohishi Mikage
2018年度 若手技術者向け講座 リファクタリング
2018年度 若手技術者向け講座 リファクタリング
keki3
IDEALIZE YOU
IDEALIZE YOU
佑介 九岡
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
JJUG CCC 2014 ATL
JJUG CCC 2014 ATL
Recruit Technologies
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
Rakuten Group, Inc.
OPNFVのコンポーネントと調べ方
OPNFVのコンポーネントと調べ方
Mibu Ryota
SOE-Loc
SOE-Loc
guestd67d078
Similaire à 第10回rest勉強会 リファクタリング(サーバ編)編
(20)
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
スニペットとウェブカウントを用いたウェブ検索クエリの分類
スニペットとウェブカウントを用いたウェブ検索クエリの分類
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
派生開発
派生開発
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
Cloud Formation Best Practice
Cloud Formation Best Practice
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web Service
App codeでリファクタリング
App codeでリファクタリング
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
実はとても面白い...Documentation library
実はとても面白い...Documentation library
Laravel5を使って開発してみた
Laravel5を使って開発してみた
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
2018年度 若手技術者向け講座 リファクタリング
2018年度 若手技術者向け講座 リファクタリング
IDEALIZE YOU
IDEALIZE YOU
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
JJUG CCC 2014 ATL
JJUG CCC 2014 ATL
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
OPNFVのコンポーネントと調べ方
OPNFVのコンポーネントと調べ方
SOE-Loc
SOE-Loc
第10回rest勉強会 リファクタリング(サーバ編)編
1.
リファクタリング サーバ編 AWS上で構築するRESTfulアプリ勉強会 ~Web開発ワークショップ~【第10回】
2.
概要
3.
概要 1. リファクタリング? 2. リファクタリング手順 3.
「コードの匂い」 4. テスト
4.
概要 1. リファクタリング? 2. リファクタリング手順 3.
「コードの匂い」 4. テスト
5.
リファクタリング =プログラムの動作を 変えずに内部構造を改 善する
6.
リファクタリングの方法 1. メソッドの抽出 2.メソッドの移動 3.オブジェクトによるデータ値の置き換え 4.条件記述の分解 5.メソッド名の変更 等々... 「リファクタリング カタログ」 でググってみてください
7.
概要 1. リファクタリング? 2. リファクタリング手順 3.
「コードの匂い」 4. テスト
8.
リファクタリングの手順 1. リファクタリングすべきか判断する。 2. テストがあるか?なければ書く。 3.
リファクタリングする 4. テストする 5. 1に戻る 「5. 1に戻る」、重要!
9.
概要 1. リファクタリング? 2. リファクタリング手順 3.
「コードの匂い」 4. テスト
10.
コードの匂い リファクタリングすべきコードは 「匂う」
11.
不吉な匂い 1.重複したコード 2.長すぎるメソッド 3.巨大なクラス 4.多すぎる引数 5.変更の発散 6.変更の分散 7.属性、操作の横恋慕 8.データの群れ 9.基本データ型への執着 10.スイッチ文 11.パラレル継承 12.怠け者クラス 13.疑わしき一般化 14.一時的属性 15.メッセージの連鎖 16.仲介人 17.不適切な関係 18.クラスのインタフェース不一致 19.未熟なクラスライブラリ 20.データクラス 21.相続拒否 22.コメント
12.
分類してみました 1.激臭系 2.蓋を開けたら臭う系 3.メンドクサイ系 4.加齢臭系 5.生臭い系 6.汗臭い系 7.ウソ臭い系
13.
ひとつだけ紹介 1.激臭系 • 長すぎるメソッド •巨大なクラス •多すぎる引数 •スイッチ文
14.
今回 「長すぎるメソッド」 を 「メソッドの抽出」 でリファクタリング!
15.
概要 1. リファクタリング? 2. リファクタリング手順 3.
「コードの匂い」 4. テスト
16.
テスト • PHPUnit • モック
17.
ワークショップ
18.
アップロード が臭う!
19.
本日のメニュー 1. 事前準備 •ブランチ整備 •composer設定 •phpUnitインストール •テストDBの作成 2. Lesson1
PHPUnitの設定と簡単なテスト作成 3. Lesson2 アップロード機能のテスト 4. Lesson3 アップロード機能のリファクタリング
20.
事前準備 • gitのブランチを整える • 前回、前々回不参加の方は テーブル追加、列追加する
21.
gitのブランチを整える ■masterブランチを前回の内容 を終えた状態にする ■masterブランチを元に、今回 の作業用である、 「vol/10」ブランチを作成する
22.
人によって手順が違い ます!(重要) ■前回の内容を途中までやった方 ■前回の内容を完了した方 ■今回から参加の方 gitのブランチを整える
23.
http:// goo.gl/WEHXqX ジーオーオー.ジーエル/ ダブリューイーエイチエックスキューエックス ここに詳しく 書いております!
24.
今回のマニュアルにリンクがあります。 ※後ほど説明 第5回と第6回に不参加の方は テーブル追加、列追加をする
25.
•composer設定 •phpUnitインストール •テストDBの作成 Qiitaの投稿で詳しく!
26.
各Lessonについては Qiitaの投稿で詳しく!
27.
PHPUnit テスト失敗時(赤)
28.
PHPUnit テスト成功時(緑)
29.
RED GREEN Refactor のリズム
30.
public function upload()
{ $files = $this->getUploadFileParams(); $owner = $this->Auth->user()['id']; $numTodos = 0; $errors = array (); foreach ( $files as $file ) { $fileName = $file['name']; $filePath = $file['tmp_name']; $todos = file($filePath, FILE_IGNORE_NEW_LINES ¦ FILE_SKIP_EMPTY_LINES); $assignee = $owner; $lineNo = 1; foreach ( $todos as $todo ) { $data = array (); $data['todo'] = $todo; $data['status'] = 0; $data['owner'] = $owner; $data['assignee'] = $assignee; $res = $this->TodoList->save($data); 修正前のupload関数 以下略
31.
クライアントがアップロードを実行した際のPOST データを取得する getUploadFileParams ログイン中ユーザのIDを取得する getLoginUserId アップロードされたファイル群を読み込んでTODO としてDBに登録する registerFilesAsTodos アップロードされたファイルを1つを読み込んで配 列に格納する readUploadTodoFile 配列に格納されたTODOをひとつずつDBに登録す る registerTodos バリデーションエラーがあった場合、内容を整形す る formatValidationErrorMessage アップロード処理結果のメッセージをクライアント 向けに整形する editUploadResponse メソッドの抽出
32.
マニュアル(Qiita) http:// goo.gl/yWZD5I ジーオーオー.ジーエル/ ワイダブリューゼットディー5アイ はじめましょう!
33.
リファクタリングの方法 1. メソッドの抽出 2. メソッドの移動 3.
オブジェクトによるデータ値の置き換え 4. 条件記述の分解 5. メソッド名の変更 等々... 「リファクタリング カタログ」 でググってみてください おさらい
34.
不吉な匂い 1.重複したコード 2.長すぎるメソッド 3.巨大なクラス 4.多すぎる引数 5.変更の発散 6.変更の分散 7.属性、操作の横恋慕 8.データの群れ 9.基本データ型への執着 10.スイッチ文 11.パラレル継承 12.怠け者クラス 13.疑わしき一般化 14.一時的属性 15.メッセージの連鎖 16.仲介人 17.不適切な関係 18.クラスのインタフェース不一致 19.未熟なクラスライブラリ 20.データクラス 21.相続拒否 22.コメント おさらい
35.
分類してみました 1.激臭系 2.蓋を開けたら臭う系 3.メンドクサイ系 4.加齢臭系 5.生臭い系 6.汗臭い系 7.ウソ臭い系 おさらい
36.
ダウンロードも ちょっと臭くないか? 🍻飲みDev🍕 テーマ
Télécharger maintenant