Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LaraVue勉強会(初めてのプロジェクト参加とDIの話)

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for MashimaShiomi MashimaShiomi
October 28, 2019
3.5k

 LaraVue勉強会(初めてのプロジェクト参加とDIの話)

LaraVue勉強会(初めてのプロジェクト参加とDIの話)

Avatar for MashimaShiomi

MashimaShiomi

October 28, 2019
Tweet

Transcript

  1. Fabric Tokyo inc All rights reserved . 自己紹介 名前: 真嶋 汐美(マシマ シオミ)

    経歴: 長崎造船所の工事担当    ↓ 2019/5~ FABRIC TOKYO サーバーサイドエンジニア 最近始めたこと: ヨガ(4回) 山登り(3回) laravel(5ヶ月) 勉強会参加(初)←new! LT登壇(初)←new!
  2. Fabric Tokyo inc All rights reserved . DIを使用しない設計パターン マツダのエンジン 他の作業ができないので困っ

    た。 もっと良いエンジン見つけたけ れど、工数ばかり増えて困った
  3. Fabric Tokyo inc All rights reserved . DIを使用してみる エンジン 載せるところ

    搭載 仕様 エンジンのことを気にせず作 業を進められるよ いらすとや製 エンジン マツダ製 エンジン
  4. Fabric Tokyo inc All rights reserved . DI で実装してみる 継承

    UserService クラス コンストラクタ 引数:SenderInterfaceのインスタンス SenderInterface インターフェイス  メソッド send MailSender クラス  メソッド send メール送信処理 引数としてインスタンスを渡す 注入
  5. Fabric Tokyo inc All rights reserved . DI で実装するメリット①: Senderクラスの進捗に関わらず、

    UserServiceクラスの実装を進めることができる! (車の場合:エンジンの進捗に関わらず、自動車の他の部分の実装ができる)
  6. Fabric Tokyo inc All rights reserved . UserService クラス コンストラクタ 引数:MailSenderInterfaceのインスタンス

    MailSender クラス SenderInterface インターフェイス Mailを送信する処理を他の人に 頼んだり、あとから実装できる
  7. Fabric Tokyo inc All rights reserved . DI で実装するメリット② 急な変更にも対応しやすい!

    (車の場合:いらすとや製エンジンからマツダ製エンジンに変更できる。)
  8. Fabric Tokyo inc All rights reserved . SlackSender クラス MailSenderInterfaceのモックを渡

    してやれば良いので実際にメール は送信されない。 Providers/AppServiceProvider.php
  9. Fabric Tokyo inc All rights reserved . DI で実装するメリット③ テストが簡単!

    (車の場合:エンジンの検査と車の検査を切り離して実施することができて簡単。)
  10. Fabric Tokyo inc All rights reserved . UserService クラス コンストラクタ 引数:MailSenderInterfaceのインスタンス

    MailSender クラス SenderInterface インターフェイス 進捗を気にせず、UserServiceク ラスのテストを作成できる! MailSenderInterfaceのモックを渡 してやれば良いので実際にメール は送信されない。
  11. Fabric Tokyo inc All rights reserved . まとめ DIで実装するのは少し大変だったけど、 機能を変更するときは便利だし、

    テストも楽になるし、 作業も分担しやすいし、 いいことばかりだった。 DIを勉強してよかった!