Kohei Nozaki's blog 

JSFじゃんけん作った


Posted on Monday Dec 29, 2014 at 09:37PM in Technology


B53sbUICQAAA6EW.png

Java開発者クラスタの間で若干流行っていた「じゃんけん」を作り,せっかくなのでJSFで画面を付けてみた.

今のところ,デプロイしてあるのを遊ぶ事も可能.ソースはGitHubに置いてある

JSFなのでサーバサイドとの通信が起こるのだが,Ajaxにしてあるので大して重くはない.無駄にハイスコアと連勝記録が残るようになっている.記録は@ApplicationScopedのBeanに入れてあるので,APサーバが再起動されるまで残るようになっている.このような複数スレッドからのアクセスが想定されるケースでは,CDI管理対象Beanの場合,synchronized文などによる排他制御が必要なのが若干面倒なところである(EJBのSingleton Beanの場合は自動的に1つのインスタンスへのアクセスは1スレッドのみとなるため必要がない).

じゃんけんの勝敗判定には実装者によって違いが見られ興味深かった.まず勝敗をMapで持つタイプ.

次はswitchの分岐で持つタイプ.Spockで書いたテストが素敵です.

最後は謎の短い計算で勝敗を導き出すタイプ.

詳細は「じゃんけん勝敗判定アルゴリズムの思い出」を読むと納得である.

個人的にはコードが一番短く済む最後のタイプが好みである.JSFじゃんけんもこれを採用した.引数と戻り値をenumにしてある.多分使いやすいと思う.



No one has commented yet.

Leave a Comment

HTML Syntax: NOT allowed