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
リンケージにおけるアプリケーションコードとの付き合い方とそれを支えるコミュニケーション / drobe_pixiv_linkage-20230905
Search
blue_goheimochi
September 05, 2023
Technology
1
390
リンケージにおけるアプリケーションコードとの付き合い方とそれを支えるコミュニケーション / 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_odawara2024
blue_goheimochi
2
560
芝生の障害対応・メンテナンスについて語る / ya8-2024
blue_goheimochi
1
11
「わたしたちのコード」を安定させるためにフレームワークとの距離を保つ / phperkaigi2024
blue_goheimochi
5
1.4k
コードを計測することで捉える問題点 / phpcondo2024
blue_goheimochi
4
840
Laravelのコードとわたしたちのコードとの距離を保つ / phpcon2023
blue_goheimochi
1
1.7k
推測しないで、計測し、判断する! 〜カイゼンのためのステップ考察〜 / phpconfuk2023
blue_goheimochi
3
1.8k
iOS, iPadOSにもWeb Pushがきたのでさわってみた
blue_goheimochi
1
320
計測できるレガシーさを捉え、コード改善に対処する / phperkaigi2023
blue_goheimochi
0
1.7k
PHPバージョンアップのための依存ライブラリとの付き合い方 / phpcon2022
blue_goheimochi
1
2.4k
Other Decks in Technology
See All in Technology
Domain-driven Design: A Complete Example
ewolff
2
280
QA経験のないエンジニアリング マネージャーがQAのカジュアル面談に出て 苦労していること・気づいたこと / scrum fest niigata 2024
yoshikiiida
2
690
Real World Type Puzzle and Code Generation
yukukotani
4
650
大規模言語モデル (LLM)における低精度数値表現
pfn
PRO
3
880
株式会社EventHub・エンジニア採用資料
eventhub
0
2.1k
AWS CLIの起動が重くてつらいので aws-sdk-client-go を書いた / kamakura.go#6
fujiwara3
6
3.5k
The depthes of profiling Ruby - RubyKaigi 2024
osyoyu
1
320
Qiitaアクセシビリティ史 ~ Qiitaの歩んできた道 ~
degudegu2510
0
120
ワールドカフェ再び、そしてロール・ツール群の開発 / World Café Again, and Development of Suites of Roles and Tools
ks91
PRO
0
140
Laboratories in Science and Technology: Deep Neural Networks
keio_smilab
PRO
3
180
From here to resilience - a travel guide
ufried
1
170
生成AIと産業向けソフトウェアの自動生成 〜 ハノーバーメッセ2024より〜
kioto
2
450
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
22
1.6k
How to train your dragon (web standard)
notwaldorf
76
5.2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
22
1.4k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Designing with Data
zakiwarfel
96
4.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
21
2k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
How GitHub (no longer) Works
holman
305
140k
Making the Leap to Tech Lead
cromwellryan
125
8.6k
How to name files
jennybc
65
94k
The Invisible Customer
myddelton
114
12k
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 • •