はらへり日記

腹に弾丸

PHPカンファレンス関西 2018に登壇しました

登壇しました

2018.kphpug.jp

インターフェース再入門というタイトルで発表してきました

スライド

何について話したか

広義のインターフェース(ユーザインターフェースや現実世界のインターフェース)の話から始めて、言語機能としてのInterfaceの話をしました。

  • Interfaceを使うことのメリット
  • Interfaceを評価するときの様々な指標
  • 実際にInterfaceをデザインする方法

3章立てで発表したのですが1, 2章の一部は以前学んだ知恵の再まとめ、3章はそれを受けての個人的な私見を混ぜて発表しました。

学んだ知識のほとんどは以下の本から取り入れています。

古い本なので今だと違うのでは、というものもありますが名著なのでぜひご一読を。

Amazon: インターフェイス指向設計 ―アジャイル手法によるオブジェクト指向設計の実践

30分で話すにはちょっと難しかった

スライドのアウトラインを考えながら途中で気づいたのは「インターフェースを30分で語るの、不可能では」ということでした。

理由としては広義のインターフェースを語るだけでも30分以上語れてしまうこと。

言語の機能としてのInterfaceを語るとどの場面でInterfaceを使うべきか、つまり抽象化をするべきかというモジュール間の関係性の設計に踏み込みたくなってしまうこと(これも30分以上かかる)。

そしてそのうえで現場に持ち帰れる実践的なTipsを語ろうとするとおそらく一晩飲めてしまうと思ったからです。

なので今回は

  • 自分の学んだものの中でより広範囲に活かせる考え方を伝える
  • 設計的に理想を突き詰める観点よりも現場でこういうこと、ない?という視点でtipsを伝える

ということにフォーカスしました。

なので意図的にいくつかの行間が抜いていて、良い発表になるかどうか不安だったのですがトークを聴いた人には概ね好評でよかったです。

(物申すマンいたら待ってます!)

抜けてしまった主な行間

  • インターフェースの実装パターンとトレードオフ
  • Designed by Contractsとインターフェースの関係性
  • 抽象化すべき場面の考察
  • 継承と抽象のすみ分け方

個人的にはDesigned by Contractsの話をしたかったのですがInterfaceを実装するときの話にまたがってしまうので泣く泣く抜きました。

あとはもし話すとしても@t_wadaさんが以前発表されていたものの完成度が高かったのでそっちを見てくれたほうが理解できるのでおすすめです、という気持ちもありました。

色んな人と話してて気づいたのは継承と抽象をどう使い分けるか、ということで迷ってる人が多いみたいだったのでそこはちょっと盲点でした。

そのあたりは自分もまだ考察しきれていないのでもっと深掘りしてどっかでお話できたらいいなと思います。

PHPカンファレンス関西

関西のPHPコンは初だったのでとても楽しかったです。

福岡とか東京よりも規模感がちょうどよくて聴衆との距離感がよかった。

直接の知り合いでなくてもちょっとずつ知りあいづてで「あ、あの人と同じ職場の!」みたいなのが増えて嬉しい。

来年も参加できるよう精進します!