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
Symfonyと抽象クラス
Search
matsu_hide
August 07, 2019
Programming
1
310
Symfonyと抽象クラス
matsu_hide
August 07, 2019
Tweet
Share
Other Decks in Programming
See All in Programming
PipeCDのプラグイン化で目指すところ
warashi
1
290
ニーリーにおけるプロダクトエンジニア
nealle
0
880
すべてのコンテキストを、 ユーザー価値に変える
applism118
4
1.4k
TypeScriptでDXを上げろ! Hono編
yusukebe
2
440
High-Level Programming Languages in AI Era -Human Thought and Mind-
hayat01sh1da
PRO
0
830
初学者でも今すぐできる、Claude Codeの生産性を10倍上げるTips
s4yuba
16
12k
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
410
チームで開発し事業を加速するための"良い"設計の考え方 @ サポーターズCoLab 2025-07-08
agatan
1
450
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
550
CDK引数設計道場100本ノック
badmintoncryer
1
250
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
160
「テストは愚直&&網羅的に書くほどよい」という誤解 / Test Smarter, Not Harder
munetoshi
0
190
Featured
See All Featured
Producing Creativity
orderedlist
PRO
346
40k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Bash Introduction
62gerente
613
210k
Docker and Python
trallard
44
3.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
6
320
We Have a Design System, Now What?
morganepeng
53
7.7k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
For a Future-Friendly Web
brad_frost
179
9.8k
Adopting Sorbet at Scale
ufuk
77
9.5k
Faster Mobile Websites
deanohume
307
31k
Transcript
Symfonyと 抽象クラス Symfony Meetup Kansai #2 松藤 秀治 (2019-08-07)
自己紹介 • 松藤 秀治(まつふじ ひではる) • matsu_hide • フリーエンジニア • Symfonyをよく使う
抽象クラスとは?
特定の視点から対象を見たときに 導き出される型と振る舞い (自説)
抽象クラス 実装寄り → インスタンスとかテンプレートメソッドとか 設計寄り → 抽象とか 今日は設計寄りの話です。
抽象クラスは悪者? ・確かに共通処理をくくりだすという理由だけで使うと失敗しや すい。 ・でもうまくいっている例もあるはず。 ・一体何が違うんだろう?
[Symfonyでの使用例1] フォームタイプ
[Symfonyでの使用例2] バリデーター(制約)
[Symfonyでの使用例3] ダンプ
どうしてSymfony(フレームワーク)では 使われているのか?
AbstractType → フォームの要素をどう扱うか? Constraint → Nullや文字数の制約をどう扱うか? AbstractDumper → オブジェクトなどをどう出力するか? 解決したい問題に着目(特定の視点)
そうは言ってもフレームワーク は特別でしょう?
・ソフトウェアで問題を解決するという点でフレームワークも自分 が作るものも同じ。 ・それならフレームワークで使われている技術は自分が作るとき も有用なはず。 ・自分が作るものをフレームワークにするとしたら?という視点。
まとめ • 解決したい問題に焦点をあて、必要であれば抽象クラスを 使う。(再利用される頻度と複雑さのバランスは大事。) • 自分が作るものをフレームワークにするとしたら?という 視点は大事。 • 抽象クラスだけでなくさまざまな技術は問題を解決する(捉 える)ためにある。