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
コミュニケーションを「パス」のやりとりと捉え大切にしていること / dai-kichijojipm-2024
blue_goheimochi
2
2.8k
「手動オペレーションに定評がある」と言われた私が心がけていること / phpcon_odawara2024
blue_goheimochi
4
1.6k
芝生の障害対応・メンテナンスについて語る / ya8-2024
blue_goheimochi
1
64
「わたしたちのコード」を安定させるためにフレームワークとの距離を保つ / 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
計測できるレガシーさを捉え、コード改善に対処する / phperkaigi2023
blue_goheimochi
0
2.1k
Other Decks in Technology
See All in Technology
組織貢献をするフリーランスエンジニアという生き方
n_takehata
1
1.1k
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
1
120
30分でわかる『アジャイルデータモデリング』
hanon52_
9
2.3k
CZII - CryoET Object Identification 参加振り返り・解法共有
tattaka
0
260
地方拠点で エンジニアリングマネージャーってできるの? 〜地方という制約を楽しむオーナーシップとコミュニティ作り〜
1coin
1
190
現場で役立つAPIデザイン
nagix
30
11k
PL900試験から学ぶ Power Platform 基礎知識講座
kumikeyy
0
110
第13回 Data-Centric AI勉強会, 画像認識におけるData-centric AI
ksaito_osx
0
360
トラシューアニマルになろう ~開発者だからこそできる、安定したサービス作りの秘訣~
jacopen
2
1.6k
データの品質が低いと何が困るのか
kzykmyzw
6
1.1k
リーダブルテストコード 〜メンテナンスしやすい テストコードを作成する方法を考える〜 #DevSumi #DevSumiB / Readable test code
nihonbuson
11
6.3k
君も受託系GISエンジニアにならないか
sudataka
2
380
Featured
See All Featured
Side Projects
sachag
452
42k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Statistics for Hackers
jakevdp
797
220k
What's in a price? How to price your products and services
michaelherold
244
12k
How to train your dragon (web standard)
notwaldorf
90
5.8k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
Site-Speed That Sticks
csswizardry
3
370
Agile that works and the tools we love
rasmusluckow
328
21k
Become a Pro
speakerdeck
PRO
26
5.1k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
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 • •