2015年3月3日火曜日

kawasaki.rb でのruby勉強会(2)



前回のブログ「kawasaki.rb でのruby勉強会(1)」の続きです。

後半のセッションでは、rubyがらみの3つのトークがありました。

1. Gemに含まれるファイル指定


Gemに含まれるファイル指定の方法が、Gemごとに大きく異なるという話。

rubyではたくさんのGemが使われています。たとえば ”rake”、”rails”、”bootstrap-xxxx”、”nokogiri” などです。

これらのGemファイルを生成するときに、Gemに含むファイルを指定するのが、gemspecファイルの中の

  s.files = xxxxx

というラインです。これらはRubyという言語の自由さというか、緩い縛りというか、そのようなものを反映してか、書き方がかなりばらついています。

たとえば、”rack” の場合、

s.files = Dir['{bin/*,contrib/*,example/*,lib/**/*,test/**/*}'] + %w(COPYING KNOWN-ISSUES rack.gemspec Rakefile ....

などとDir を使っていています。"json" のgem では

s.files = ["./tests/test_json.rb", "./tests/test_json_addition.rb", ...

など115のファイルがベタ書きされています。

詳しくは、発表者のブログを参照されたし。


2. Puma上でActiveRecordのエラーに困った話


Rubyで使われるアプリケーションサーバを、UnicornからPumaに変更して、ActiveRecordのエラーで苦労している話でした。

Unicornはプロセスベースで、スロークライアントではI/O が占有されるのでクライアントの数が問題になりやすい。これを回避するため I/O を占有しないスレッドベースのPumaに変更したそうです。

しかし、ActiveRecordのコネクションループ数が5なので、それを超えるスレッドが来るとエラーとなるとの話でした。

なるほど、実際にサービスをしているサーバではクライアントの数やスピードについて気を配らないといけないのですね。勉強になりました。


3. 川崎ruby会議のアンケート結果


今年の1月17日に開かれた川崎ruby会議で、参加者に配られたアンケートを回収、集計した結果の発表でした。

参加者への「普段使っている言語は何か?」という問いにたいして”ruby”が37%のダントツトップでした。ruby会議なので、1番でなかったらちょっと困るかも。2番、3番がそれぞれJava と JavaScript で約11%ずつでした。



他の質問であったのは、「Rubyのコードを何行書いたのか」という質問でしたが、書いたことない人もいる一方、答えに1万行以上という答えや「パン」というのがありました。

「パン」とは漫画のジョジョの奇妙な冒険から来ている言葉だそうです。

昨今では、プログラミングは短く書いて効率を上げるのが良いとされているので、「たくさん書きすぎで覚えていない」と書くより「パン」と書いた方が、できるプログラマーっぽくていいのかもしれません。

他にもいろいろな質問の集計結果が紹介されていました。



Kawasaki.rbはとても勉強になりました。ありがとうございました。


ブログランキングに参加しています。クリックをお願いします。
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
にほんブログ村 IT技術ブログ Webサイト構築へ