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
320
1
Share
Symfonyと抽象クラス
matsu_hide
August 07, 2019
Other Decks in Programming
See All in Programming
WebAssembly を読み込むベストプラクティス 2026年春版 / Best Practices for Loading WebAssembly (Spring 2026)
petamoriken
5
1.1k
Agentic UI beyond Chats Architecture Patterns & Open Standards @ngMunich 05/2026
manfredsteyer
PRO
0
120
inferと仲良くなる10分間
ryokatsuse
1
140
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
140
開発体験を左右するライブラリの API 設計 - GraphQL スキーマ構築ライブラリから考える #tskaigi
izumin5210
2
280
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
460
Oxlintはいかにしてtsgolintのlint ruleを呼び出しているのか
syumai
1
360
Agentic AI & UI: Arcitecture, HITL, Emerging Standards
manfredsteyer
PRO
0
120
20260514_its_the_context_window_stupid.pdf
heita
0
1.1k
ソースコード→AST→オペコード、の旅を覗いてみる
o0h
PRO
1
140
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
1
330
ふにゃっとしない名前の付け方 〜哲学で茹で上げる、コシのあるソフトウェア設計〜
shimomura
0
130
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
830
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
220
So, you think you're a good person
axbom
PRO
2
2k
The untapped power of vector embeddings
frankvandijk
2
1.7k
New Earth Scene 8
popppiees
3
2.2k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
450
Code Reviewing Like a Champion
maltzj
528
40k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
790
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
200
For a Future-Friendly Web
brad_frost
183
10k
Transcript
Symfonyと 抽象クラス Symfony Meetup Kansai #2 松藤 秀治 (2019-08-07)
自己紹介 • 松藤 秀治(まつふじ ひではる) • matsu_hide • フリーエンジニア • Symfonyをよく使う
抽象クラスとは?
特定の視点から対象を見たときに 導き出される型と振る舞い (自説)
抽象クラス 実装寄り → インスタンスとかテンプレートメソッドとか 設計寄り → 抽象とか 今日は設計寄りの話です。
抽象クラスは悪者? ・確かに共通処理をくくりだすという理由だけで使うと失敗しや すい。 ・でもうまくいっている例もあるはず。 ・一体何が違うんだろう?
[Symfonyでの使用例1] フォームタイプ
[Symfonyでの使用例2] バリデーター(制約)
[Symfonyでの使用例3] ダンプ
どうしてSymfony(フレームワーク)では 使われているのか?
AbstractType → フォームの要素をどう扱うか? Constraint → Nullや文字数の制約をどう扱うか? AbstractDumper → オブジェクトなどをどう出力するか? 解決したい問題に着目(特定の視点)
そうは言ってもフレームワーク は特別でしょう?
・ソフトウェアで問題を解決するという点でフレームワークも自分 が作るものも同じ。 ・それならフレームワークで使われている技術は自分が作るとき も有用なはず。 ・自分が作るものをフレームワークにするとしたら?という視点。
まとめ • 解決したい問題に焦点をあて、必要であれば抽象クラスを 使う。(再利用される頻度と複雑さのバランスは大事。) • 自分が作るものをフレームワークにするとしたら?という 視点は大事。 • 抽象クラスだけでなくさまざまな技術は問題を解決する(捉 える)ためにある。