Scalaコップの会第8回やりましたで

5月18日にScalaコップの会第8回をやりました。
今回はScala hack-a-thon #1でのyuroyoroさんの資料にあるサンプルアプリケーション、Actorライブラリを利用したシンプルなエコーサーバーを、コードリーディングしました。
http://dl.dropbox.com/u/261418/scala-hackathon/sample/echoserver.html
srcはこちら

以下、実際の進行を箇条書き。

説明がなかったので、まずはscalacでコンパイルして挙動を確認するところからスタート。
scala EchoServerだけで動かすとjava.util.NoSuchElementExceptionというエラー。
ソースをみてみるとポート番号を渡してやる必要があることがわかる。
scala EchoServer 8080でサーバーが起動。
起動したが、クライアントなきゃソケット接続出来ないよね?
クライアントのソースコードないね?
telnetから接続して適当に文字列を入力。
サーバー側に出力された。
どういう代物かわかったので、コードリーディングに入っていく。
ここではたと、そういえばそもそもActorのメソッドやお作法がよく分からないという事に気づく。
急遽、コップ本のActorの章を、yuroyoroさんの書いたソースコードを理解出来るところまで写経していくことに。
途中ところどころつまづきつつ、何ページか写経してみて大体感じをつかむ。
再びコードリーディングへ。
どの時点でWaitにいってるのかをprintlnデバッグなどしながらほぼ理解。
続いてノンブロッキングチャネルを利用したエコーサーバーを動かしてみる。
動作を理解。
しかし、最初のエコーサーバーとの違いが明確にならないうちに時間切れ。
これについては宿題という事になりました。


今回はこんな感じでした〜。これで一応Scala hack-a-thon #1の資料は終了ですね。
みんなで黙々と動かしたり、写経したり、リーディングしたりで面白かったです。
次はそろそろコードを書いていこうかという話になったのですが、いきなりオリジナルはどうかという事で*1、またyuroyoroさんにおんぶにだっこでこちらを写経、動かして、コードリーディングして、時間があったら各自改良してみようという事になりました。


というわけで、参加の皆様お疲れ様&ありがとうございました〜。
こんな感じでやってますので、興味のある方は宜しかったらご参加下さい。

*1:特に自分がJavaのライブラリわからないので