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
安いハードウェアでVulkan
fadis
0
640
CSC307 Lecture 15
javiergs
PRO
0
260
AI活用のコスパを最大化する方法
ochtum
0
250
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.1k
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.5k
ロボットのための工場に灯りは要らない
watany
11
3k
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
120
技術検証結果の整理と解析をAIに任せよう!
keisukeikeda
0
130
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
530
Codex の「自走力」を高める
yorifuji
0
1.3k
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
150
AI時代の脳疲弊と向き合う ~言語学としてのPHP~
sakuraikotone
1
1.2k
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
432
66k
Evolving SEO for Evolving Search Engines
ryanjones
0
160
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
74
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Un-Boring Meetings
codingconduct
0
230
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
290
Thoughts on Productivity
jonyablonski
75
5.1k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
110
How to Talk to Developers About Accessibility
jct
2
160
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Transcript
Symfonyと 抽象クラス Symfony Meetup Kansai #2 松藤 秀治 (2019-08-07)
自己紹介 • 松藤 秀治(まつふじ ひではる) • matsu_hide • フリーエンジニア • Symfonyをよく使う
抽象クラスとは?
特定の視点から対象を見たときに 導き出される型と振る舞い (自説)
抽象クラス 実装寄り → インスタンスとかテンプレートメソッドとか 設計寄り → 抽象とか 今日は設計寄りの話です。
抽象クラスは悪者? ・確かに共通処理をくくりだすという理由だけで使うと失敗しや すい。 ・でもうまくいっている例もあるはず。 ・一体何が違うんだろう?
[Symfonyでの使用例1] フォームタイプ
[Symfonyでの使用例2] バリデーター(制約)
[Symfonyでの使用例3] ダンプ
どうしてSymfony(フレームワーク)では 使われているのか?
AbstractType → フォームの要素をどう扱うか? Constraint → Nullや文字数の制約をどう扱うか? AbstractDumper → オブジェクトなどをどう出力するか? 解決したい問題に着目(特定の視点)
そうは言ってもフレームワーク は特別でしょう?
・ソフトウェアで問題を解決するという点でフレームワークも自分 が作るものも同じ。 ・それならフレームワークで使われている技術は自分が作るとき も有用なはず。 ・自分が作るものをフレームワークにするとしたら?という視点。
まとめ • 解決したい問題に焦点をあて、必要であれば抽象クラスを 使う。(再利用される頻度と複雑さのバランスは大事。) • 自分が作るものをフレームワークにするとしたら?という 視点は大事。 • 抽象クラスだけでなくさまざまな技術は問題を解決する(捉 える)ためにある。