Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
リンケージにおけるアプリケーションコードとの付き合い方とそれを支えるコミュニケーション ...
Search
blue_goheimochi
September 05, 2023
Technology
1
560
リンケージにおけるアプリケーションコードとの付き合い方とそれを支えるコミュニケーション / drobe_pixiv_linkage-20230905
DROBE Engineer Night #5 質とスピードを追求する開発チームでの取り組みの登壇資料です。
https://drobe.connpass.com/event/292061/
blue_goheimochi
September 05, 2023
Tweet
Share
More Decks by blue_goheimochi
See All by blue_goheimochi
ISUCONにPHPで挑み続けてできるようになっ(てき)たこと / phperkaigi2025
blue_goheimochi
0
130
依存パッケージの更新はコツコツが勝つコツ! / phpcon_nagoya2025
blue_goheimochi
3
290
コミュニケーションを「パス」のやりとりと捉え大切にしていること / dai-kichijojipm-2024
blue_goheimochi
2
3k
「手動オペレーションに定評がある」と言われた私が心がけていること / phpcon_odawara2024
blue_goheimochi
4
1.7k
芝生の障害対応・メンテナンスについて語る / ya8-2024
blue_goheimochi
1
74
「わたしたちのコード」を安定させるためにフレームワークとの距離を保つ / phperkaigi2024
blue_goheimochi
5
2.2k
コードを計測することで捉える問題点 / phpcondo2024
blue_goheimochi
5
1.1k
Laravelのコードとわたしたちのコードとの距離を保つ / phpcon2023
blue_goheimochi
1
2.1k
推測しないで、計測し、判断する! 〜カイゼンのためのステップ考察〜 / phpconfuk2023
blue_goheimochi
4
2.3k
Other Decks in Technology
See All in Technology
コンソールで学ぶ!AWS CodePipelineの機能とオプション
umekou
2
100
PostgreSQL Unconference #52 pg_tde
nori_shinoda
0
190
Redefine_Possible
upsider_tech
0
230
3/26 クラウド食堂LT #2 GenU案件を通して学んだ教訓 登壇資料
ymae
1
190
ドメインイベントを活用したPHPコードのリファクタリング
kajitack
2
1.1k
OCI見積もり入門セミナー
oracle4engineer
PRO
0
110
数百台のオンプレミスのサーバーをEKSに移行した話
yukiteraoka
0
630
ルートユーザーの活用と管理を徹底的に深掘る
yuobayashi
6
700
初めてのPostgreSQLメジャーバージョンアップ
kkato1
0
380
一人QA時代が終わり、 QAチームが立ち上がった話
ma_cho29
0
280
Go製のマイグレーションツールの git-schemalex の紹介と運用方法
shinnosuke_kishida
1
370
RAGの基礎から実践運用まで:AWS BedrockとLangfuseで実現する構築・監視・評価
sonoda_mj
0
420
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
51
2.4k
Code Review Best Practice
trishagee
67
18k
The Pragmatic Product Professional
lauravandoore
33
6.5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
16
1.1k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Documentation Writing (for coders)
carmenintech
69
4.7k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.3k
Transcript
2023.09.05 Yuta Ohashi DROBE Engineer Night #5
/ @blue_goheimochi PHP(Laravel), JavaScript(Vue.js/Nuxt.js), , , , , PUBG MOBILE,
Mission
4 • CTO • : 7 • : 7 •
: 15 • PHPer
5 • Laravel • React • PostgreSQL • AWS
None
7 • • Laravel • • • •
None
9 Laravel • Eloquent • Facede • • Artisan •
10 Laravel • • Laravel Way 1 • • •
•
11 Laravel • • Laravel • Laravel • Laravel •
• • Interface
12 Laravel Laravel Laravel
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
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
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
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
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
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
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
20 Laravel Interface • • app Laravel • lib Laravel
• Laravel app • lib •
None
22 • •
23 • • • • 1 • • or •
• • • Issue
24 • • • • • • • • •
Issue •
25 • around • • • • •
None
27 • • Laravel • • •
28 • • Laravel • • • How
29 How • Why • Why • •