あざらし備忘録。

音ゲー好きなウェッブエンジニアがいろいろ思った事やった事を書いていくブログです

行った気になれるSymfony勉強会#10総集編[PHP][Symfony][Silex]

昨日は日本Symfonyユーザー会主催のSymfony勉強会 #10に参加してきました!

Symfony勉強会 #10 - 日本Symfonyユーザー会 | Doorkeeper

当日の流れとしては

  • Silexについてのワークショップ
  • LT
  • 懇親会

という感じでした。

Silexについてのワークショップ

今回はSymfony勉強会ですが、弟的な存在であるSilexについてのワークショップでした。

Homepage - Silex - The PHP micro-framework based on Symfony2 Components

TOPページ - Silex ユーザーガイド

題材

ワークショップの題材としては

Creating a simple REST application with Silex.

こちらのサイト、Creating A Simple REST Application With Sliex の写経・コード読みがメインでした。

写経やコード読みをするなかで、テスティング関連の話も交わったり、Symfonyのルーティングとの違いや、SilexへSymfonyのルーティングを組み込む方法などのはなしも飛び交い、有意義でした:)

成果

写経+α(写経だけでは実は全然上手く行かないトラップが仕掛けられていたのでw)をしていったワークショップの成果をgithubに一応上げておきました。

gomachan46/symfony10_study · GitHub

LT

LTは以下の皆さんが行って下さいました。(Doorkeeperより抜粋)

  • 4年ほどSilexを使ってきた経験の話 (@Tetsujin)
  • 1000万ユーザーのソーシャルゲームのバックエンドにSymfonyを使った話(仮) (@modeelf)
  • EventListener使いこなし術 (@okapon_pon)
  • そろそろComposerについてひとこと言っておくか (@_nishigori)
  • Symfony2 を drone.io でCI する (@HideyukiTakei)
  • パーフェクトRailsで個人的に良かったところ(仮) (@tdakak)
  • Symfonyでの実装パターン、のような話 (@hidenorigoto)
  • DBマイグレーション管理どうしてますか?(@brtriver)

4年ほどSilexを使ってきた経験の話 (@Tetsujin)

マイクロフレームワークを使っていくと結局マイクロにはなるわけではなくどんどんど大きくなっていくので、自分たちで自由に拡張していけるのが面白いと感じたり上手く拡張して付き合っていけるようなチームだと合うんだろうなぁと感じました。

でもそれが結局オレオレSymfonyに近いような形になってしまうとパフォーマンスやドキュメント量、疎結合度等どんどんただの劣化版Symfonyになってしまう思うのでここだって言えるような自分たちの尖りをつけるくらいの気持ちで使わないと活かせないのかなぁとか聞いていて感じたりしました。

Silex-Skeltonに乗って開発を行うのはすごく良いなぁ、と感じました!

それ、SymfonySEで良くね?と言われないような規模で使ったり拡張の仕方をしたりして長期的に使うとしたら見ていきたい。

でもそういった巨大化するニオイがするならやっぱり自分ならSilexかSymfonyかと言ったらSymfonyにするかなーというのが今の感触でした。

Silexにはもっとlight weightな所で真価を発揮していただきたいかな、とw

長年付き合ってきてのお話、とてもためになりました。ありがとうございました!

1000万ユーザーのソーシャルゲームのバックエンドにSymfonyを使った話(仮) (@modeelf)

エンジニアただ肉に会場が沸いてました!wぜひ活用させていただきたいです><

ただ肉 - エンジニアがただで焼き肉を食べるサービス

Symfony1.0系を使いつづけていくという非常にマニアックなお話でしたw

熱いSymfony1.0系愛を感じましたw

バージョンアップする気がないから後方互換とか迷わない!wという振り切った意見、よかったですw

EventListener使いこなし術 (@okapon_pon)

SymfonyのEventListenerを上手く使っていく、非常に有益なお話でした!

再利用しづらかったりテストしづらかったりするので、Controllerにbeforeメソッド等で書くのではなく、その前にEventListenerで仕留めてしまおうよ、というお話でした。

この辺りをEventListenerでさばいてあげるときれいに処理がまとまりそう。

ぜひ試してみたい!!この辺りは良い話を聞けたので要調査したいなぁ。

そろそろComposerについてひとこと言っておくか (@_nishigori)

非常にセンスの良い画像のチョイスでとても楽しいスライドでしたw本当素晴らしいw

Composerはまだまだalpha版なのでバージョン固定して利用する等して気をつけて付き合っていかねば...

Composerは便利だけどまだまだ至らないところもあるし何も考えずに使っていると苦労するから本当気をつけよう...w

Can we get an 1.0.0-alpha9 release? :) が気になった人はコメントを増やしてこのissueを盛り上げていきましょうw

Symfony2 を drone.io でCI する (@HideyukiTakei)

drone.ioを使ってCIしていくお話でした。

drone.io自体知らなかったので勉強になりました...!

Continuous Integration · drone.io

travisCIと異なりgithub以外のリポジトリに対してもCIできるということで、使える幅は広そうです。

このあたりをdockerと組み合わせて遊ぶと楽しそう。

Drone and Docker, Open Source CI · drone.io

パーフェクトRailsで個人的に良かったところ(仮) (@tdakak)

割と最近出たパーフェクトRuby on Railsについての感想をベースとして、SymfonyRailsの対比や若者のRails離れ(?w)のお話でした。

とっても絵が可愛い+わかりやすくて良かったです!ありがとうございました!

パーフェクトRails、買おうかなーと思いつつまだ買えないでいたので、これを機に買おうと思います( ¯•ω•¯ )

RailsSymfonyなど大きいFWでは初心者向けチュートリアルの一歩先で躓きがち、パRailsはそこをカバーできる良い本」との事だったので、楽しみです!

確かに大きなフレームワークは強力がゆえにハードルがとても高くなるように感じます。(中のコードを追えば追うほど)

だからそのあたりを上手く付き合えるようにするサポートがあるとかなり一歩目が早く踏み出せそうだなと感じています。

Rubyは最近あまり触れてないので久々にRuby系の記事を書こうと思いました:-)

Symfonyでの実装パターン、のような話 (@hidenorigoto)

非常にためになるお話ありがとうございましたmm

EntityとRepositoryの2つだけだとどうしても実装が集中してしまう、そこで

  • specification (仕様) パターン
  • criteria (検索条件) パターン

という2人の役者をEntityとRepositoryに加え参加させることで分散させようとする実装パターンのお話でした。

  • 静的な条件 Entity + specification
  • 動的な条件 Repository + Criteria

仕様であるspecificationは全てサービス化させておいてDIしてしまって、必要に応じて扱う。

使ってみているサンプル等があればとても頭に入りやすそうだけれどないかなぁ...

まだまだ勉強勉強です:-(

Symfony温泉合宿のお話もありました!めっちゃ行きたい!w

めぐり合わせが良ければぜひ行きたいなと思っておりますのでよろしくお願いしますmm

http://cdn-ak.f.st-hatena.com/images/fotolife/j/ja9/20110727/20110727210727.jpg

途中出てきたこの画像で笑ってしまったw

DBマイグレーション管理どうしてますか?(@brtriver)

トリは我らが@brtriverさんのお話でした!←

端的に言うと、DBマイグレーション、downいりますか?といったお話でした。 本番でdownできるケースなんてまぁない(そこにはすでに生きているデータがある)ので、だったらそもそもdown出来る機能なくていいよね、という感じでした。

いちいちdown時の挙動書くのもめんどくさいしその割にほぼ使うことはないので、確かにdownはなくてもいいんじゃないの、と思いました。

ただ開発時には欲しくなったりはするかもなーとは思います。試行錯誤したくはなったりする時がありそう。(現状わりとある)

まぁdownじゃなくてもリバートコミットのように打ち消すコミットを重ねれば良いとも思うのでdownなしは割と賛成でした!ありがとうございました!

Flywayというのを使っているそうで、シンプルな構成でなかなかよさそうでした。もう少し見てみたい。

Flyway • Database Migrations Made Easy.

おわりに

懇親会含め、とっても楽しい勉強会でした!ありがとうございました!!

他の勉強会で話はしていなかったけど覚えていてくれたようで、嬉しい経験もしたり:)

やっぱり勉強会中にも思ったけれど、勉強会のいいところは勉強会の題材だけじゃなくて周辺知識に関しても本当にいろんな学びがあるところだなぁと改めて。

もっともっと参加していきます!いずれは発表させてください:)

(今回、#symfony_jaタグがついていたもの関してのみ、tweetを引用させていただきました。何かあれば対応しますのでご連絡くださいmm)

Symfonyユーザ会の方々、会場を提供してくださった株式会社ヒトメディア様、楽しい時間をありがとうございました!