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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
matsu_hide
August 07, 2019
Programming
320
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Symfonyと抽象クラス
matsu_hide
August 07, 2019
Other Decks in Programming
See All in Programming
dRuby over BLE
makicamel
2
330
Spec-Driven Development with AI-Agents: From High-Level Requirements to Working Software
antonarhipov
2
470
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
100
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
3.9k
Modding RubyKaigi for Myself
yui_knk
0
910
CLIであることを活かしたGitHub Copilot CLI活用術 / GitHub Copilot CLI Pro Tips & Tricks
nao_mk2
1
1.2k
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
6
850
Vite+ Unified Toolchain for the Web
naokihaba
0
190
Oxcを導入して開発体験が向上した話
yug1224
4
300
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
3.6k
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
150
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.3k
Featured
See All Featured
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
480
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
360
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
380
Measuring & Analyzing Core Web Vitals
bluesmoon
9
860
Tell your own story through comics
letsgokoyo
1
950
Google's AI Overviews - The New Search
badams
0
1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Transcript
Symfonyと 抽象クラス Symfony Meetup Kansai #2 松藤 秀治 (2019-08-07)
自己紹介 • 松藤 秀治(まつふじ ひではる) • matsu_hide • フリーエンジニア • Symfonyをよく使う
抽象クラスとは?
特定の視点から対象を見たときに 導き出される型と振る舞い (自説)
抽象クラス 実装寄り → インスタンスとかテンプレートメソッドとか 設計寄り → 抽象とか 今日は設計寄りの話です。
抽象クラスは悪者? ・確かに共通処理をくくりだすという理由だけで使うと失敗しや すい。 ・でもうまくいっている例もあるはず。 ・一体何が違うんだろう?
[Symfonyでの使用例1] フォームタイプ
[Symfonyでの使用例2] バリデーター(制約)
[Symfonyでの使用例3] ダンプ
どうしてSymfony(フレームワーク)では 使われているのか?
AbstractType → フォームの要素をどう扱うか? Constraint → Nullや文字数の制約をどう扱うか? AbstractDumper → オブジェクトなどをどう出力するか? 解決したい問題に着目(特定の視点)
そうは言ってもフレームワーク は特別でしょう?
・ソフトウェアで問題を解決するという点でフレームワークも自分 が作るものも同じ。 ・それならフレームワークで使われている技術は自分が作るとき も有用なはず。 ・自分が作るものをフレームワークにするとしたら?という視点。
まとめ • 解決したい問題に焦点をあて、必要であれば抽象クラスを 使う。(再利用される頻度と複雑さのバランスは大事。) • 自分が作るものをフレームワークにするとしたら?という 視点は大事。 • 抽象クラスだけでなくさまざまな技術は問題を解決する(捉 える)ためにある。