2013年3月12日火曜日

「(CakePHPとか)PHPのテストについての勉強会」を横で聞きながらの感想

先日、Co-Edoに遊びに行きました。
その日はCakePHPとか、PHPのテスト勉強会をやっていました。

部屋の片隅でコソッとJavaをいじりながら聞いていた感想を勝手に書きたいと思います。

以前はSymfonyやCakePHPなどをやっていましたが、最近はJavaしか触っていないので、そこまで深くは聞いていなかったのですが、どの言語でもやることは一緒だなあと思ったので、PHPのテストの話を聞いて、Javaでどこまで実践できているかを考えてみたいと思います。

テストの基本からCakePHPでTDD/BDDへ by @sizuhiko


テストを書きましょう、という話です。
テストを書くことによるメリットの説明などが行われていました。CGI時代は単純なプログラムだったけれど、現在は複数人での開発、プログラムの複雑化などにより、テストの必要性が高まっているということでした。
スローテストは不健康の始まり、ということで、テストを走らせてから30分もテストしっぱなしだとだめだよね、という話でした。
テスト自体もCIしなきゃ駄目ですね。
さらにはCakePHPのテストについての説明でした。
CakePHPのテストでSelenium2が使えます。Jenkinsで継続的にテストしましょうという話でした。

【ふりかえり】テストはその昔、Slim3のチュートリアルでテストを書いたことがあるだけです。。。


「CakePHP2+Jenkinsで継続的インテグレーション」について話してきました


Jenkinsを使ってCakePHP2をテストする方法の説明でした。

CakePHP2用のBuildファイル サンプル(Ant)も用意されているようでございます。
【ふりかえり】PHPでもCheckstyleやPMD使えるんですね。Jenkinsはビルド以外にはFindbugsなどで使ってますが、テストを実行させたことはありませんでした。

Play FrameworkのBuildファイルサンプル、どこかにないかなあ。。。


xdebugリモートデバッグ


xdebugを使ってEclipseでデバッグする方法の説明でした。
PHPだと、print_r使ってデバックすることが多かったです。
EclipseでSSHトンネル掘ってデバックする方法も紹介されていました。

【ふりかえり】JavaだとEclipseの強力なデバックツールに助けられますね。Play Frameworkだとデバックモードが重いので、気が重いですが。。。
SSHトンネル掘ってのデバックということは、例えばJenkinsサーバ上とか検証環境で動かしているのもデバック出来るということだろうか?今度やってみよう。

PHPUnit と Selenium2 を使ってブラウザベースの自動テストを実行するための最初の一歩的な何かを発表してきた


PHPでSelenium2を使う方法の紹介でした。
やはりシナリオ作成はFirefoxのプラグインでボタンポチポチして、ソースコードに変換する方法ですね。
IEだとちょっと設定が色々必要なようです。

【ふりかえり】とりあえずやったことは、ある。サーバの不可などでWaitの制御が結構手間かかる。

IntelliJ IDEA からCakePHPのテストを 実行する方法


 IntelliJ IDEAでテストを動かす方法の紹介でした。

 【ふりかえり】IntelliJ IDEA =PhpStormなんでしょうか?最近すごいよく聞きます。
NetBeansやらAptanaやらに心変わりしたこともありますが、結局Eclipseに戻ってきたので、もう他のエディタに移る気はあんまりありません。WebStormを使ったときはJavascriptの強力なエディタだなあとは思いましたが。。。


ちなみに、今回新しいサイトを立ち上げようとしていて、言語・フレームワーク選定から入りました。近々リリースします。

JavaかPHPを使うとしたら今の時代、個人でなるべくお金をかけずにやるなら以下の選択肢かと思います。

(なお、Ruby,Pythonは1から勉強しないといけないため、今回は選定から外しました。
諸般の事情で早いところサイトを立ち上げて、というか、復旧させて、ドメインに良い感じのコンテンツを置いてあげないといけない状況になっているので、とにかくスピード重視です。この辺りの諸般の事情については、また別のエントリーで触れたいと思います。)

PHPのフレームワーク(CakePHP,Symfony)×ロリポサーバ

まあ、Symfonyは2系になってから大規模過ぎて挫折した経験があるので、CakePHPが手っ取り早いと思います。

Play Framework×Heroku

今の時代、PaasといったらHerokuでしょうか。ただ、無料で使える範囲だとDBサーバーの容量がすぐにあふれてしまいそうなので、今回は却下です。
Heroku以外でサクッとPlay Frameworkが動かせるPaasがあれば教えて欲しいです。

Slim3×GAE

GAEはオワコンでしょうか?正直そう思います。
GAEのDBサーバはダンプを取ってMySQLに移行とかがサクッと出来ません。一生添い遂げる覚悟がないと厳しいかもしれません。
GAEでもRDS系のDBが使えるようですが、本気で有料のようです。
今回たちあげたいサービスはYoutubeからデータを引っ張ってくるので、同じGoogleのサービスであれば、親和性が高いかも、と雰囲気で選びました。
親和性云々実際は関係無さそうでした。
jarファイルもXXX-appengine.jarみたいなのと、どっち使えばいいの?という感じです。

結局慣れたところでSlim3を使うことにしました。
今からCakePHPを思い出すのはちょっと時間かかりそうだった、というのとGAEの限界とHerokuの限界だったら、Herokuの限界の方が先にきそうだと思ったので、GAEとしました。

0 件のコメント:

コメントを投稿