$30 off During Our Annual Pro Sale. View Details »

リンケージにおけるアプリケーションコードとの付き合い方とそれを支えるコミュニケーション / drobe_pixiv_linkage-20230905

リンケージにおけるアプリケーションコードとの付き合い方とそれを支えるコミュニケーション / drobe_pixiv_linkage-20230905

DROBE Engineer Night #5 質とスピードを追求する開発チームでの取り組みの登壇資料です。

https://drobe.connpass.com/event/292061/

blue_goheimochi

September 05, 2023
Tweet

More Decks by blue_goheimochi

Other Decks in Technology

Transcript

  1. 2023.09.05
    Yuta Ohashi
    DROBE Engineer Night #5

    View Slide

  2. / @blue_goheimochi
    PHP(Laravel), JavaScript(Vue.js/Nuxt.js),
    , , ,
    , PUBG MOBILE,

    View Slide

  3. Mission

    View Slide

  4. 4
    • CTO
    • : 7
    • : 7
    • : 15
    • PHPer

    View Slide

  5. 5
    • Laravel
    • React
    • PostgreSQL
    • AWS

    View Slide

  6. View Slide

  7. 7

    • Laravel




    View Slide

  8. View Slide

  9. 9
    Laravel
    • Eloquent
    • Facede

    • Artisan

    View Slide

  10. 10
    Laravel

    • Laravel Way 1




    View Slide

  11. 11
    Laravel

    • Laravel
    • Laravel
    • Laravel


    • Interface

    View Slide

  12. 12
    Laravel
    Laravel
    Laravel

    View Slide

  13. 13
    Laravel
    class Register
    {
    public function __construct(
    private readonly Mailer $mailer,
    ) {}
    public function create(string $name): void
    {
    // 何らか登録などする処理
    // メールの送信
    $this->mailer->send(new SayHello($name));
    }
    }
    app/Services/Register.php

    View Slide

  14. 14
    Laravel
    class Register
    {
    public function __construct(
    private readonly Mailer $mailer,
    ) {}
    public function create(string $name): void
    {
    // 何らか登録などする処理
    // メールの送信
    $this->mailer->send(new SayHello($name));
    }
    }
    Mailer
    app/Services/Register.php

    View Slide

  15. 15
    Laravel
    class Register
    {
    public function __construct(
    private readonly Mailer $mailer,
    ) {}
    public function create(string $name): void
    {
    // 何らか登録などする処理
    // メールの送信
    $this->mailer->send(new SayHello($name));
    }
    }
    Mailer
    Laravel
    app/Services/Register.php

    View Slide

  16. 16
    class Register
    {
    public function __construct(
    private readonly SayHelloSenderInterface $sender,
    ) {}
    public function create(string $name): void
    {
    // 何らか登録などする処理
    // メールの送信
    $this->sender>send($name);
    }
    }
    lib/User/Register.php
    Laravel
    class SayHelloSenderInterface
    {
    public function send(string $name): void
    }
    lib/Mail/SayHelloSenderInterface.php

    View Slide

  17. 17
    class Register
    {
    public function __construct(
    private readonly SayHelloSenderInterface $sender,
    ) {}
    public function create(string $name): void
    {
    // 何らか登録などする処理
    // メールの送信
    $this->sender>send($name);
    }
    }
    Laravel
    class SayHelloSenderInterface
    {
    public function send(string $name): void
    }
    Interface
    Mailer
    lib/User/Register.php lib/Mail/SayHelloSenderInterface.php

    View Slide

  18. 18
    Laravel
    class SayHelloConcrete implements SayHelloSenderInterface
    {
    public function __construct(
    private readonly Mailer $mailer,
    ) {}
    public function send(string $name): void
    {
    // メールの送信
    $this->mailer->send(new SayHello($name));
    }
    }
    app/Mail/SayHelloConcrete.php
    class SayHelloSenderInterface
    {
    public array $bindings = [
    ¥Package¥Mail¥SayHelloInterface::class =>
    ¥App¥Services¥SayHelloConclete::class,
    ];
    }
    app/Providers/AppServiceProvider.php

    View Slide

  19. 19
    Laravel
    class SayHelloConcrete implements SayHelloSenderInterface
    {
    public function __construct(
    private readonly Mailer $mailer,
    ) {}
    public function send(string $name): void
    {
    // メールの送信
    $this->mailer->send(new SayHello($name));
    }
    }
    class SayHelloSenderInterface
    {
    public array $bindings = [
    ¥Package¥Mail¥SayHelloInterface::class =>
    ¥App¥Services¥SayHelloConclete::class,
    ];
    }
    Laravel app
    ServiceProvider Interface
    app/Mail/SayHelloConcrete.php app/Providers/AppServiceProvider.php

    View Slide

  20. 20
    Laravel
    Interface

    • app Laravel
    • lib Laravel
    • Laravel app
    • lib

    View Slide

  21. View Slide

  22. 22


    View Slide

  23. 23



    • 1

    • or



    • Issue

    View Slide

  24. 24








    • Issue

    View Slide

  25. 25
    • around





    View Slide

  26. View Slide

  27. 27

    • Laravel



    View Slide

  28. 28

    • Laravel



    How

    View Slide

  29. 29
    How
    • Why
    • Why


    View Slide