Slide 1

Slide 1 text

LaravelのOSSの プロジェクトを読んで お勉強してみてる話 \Laravel初心者が/ 2019.05.25 Laravel MeetUp Okinawa 島袋恵(シマブクロメグミ)

Slide 2

Slide 2 text

アジェンダ - 自己紹介 - このテーマの背景 - やってみてること - わかったこと - 振り返り・まとめ

Slide 3

Slide 3 text

自己紹介 •- 島袋 恵(シマブクロメグミ) •- Twitter • - @20092014 •- Webアプリケーションエンジニア 1年生 (2019.3月) •- 好きな/気になる 技術領域 • - Laravel • - クラウド/インフラ

Slide 4

Slide 4 text

テーマの背景 - 最近、Laravelを使ってプロトタイプ作るお仕事をしてる - その中で、〇〇機能を追加しようとするときに、実装のイメージがわかないと か、この書き方でいいんだろうかとか、自分の中で課題がある - 足りないのは、みてきたコード、書いてきたコードの量が少ないのがダメそう - 似たような機能を持ったProjectはたくさんあるはず、探して読んでみよ う!!! - LaracomっていうLaravelで書かれたECサイトのOSSを見つけたので、こ れを読んで勉強してみていて、学んだことととか思ったことを話します (LaravelのOSSのプロジェクトを読んでお勉強してみてる話)

Slide 5

Slide 5 text

やってみてること - 公開されてるプロジェクトをローカルで動くようにする - ブラウザから触ってみてどんな機能がある調べてみる - その機能がどんな実装になってそうかとか、リレーションとかどうなって るか想像してみる(裏側を想像してみる) - コード読んでみる(答え合わせ) - 読んでみたことの疑問を調べて整理、勉強する

Slide 6

Slide 6 text

ローカルで動かすようにしてみる -例. LaracomっていうLaravelで書かれたプロジェクトの場合 -https://github.com/Laracommerce/laracom のリポジトリのREADMEをに立ち 上げかたが書いてある(DBの設定とかcomposer installとかいろいろ) -動かしてみると以下のキャプチャのようなECサイトが立ちあがる こんな感じのECサイトが 立ち上がる 管理画面 商品一覧画面(TOPページ)

Slide 7

Slide 7 text

ブラウザから触ってみてどん な機能があるか調べてみる - 一般画面 - 商品一覧表示,商品ページ,カートに入れる,購入手続き,etc… - 管理画面 - 商品登録,カテゴリ作成,ユーザー登録,role/permission管 理,etc…

Slide 8

Slide 8 text

裏側を想像してみる - リレーション想像してみたやつ描いてみる

Slide 9

Slide 9 text

実際にコード読んでみる① - リレーションをみてみる

Slide 10

Slide 10 text

実際にコード読んでみる② - TOPページ(商品一覧)の表示をルーティングから追ってみる web.php HomeController.php CategoryRepositoryInterface.php CategoryRepository.php

Slide 11

Slide 11 text

読んでみて疑問 - カテゴリの情報を引っ張ってくるのは、Category::find(2) ではダメな のか? 商品一覧画面(TOPページ) - こう書いてある - 単純にこんな感じでもかけそうだけど、そうしない理由がありそう

Slide 12

Slide 12 text

わかったこと - 調べてみた。これはリポジトリパターンというのを使っていそう - リポジトリパターンとは、ビジネスロジックからデータ操作を別レイヤへ移し分離隠 蔽することでコードのメンテナンス性やテストの用意性を高める実装パターン。デー タの参照先が変わってもプログラムの変更範囲は可能な限り限定的にしたい - なるほどわからん [参考]PHPフレームワークLaravel Webアプリケーション開発 P209 より

Slide 13

Slide 13 text

振り返り/まとめ - 公開されてるプロジェクトなど、いろんなコードを読んでみるとは勉強 になりそう(雰囲気だけでも、特に経験値が少ない人は) - すぐに理解できなくてもインデックスとして知識を残す - 「わからない、読めない」が調べる、勉強するきっかけになる - このProjectはたまたま適当に選んで読んでみてるだけなので、もし 初心者オススメの読んでみたら良さそうなOSSのプロジェクトなどあっ たら教えていただけると嬉しいです!