PHPカンファレンス福岡2015で、「CakePHPを業務で使ってみた(7年ほど)」というタイトルで発表させてもらいました。
結局、
#phpconfuk から帰って来た新卒のLaravel熱がスゴイらしい。
ということで、私の発表内容は皆さん忘れて下さい。
— k1LoW (@k1LoW) June 29, 2015
となったわけですが。
受託開発がWebサービス開発に近づいている予感
最近は「作って納品。あとは運用」というプロジェクトが少なくなってきたような感覚があります。
契約として「納品」はあるのですが、開発側は「納品して一区切り」というような感覚はなく、ずっとリリースをしている感じです。
それが新機能だったり、仕様変更だったり、バグ修正だったり、いろいろです。エンジニアからの提案の結果追加される機能もあります。
なので、Gitのブランチが大活躍です。[WIP]
が入り乱れつつ、デプロイもある程度の頻度で発生します。
そしてそのうち、 機能の確認も実際のデータでできる必要がでてきたりするかもしれませんし、その機能をある特定のステークホルダーの人だけが確認できる必要が生まれるかもしれません。
...
どこかで聞いたことのある機能です。
chankoが欲しい
chankoは言わずと知れたRailsのプロトタイプ開発用のプラグインです。 個人的に「いいなあ」と思う特徴として、
- プロダクションコードにさわらずに機能追加ができる。ON/OFFもできる。
- 追加した機能で問題が発生したら、元の機能で表示するセーフティーネットがある。
があります。
ついついプロダクションコードにif文追加して実装してしまうところを、いい感じに解決します。
素晴らしい。
羨ましい。
欲しい。
いつも隣の芝は青いものです。
プロトタイプ開発プラグイン "Ya"
劣化chankoができた
— k1LoW (@k1LoW) 2015, 6月 4
RailsのRailtieのような機構はないので、Dispacherを拡張することで(YaDispacher)、以下を実現しています。
- リクエストに対するControllerのすげかえをすることで、プロダクションコードにさわらずに機能追加が可能
- YaDispacherで例外を捕捉して再invokeしまうことで、元の機能で表示するセーフティーネットを実現
"Ya"の動きのイメージ
指定のプレフィックスで新機能Controllerを(YAPostsController.php
)、指定のディレクトリ(app/Ya/
)に設置しておくことで、YaDispacherが新機能Controllerのactionを優先的にinvokeします。
もし、新機能Controllerで例外が発生した場合はYaDispacherが例外を捕捉して、元のController(PostsController
) のactionを再invokeします。
まだ、アイデア実装です
作っては見たものの、まだ個人のWebサービスにすら適用していません。使えそうな気はしているのですが。
はやいところ、どこかで使ってみたいとは思っています。
で、運用してみて「便利ー」となったらいいなあと。
ただ、CakePHP2。。。