Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[Laravel] CRUDアプリから一歩踏み出す3つのアプローチ

848 views

Published on

Laravel LT night #1 で発表した資料です。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

[Laravel] CRUDアプリから一歩踏み出す3つのアプローチ

  1. 1. CRUDアプリから一歩踏み出す 3つのアプローチ 2017.07.26 @kurikazu Laravel LT night #1 https://blogs.yahoo.co.jp/rokuken06/GALLERY/show_image.html?id=39909503&no=0
  2. 2. 自己紹介 • @kurikazu • ディップ株式会社 • プロダクトマネージャと エンジニア採用まわりの あれこれ担当 • iOSとLaravel界隈に います
  3. 3. Laravelを使う人が ふえてきた
  4. 4. 「はじめの一歩」的な記事も だいぶ揃ってきた印象 https://mayonez.jp/topic/1824
  5. 5. そのまま プロダクトに投入できるか
  6. 6. ちょっと工夫が必要かも?
  7. 7. 今日の話 Laravelで「CRUDアプリ」から 一歩踏み出すために 自分がやってみたこと
  8. 8. 1. 「どこでもFacade」を疑う
  9. 9. class JobController extends Controller { public function postEntry(Request $request, $id) { $validator = Validator::make($request); if ($validator->fails()) { return redirect()->route('entry')->withInput()->withErrors($validator); } try { $entry = new Entry(); $entry->id = User::find($id)->uid; $entry->value = $request->input(‘name'); $entry->hoge = Session::get(‘hogehoge'); $entry->save(); Mail::send('emails.welcome', $request, function($message){ $message->to($request) ->subject(‘登録できました'); }); Log::info('entry', $requests); return view('entry.success')->with('data', $entry); ・・・
  10. 10. 1. 「どこでもFacade」を疑う • Facadeのいいところ ・様々な機能クラスを簡単に扱える ・どこでも使える ・Laravelの特徴とも言える機能 ⇒ 知らない間に密結合なクラスに… • テストを書くのがすごく大変
  11. 11. 1. 「どこでもFacade」を疑う • Facadeを使う前にちょっと考える ↓ その機能はそのクラスで使うべきものか? • 機能を外から与える (密結合に早く気付けるようにする) • 必要に応じてクラス・階層を分ける
  12. 12. 2. Model=Eloquent を疑う
  13. 13. 2. Model=Eloquent を疑う • EloquentのおかげでDB連携が簡単にでき • Eloquentを使う事で起きる制限事項 ・1テーブル=1Model ・複合キーは考慮されてない ・created_at, updated_at ⇒ テーブル設計がFWに引っ張られる
  14. 14. 2. Model=Eloquent を疑う • EloquentはDB連携の手段の1つである • クエリービルダもある • 生のSQLも書けるよ ↓ 必要に応じて使い分ける
  15. 15. 3. FWのコアに触れる
  16. 16. 3. FWのコアに触れる • Laravelはいろんな機能が揃っていて、 それらを組み合わせれば何となく動いて とても便利だけど… ⇒ 何がどう動いてるかわからないのは なんとなく気持ちが悪い。 ⇒ 本番投入後に vendor 配下でエラーが 出たら?初見で解析するのは辛い
  17. 17. • 割と辛い • でも、各機能がなぜ動いてるかわかる ・オートロードの仕組み ・artisan optimize がなぜ有効か ・設定ファイルを読み込むところ ・サービスプロバイダが機能を登録するところ ・サービスコンテナの動き … ↓ Laravelをちょっと知った気持ちになる 3. まずindex.phpを読んでみる
  18. 18. Laravelに限らず フレームワークを使うときに 言える話
  19. 19. とくに Laravel の場合 • 他機能、重厚でゆるふわなフレームワーク ・Modelフォルダが無いし ・Appルートさえどこに置いても良い ・デザインパターンも自由 ↓ カオスになりやすい
  20. 20. とくに Laravel の場合 • 結果的にデザインパターンや設計手法を 考えざるをえない ⇒ 考えながら作ろう ⇒ 作りながら改善しよう ⇒ やっぱりテストコードいるよね…
  21. 21. 実践でのいろんな話 Laravel Meetup で教えてください! (たぶん、またやります。)

×