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
550
リンケージにおけるアプリケーションコードとの付き合い方とそれを支えるコミュニケーション / 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
依存パッケージの更新はコツコツが勝つコツ! / phpcon_nagoya2025
blue_goheimochi
3
200
コミュニケーションを「パス」のやりとりと捉え大切にしていること / dai-kichijojipm-2024
blue_goheimochi
2
2.8k
「手動オペレーションに定評がある」と言われた私が心がけていること / phpcon_odawara2024
blue_goheimochi
4
1.6k
芝生の障害対応・メンテナンスについて語る / ya8-2024
blue_goheimochi
1
66
「わたしたちのコード」を安定させるためにフレームワークとの距離を保つ / phperkaigi2024
blue_goheimochi
5
2.1k
コードを計測することで捉える問題点 / phpcondo2024
blue_goheimochi
5
1.1k
Laravelのコードとわたしたちのコードとの距離を保つ / phpcon2023
blue_goheimochi
1
2.1k
推測しないで、計測し、判断する! 〜カイゼンのためのステップ考察〜 / phpconfuk2023
blue_goheimochi
4
2.3k
iOS, iPadOSにもWeb Pushがきたのでさわってみた
blue_goheimochi
1
520
Other Decks in Technology
See All in Technology
ESXi で仮想化した ARM 環境で LLM を動作させてみるぞ
unnowataru
0
160
PHPで印刷所に入稿できる名札データを作る / Generating Print-Ready Name Tag Data with PHP
tomzoh
0
180
EDRの検知の仕組みと検知回避について
chayakonanaika
11
4.4k
MIMEと文字コードの闇
hirachan
2
1.4k
LINEギフトにおけるバックエンド開発
lycorptech_jp
PRO
0
210
わたしのOSS活動
kazupon
2
340
IAMポリシーのAllow/Denyについて、改めて理解する
smt7174
2
190
AWSアカウントのセキュリティ自動化、どこまで進める? 最適な設計と実践ポイント
yuobayashi
5
230
Reading Code Is Harder Than Writing It
trishagee
2
120
設計を積み重ねてシステムを刷新する
sansantech
PRO
0
150
Potential EM 制度を始めた理由、そして2年後にやめた理由 - EMConf JP 2025
hoyo
2
2k
わたしがEMとして入社した「最初の100日」の過ごし方 / EMConfJp2025
daiksy
13
4.3k
Featured
See All Featured
KATA
mclloyd
29
14k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Code Review Best Practice
trishagee
67
18k
Building Your Own Lightsaber
phodgson
104
6.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Visualization
eitanlees
146
15k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Designing for humans not robots
tammielis
250
25k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
Typedesign – Prime Four
hannesfritz
40
2.5k
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 • •