Slide 1

Slide 1 text

Symfonyと  抽象クラス Symfony Meetup Kansai #2 松藤 秀治 (2019-08-07)

Slide 2

Slide 2 text

自己紹介 ● 松藤 秀治(まつふじ ひではる) ● matsu_hide ● フリーエンジニア ● Symfonyをよく使う

Slide 3

Slide 3 text

抽象クラスとは?

Slide 4

Slide 4 text

特定の視点から対象を見たときに 導き出される型と振る舞い (自説)

Slide 5

Slide 5 text

抽象クラス 実装寄り → インスタンスとかテンプレートメソッドとか 設計寄り → 抽象とか 今日は設計寄りの話です。

Slide 6

Slide 6 text

抽象クラスは悪者? ・確かに共通処理をくくりだすという理由だけで使うと失敗しや すい。 ・でもうまくいっている例もあるはず。 ・一体何が違うんだろう?

Slide 7

Slide 7 text

[Symfonyでの使用例1] フォームタイプ

Slide 8

Slide 8 text

[Symfonyでの使用例2] バリデーター(制約)

Slide 9

Slide 9 text

[Symfonyでの使用例3] ダンプ

Slide 10

Slide 10 text

どうしてSymfony(フレームワーク)では 使われているのか?

Slide 11

Slide 11 text

AbstractType → フォームの要素をどう扱うか? Constraint → Nullや文字数の制約をどう扱うか? AbstractDumper → オブジェクトなどをどう出力するか? 解決したい問題に着目(特定の視点)

Slide 12

Slide 12 text

そうは言ってもフレームワーク は特別でしょう?

Slide 13

Slide 13 text

・ソフトウェアで問題を解決するという点でフレームワークも自分 が作るものも同じ。 ・それならフレームワークで使われている技術は自分が作るとき も有用なはず。 ・自分が作るものをフレームワークにするとしたら?という視点。

Slide 14

Slide 14 text

まとめ ● 解決したい問題に焦点をあて、必要であれば抽象クラスを 使う。(再利用される頻度と複雑さのバランスは大事。) ● 自分が作るものをフレームワークにするとしたら?という 視点は大事。 ● 抽象クラスだけでなくさまざまな技術は問題を解決する(捉 える)ためにある。