SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
YYPHP #13
    コードレビュー初めての
 新米ちゃん♬
・福岡生まれの福岡育ち
・IT企業で企画・ディレクター
 →自分達で何か作りたくて妻と一緒に退社
 →アパートの一室でハウススタジオ運営(今も)
 →KaizenPlatformでグロースハッカーとして活動
 →プログラミングを学んでサービス開発中(今)
・スキル:PHP/Laravel/Vue.js
・興味:DDD/TDD/OS/Go/Unity/ReactNative..etc
香月 宜浩(かつき よりひろ)
Twitter:ピーターパン@エンジニアン(@hukuzatsu)
[前提の共有]
 ・コードレビューの目的・背景
 ・とくに見てもらいたいとこ
 ・レビューしてもらうプロジェクトの概要
 ・業務の流れ
 ・業務ルール
[クラス構成]
 ・クラス図
[コードレビュー]
 ・GitHub
目次
前提の共有
コードレビューの目的・背景
[背景]
 ・開発中サービスがファットコントローラーになっていた
 ・設計知識がなかったためちゃんと設計から学ぼう!
 ・行き着いたのがDDD
 ・DDDっぽく実践してみたけど、これでええのん?
 ・いや、良くない気がする...
 ・そうだ、コードレビューだ!
[目的]
 ・実際のクラス構成とコードを叩いてもらうことで、
  よりDDDの考え方に合った構成やコードの書き方を学ぶ
とくに見てもらいたいとこ
①クラス構成
 ・一つのクラスの責務が結構大きくなっちゃっている感がある
  クラスをうまく分割して1クラス1責務みたいな構成にしたい
  (業務ルールが複雑なのでどのクラスにどの業務ルールを記述するか悩む)
②依存関係
 ・ドメインモデル内のクラス間で結構依存し合っているため、
  一つのクラスに変更が入った時にちょっと変更が面倒になるかも?
 ・インスタンス化する時の引数が多くなってしまっている
※その他気づいたことどんどんご指摘下さい!
レビューしてもらうプロジェクトの概要
[ドメイン] ハウススタジオ運営
[コンテキスト] 予約受付コンテキスト?
[ニーズ]
 ・ハウススタジオのお客さんから予約申し込みが入った際に、予約内容が正し
  いか + 日程が空いているか自動で判断した上で、予約内容に応じた返信メー
  ルを、お客さんと管理者(自分)に自動で送りたい
 ・予約内容が正しく、日程が空いている場合はGoogleカレンダーに自動で予定  を入
れたい
 ・予約内容は管理者が一覧で見れるようにしたい
 ・予約のステータス(問い合わせ、予約確定、入金済..etc)も管理したい
ハウススタジオ予約受付業務の流れ
サイトから
予約申し込み
お客さん 管理者 Googleカレンダー メモ帳
予約申し込み
のメール受信
予約内容チェック
空き状況チェック
空き有
無
質問
有無
別日程提示
→終了or再検討
空き無し
Googleカレンダーで確認
空き有り
入金手続き
質問有り
入金確認&アクセス方法連絡
利用
合計金額・日程・名前・利用日
オプションをメモ
質問無し
今日は特に
この部分について
質問に回答
予約内容確認&入金手続き連絡
終了or再検討
ここを自動化したい
業務ルール
[予約内容チェック]でチェックする項目
・GitHub参照
https://github.com/Yorinton/asobiba101
クラス構成
クラス図

Contenu connexe

Tendances

師弟登壇・新米サムライの集い 2013
師弟登壇・新米サムライの集い 2013 師弟登壇・新米サムライの集い 2013
師弟登壇・新米サムライの集い 2013
hiboma
 

Tendances (20)

10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話
10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話
10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話
 
師弟登壇・新米サムライの集い 2013
師弟登壇・新米サムライの集い 2013 師弟登壇・新米サムライの集い 2013
師弟登壇・新米サムライの集い 2013
 
案件で使えるプラグイン特集
案件で使えるプラグイン特集案件で使えるプラグイン特集
案件で使えるプラグイン特集
 
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
 
var dumpを使わないWordPress開発フロー
var dumpを使わないWordPress開発フローvar dumpを使わないWordPress開発フロー
var dumpを使わないWordPress開発フロー
 
WordCamp Kansai 2015 実行委員向け GPL勉強会 | GPL study sessions for WordCamp Kansai 2...
WordCamp Kansai 2015 実行委員向け GPL勉強会 | GPL study sessions for WordCamp Kansai 2...WordCamp Kansai 2015 実行委員向け GPL勉強会 | GPL study sessions for WordCamp Kansai 2...
WordCamp Kansai 2015 実行委員向け GPL勉強会 | GPL study sessions for WordCamp Kansai 2...
 
テーマ制作時の疑問とノンプログラマーにも優しいテーマを考える
テーマ制作時の疑問とノンプログラマーにも優しいテーマを考えるテーマ制作時の疑問とノンプログラマーにも優しいテーマを考える
テーマ制作時の疑問とノンプログラマーにも優しいテーマを考える
 
♡PHPが恋しい話♡
♡PHPが恋しい話♡♡PHPが恋しい話♡
♡PHPが恋しい話♡
 
PHPから離れて感じるPHPの良さ
PHPから離れて感じるPHPの良さPHPから離れて感じるPHPの良さ
PHPから離れて感じるPHPの良さ
 
Web開発の 今までとこれから
Web開発の 今までとこれからWeb開発の 今までとこれから
Web開発の 今までとこれから
 
Yii Framework 2.0 いま求められるRAD標準とは #phpkansai
Yii Framework 2.0 いま求められるRAD標準とは #phpkansaiYii Framework 2.0 いま求められるRAD標準とは #phpkansai
Yii Framework 2.0 いま求められるRAD標準とは #phpkansai
 
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
 
Rails templateで開発の初速を上げよう
Rails templateで開発の初速を上げようRails templateで開発の初速を上げよう
Rails templateで開発の初速を上げよう
 
難しいよね、コードレビュー
難しいよね、コードレビュー難しいよね、コードレビュー
難しいよね、コードレビュー
 
WordPress公式ディレクトリにテーマを登録しよう #wctokyo
WordPress公式ディレクトリにテーマを登録しよう #wctokyoWordPress公式ディレクトリにテーマを登録しよう #wctokyo
WordPress公式ディレクトリにテーマを登録しよう #wctokyo
 
WordCamp Kansai GPL study
WordCamp Kansai GPL studyWordCamp Kansai GPL study
WordCamp Kansai GPL study
 
ローカルでのWordPress開発環境に向けて【WordBench 三重 5月度勉強会】
ローカルでのWordPress開発環境に向けて【WordBench 三重 5月度勉強会】ローカルでのWordPress開発環境に向けて【WordBench 三重 5月度勉強会】
ローカルでのWordPress開発環境に向けて【WordBench 三重 5月度勉強会】
 
「フレームワークを使っていれば 脆弱性は出ない」って本当?
「フレームワークを使っていれば 脆弱性は出ない」って本当?「フレームワークを使っていれば 脆弱性は出ない」って本当?
「フレームワークを使っていれば 脆弱性は出ない」って本当?
 
初歩から始めるJava勉強会 プレゼンテーション資料
初歩から始めるJava勉強会 プレゼンテーション資料初歩から始めるJava勉強会 プレゼンテーション資料
初歩から始めるJava勉強会 プレゼンテーション資料
 
Dev tools introduction
Dev tools introductionDev tools introduction
Dev tools introduction
 

Similaire à YYPHP #13 初めてのコードレビュー

第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料
Naoki Shibata
 
西区勉強会用スライド
西区勉強会用スライド西区勉強会用スライド
西区勉強会用スライド
Hiromi Kai
 

Similaire à YYPHP #13 初めてのコードレビュー (20)

DartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみようDartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみよう
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 
うちの開発におけるXD利用法
うちの開発におけるXD利用法うちの開発におけるXD利用法
うちの開発におけるXD利用法
 
ドメイン駆動設計を実践するプログラマーの悩み
ドメイン駆動設計を実践するプログラマーの悩みドメイン駆動設計を実践するプログラマーの悩み
ドメイン駆動設計を実践するプログラマーの悩み
 
Laravel管理画面ジェネレーター
Laravel管理画面ジェネレーターLaravel管理画面ジェネレーター
Laravel管理画面ジェネレーター
 
デ部会 プロトタイプ
デ部会 プロトタイプデ部会 プロトタイプ
デ部会 プロトタイプ
 
サーバサイドエンジニアから見た MT構築のレガシーなノウハウ (入門編)
サーバサイドエンジニアから見た MT構築のレガシーなノウハウ (入門編)サーバサイドエンジニアから見た MT構築のレガシーなノウハウ (入門編)
サーバサイドエンジニアから見た MT構築のレガシーなノウハウ (入門編)
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
PythonフレームワークDRFの便利機能
PythonフレームワークDRFの便利機能PythonフレームワークDRFの便利機能
PythonフレームワークDRFの便利機能
 
働き方が大きく変わった 入社3年目のときのとあるエピソード
働き方が大きく変わった 入社3年目のときのとあるエピソード働き方が大きく変わった 入社3年目のときのとあるエピソード
働き方が大きく変わった 入社3年目のときのとあるエピソード
 
初めてのWebプログラミング講座
初めてのWebプログラミング講座初めてのWebプログラミング講座
初めてのWebプログラミング講座
 
Next.js Storybook Driven Development
Next.js Storybook Driven DevelopmentNext.js Storybook Driven Development
Next.js Storybook Driven Development
 
Walking front end
Walking front endWalking front end
Walking front end
 
俺と今年請けた仕事のテック分布
俺と今年請けた仕事のテック分布俺と今年請けた仕事のテック分布
俺と今年請けた仕事のテック分布
 
【15-A-4】Redmine + Lychee 導入のアンチパターン
【15-A-4】Redmine + Lychee 導入のアンチパターン【15-A-4】Redmine + Lychee 導入のアンチパターン
【15-A-4】Redmine + Lychee 導入のアンチパターン
 
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
 
ぼくのNode.jsのだいいっぽ
ぼくのNode.jsのだいいっぽぼくのNode.jsのだいいっぽ
ぼくのNode.jsのだいいっぽ
 
西区勉強会用スライド
西区勉強会用スライド西区勉強会用スライド
西区勉強会用スライド
 

YYPHP #13 初めてのコードレビュー