Symfony Meetup Kansai #1 に参加してきました

Symfony Meetup Kansai #1 に参加してきました。

symfony-kansai.connpass.com

一般枠の席をちょっとでもをあけようとブログ書きます枠でエントリーしたので、22日の水曜日からだいぶ空いてしまいましたが、いいかげんブログ書きます。

関西で Symfony 系のイベントは長い間なくて、無いところに立ち上げって感じのスタートなのですが、初回からすごかったです。何がって、同じ日に東京では Laravel のミートアップが開催されていたんですが、なんと関西の方に東京からの参加者が!! 名古屋からも日帰りで猛者が集い、和歌山からも(関西の人でないとわからないかもですが、和歌山とか三重って実は時間だけでいえば名古屋より遠いです)!

メインセッションは、EC-CUBE の 4.x ですっかり Symfony になってどうなったかという話、Abstract は邪悪な文明(滅ぼさなければ)という話でした。

EC-CUBE は 3.0 を作るとき Silex を選択した頃を知ってたり、社内勉強会で PhpStorm のお話をさせてもらったとき、作ってる人の前でインスペクションの黄色にツッコミ入れるサンプルコードとして使ったり、使ってないけどちょっと縁があるので感慨深いです。

Symfony のシーケンス図すごかったです。何やってるかとその処理順序がわかってないと、構成 YAML に何を書くべきかちゃんと理解できないと思うんですが、まさにその、全容をちゃんと知るのにバッチリな資料じゃないかと思いました。

qiita.com

Abstract 邪悪話は、すっかり作ってから五月雨式に今の設計覆すような要求出すなんて、そのプロジェクト管理のほうが邪悪じゃね? などと思いながらもw 最初はモノリシックにできると判断した箇所に、場合分けが増える複雑な問題が入ってきたとき、工数をケチって継承による差分プログラミングを安易に選択するなという、まっとうな話です。

で、トークのストーリー立てとしては、まったく知らなかった要求が後から出て来て、みたいになっててうーん、となるところですが、考えたら、アジャイル開発のひとつのタスクカードのスコープっていうのは、「会員登録できる」「パスワードをハッシュにする」「状況に適したメッセージにする」といった単位じゃないかと思ったんですね。意図的にそういうふうに区切って意識する。

機能の全容はなんとなく予想できたとしても、アジャイルでやるならそのタスクカードに対してのみ集中して工数を取るべき。そういう意味で、このタスクカードになりそうな個々の問題をひとつひとつ安定して処理していけるような設計をやる意識こそが、本当はアジャイルに必要なスキルで、あのアジャイル奥義本が言うアジャイルというのは、そういう意味なんじゃないかなと思いました。

アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技

アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技

今回参加してみて、実は自分がいちばん良かったなと思ったのが、LT や雑談のなかで出てきた感覚で「Symfony を使ったおかげで、自分で設計して問題を解決できた」といった雰囲気にみんなが自然に共感しているように見えたことです。フレームワークの勉強会ってどうしても、「フレームワークの思想に沿った開発手法」「フレームワークを使ったプロジェクト構成こうしたら業務に合った」みたいになってしまいがちです。それが良いとか悪いとかではなくて、Symfony を使うと、自分の設計をやるときフレームワーク固有の思想がぜんぜん影響しない、というか、そこに直接影響しないことが Symfony の思想というか...

「守」「破」「離」とか言うと語弊があるんですが、まあ置き換えていうと、フレームワークを中心にしたら、最初に守るのがフレームワークで、がんばって最後に自分のアーキテクチャに持っていくイメージ。それでいくと、いきなり自分で設計って、それ逆なんじゃないのと思うかもしれないけど、どんな優秀な人でも最初はフレームワーク初心者なんだから、フレームワークとは関係ない設計原則を共通認識としてプログラムを書くのが「守」で、まあでも現実動かさないと意味ないので、イレギュラー要素としてライブラリのうまい使い方みたいな技術的解決があるという、なんかそういうの、すぐ動くのが最初に来なくてキャッチーではないかもだけど、縛られず自由に学びを活かせていいですよね。

何言ってんだかですね。

とりあえず、なんだかその日のノリでこんなことになって、

え、あと LT する人いないいですかニヤニヤ、って空気で引き下がるのはかっこ悪いから自分も LT しました。資料はセッション中に Apple Pencil で作りました。

speakerdeck.com

なんと臨場感のあるスライドでしょうw 説明しないと意味わかりませんね。要するに、単一継承でもなんでも、うまいこと利用できるものは利用してやれということと、すべてのプロダクションコードに正しさを求めるのはきつい (そもそも、大げさな正しさとソフトウェアの変化しやすさは相反する) ので、ここに集まるぐらいの人なら「そういうとりあえず具合を局所的に閉じ込めてもいいじゃん」と言っても大丈夫だよね、ってことです。

そのとき、もっとちゃんとした勉強会ではダメですが、と言ってしまってすみませんなんですが、伝えたかったのは「想定スキルのピンキリが激しくて誰がどんな解釈するかわからない、大人数カンファレンスの場では言いませんが、みなさんの顔が見えるこういう良い場なので」という気持ちで、はい。あ、回を重ねるごとに、もっと大きなイベントにしていきたいですね。はい。

長らくおまたせしました感のある2019年の Symfony コミュニティ、さあこれからどうなっていくのか、じつに楽しみですね。

f:id:tanakahisateru:20190525235042p:plain