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つのアプローチ

1,162 views

Published on

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

Published in: Technology
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ...................................ALL FOR EBOOKS................................................. Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • 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 で教えてください! (たぶん、またやります。)

×