2014/01/25(土)に開かれたNagoya.php vol3に行ってきました!
会場提供はFabrica Communicationsさま。ありがとうございますm(_ _)m
テーマは、「生PHPでプログラムを作ってみよまい!」。
フレームワークは使わず、DBや画面も考慮せず、機能の中核(いわゆるロジック?)だけを皆で作ってみよう、というものでした。
自己紹介の後、さっそく
@hidenorigotoさんが提示した要件リストを見ながら皆で考えます。
まずホワイトボードに登場人物(クラス)を書き出しました。
あれも要る・これは要らないなどと意見を出し合い、必要そうなものに絞るのですが、なかなか議論がまとまりません。
PHPの勉強会なのに、PHPのコードを書かずに延々一時間ほどホワイトボードと日本語だけを捏ね回していました。
ついつい実際の実装(実際のRDBのためのテーブル設計)に思考が引っ張られがちな私が、飽くまでもモデリングに集中しようとする皆を混乱させるという一幕もあり…orz
次に、ユースケースを想定して機能を足して行くことにします。
先に検討した必要なクラス群を作り、それぞれのクラスのプロパティとして何が必要か、また皆で意見を出し合って、プロパティとgetter/setterを作って行きます。phpstormのgetter/setter自動生成がphpstorm未経験な人達の目を奪っていました。
機能を追加していくに当たって、ActiveRecordパターンで行くか?Managerパターンで行くか?というところでは、ActiveRecordパターンを選択。(早々にスパゲティ化したのはこれがまずかったかも?)
実装は「〜〜を〜〜して」と口頭で実装内容を言い、
@hidenorigotoさんがその通りにコードにして行くという方式で進めました。
同じ一日の何時間も経ってない間に、クラスの表すもの(クラスの責務)について混乱が見られたり、コードがスパゲティ化したりと「あるある」感の漂うところで、機能が全て完成しないまま時間切れとなってしまいました。
最後の方に
@hidenorigotoさんがチラ見せしてくれた、単一のUseCaseごとに単一のクラスを作っているコード群は衝撃的でした。
合間合間で、普段の開発事情や使用ソフトについて質問し合ったり教え合ったり。ライブラリやソフトウェアについて「○○がおすすめです使いましょう(ドヤア」という発表こそなかったのですが、飛び交った情報量は結構多かった気がします。
特に、WindowsでVagrantを使って開発しているのが私一人ということで、更にphpstorm使用者というのもあり、私はかなり出しゃばって喋りすぎました…。
家庭の事情で短時間しか参加できませんでしたが、懇親会でのぶっちゃけトークもとても楽しかったです^^
そして、懇親会離脱後三十分で自宅に着いて、やっぱり会場と自宅が近いのはいいなぁと思ったのでした。(遠くからいらした方もいたので、遠くの方には申し訳ないのですが…)
2014年は名古屋のPHPコミュニティがもっと盛り上がって、気軽に行ける近くの勉強会やイベントが増えたら嬉しいなー…。