basyura's blog

あしたになったらほんきだす。

鳥取Ruby会【とっとるびー】 第3回

blog に書くまでが tottoruby

鳥取Ruby会【とっとるびー】 第3回
Hosted By: @suzumura_ss

〜ソフトウエア技術者同士で雑談をしよう会〜

・ Rubyの名前を冠していますがRuby以外も扱います。
・ Ruby関連のふりをしてCとかLispだったりもします。

http://tweetvite.com/event/tottoruby_3

3 回目終了。正確には 0 回があるので 4 回目か。 てことで、発表(?)してきました。

「bowlineの紹介」 @basyura

screenshot
(スクリーンショットがちゃんとでるのか?)
資料は、http://basyura.org/bowline-intro/ にあります。当初は rabbit でやろうと思ってたものの、port で入れたものが動かず(brew に乗り換えたし)。s6 でしようと思ったけど結構しんどそうで躊躇。似たようなものがないかなと見つけたのが slippy 。書くのは難しくないけど、配置やレイアウトの変更で細かいところがうまくいかないものの続行(次はないと思う・・・)。
肝心の発表は中途はんぱでしたけど、それなりに食いついてもらえて一安心(?)でした。ただ、これ以上つっこんで実装する気力がないので、なにかひらめくまでは(ry かな。

Enumerableで遊んでみる @k_mats さん

定番の map or collect 問題は map に軍配(みんな map だった)。inject の初期値に Hash などを使った場合にブロックの最後で評価しないと痛い目に見る問題は僕もはまったことがある。
あと、全員一致で zip の使いどころか分からない(使ったことがない)ということに。
Enumerable に関しては

まつもとゆきひろ コードの世界?スーパー・プログラマになる14の思考法

まつもとゆきひろ コードの世界?スーパー・プログラマになる14の思考法

を読んで、each を定義するだけでこんなに色んなことができるんだ!と感動した記憶が。近々読み直したいと思う。
ここ↓のところが引っかかるので、後日検証したい。

Enumerable#sort_by は安定ではありません (unstable sort)。
註: 比較結果が同じ要素は元の順序通りに並ぶソートを「安定なソート (stable sort)」と言います。
なお、sort_by を以下のように使うと安定なソートを実装できます。

i = 0
ary.sort_by {|v| [v, i += 1] }
Enumerable

リファクタリングとmetric_fu @saber_chica さん

Metric_fu is a set of rake tasks that make it easy to generate metrics reports. It uses Saikuro, Flog, Flay, Rcov, Reek, Roodi, Churn, RailsBestPractices, Subversion, Git, and Rails built-in stats task to create a series of reports. It's designed to integrate easily with CruiseControl.rb by placing files in the Custom Build Artifacts folder.

metric_fu

"臭う”コードを出力してグラフにしてくれる。実際に動かして使ってみたいと思った。ruby に限らず、java とかでも似たようなものがないんだろうか。有りそうだけど、高そう。
リファクタリングは一気にやろうと思うと失敗するし、後になればなるほど怖くて直せないままズルズルいっちゃうのでタイミングが難しい。日々ソースを書きながらちょっとずつやっていくのがいいのかなと。僕の場合は、整形( = の位置をあわせる、空白を入れる、インデントなどなど)がけっこう気になるので、綺麗に書けてるか、読みやすい(頭に入ってきやすい)かを何度も見なおしてしまう。自分が読みやすいから他人も読みやすいかっていうとそうでもなかったりするし。難しい。
発表とは関係ないけど 1 年目に C やって、2 年目に Ruby って・・・めちゃくちゃうまらやしいです。はい。

例外とエラー処理 @hilohiro さん

@suzumura_ss さん、@hilohiroさん、@kmt_t さん熱く語る。
例外って、マジメにやると仕様を考えるのが大変だし、使う側も大変。だけど、マジメにやらないなら簡単に手を抜けるイメージ。無視して握りつぶしちゃう事もできるし、Exception をキャッチして RuntimeException のサブクラスに詰め込み直して上位では catch や throws を書かないとか。
例外の生成コストがあるのでロジックをスイッチ、ジャンプするために使用することは避けるか否かについてはケースバイケースだよね、やっぱり。

場外編

今回の tottoruby で一番驚いたのは、@kmt_t さんが macbook air 11 インチを持って現れたことだな・・・。CPU、メモリ、ハード それぞれ「一番いいのを頼む」なので、さらにうらやましい・・・。11 インチを持ってる知人第一号。13 インチもいいけど 11 インチはいいねぇ、やっぱり。
コンタクトだと 13 インチがでかく見え、メガネだと割と小さく見えるので常時メガネにすれば 11 インチを持っているかのごとく(ry

うらやましいです、はい。

久々の実家で猫と戯れることができたし(エアコン付けたらカメムシがブンブン飛び出したけど)、いい一日だった。次回は 3 月 12 日予定。せっかくなのでまた何かネタを持って行きたいところ。

みなさんお疲れさまでした!