Ruby勉強会@札幌-26に参加しました

6月30日に開催された、Ruby勉強会@札幌-26に参加しました。
前回は参加できなかったのでなんだか久しぶりでした。勉強会そのものが久しぶり。
新しいMacBook Airをはじめて持っていった勉強会です。(Rubyの環境セットアップだけしてあった)

初めてのRuby読み合わせ

7章:メソッドの 7.1.4 引数展開 から。
マシンを入れ替えたばっかりで、読み合わせしながら書いたソースコードがTerminalの履歴から全部消えてしまっていた…
けっこういろいろ面白いことをやってたのに。

引数展開

*修飾によって、配列に格納された値を引数として展開することができる。
Ruby1.8までは、修飾付き要素は引数の最後でなければいけなかったけど、Ruby1.9からは位置も回数も自由。
配列から引数リストへの自動的な展開はされない。

params = [1,2]
#=> [1, 2] 
x, y = params # 代入できる
#=> [1, 2] 
x
#=> 1 
y
#=> 2 

def some_method(x,y)
  return x + y
end

some_method(x,y)
#=> 3 
some_method(params) # 呼べない
ArgumentError: wrong number of arguments (1 for 2)

メソッドの定義

メソッドは def – end で定義する。
return を書かない場合、メソッドの最後の式が評価されて戻り値となる。
なので、最後に評価される式を戻したい場合、returnは書いても書かなくてもよい。

…のだけれど、実際省略するかどうか、という話をしました。

自分は if文などでreturn式が分かれる場合は、両方にreturnを書くなあ。
(というか、単純なロジック以外は明示的に return 書いている方が多い気がする)

あとは、例として書かれていたコード

def fact(n); (1..n).inject(1){|p, i| p*i} end}

から、injectの使い方とか、文字列の場合はどうなるかであるとか、色々なコードを書きました。
こんな感じのを色々試したと思う。

(1..10).map(&:to_s).inject(){|p,i| p + i}
# => "12345678910" 
("1".."10").inject(){|p,i| p + i}
# => "12345678910" 
("1".."15").inject(){|p,i| p + i}
# => "123456789101112131415" 
("-1".."15").inject(){|p,i| p + i}
# => "-1-2-3-4-5-6-7-8-9" 
("-1".."1").inject(){|p,i| p + i}
# => "-1" 
("-1".."-10").inject(){|p,i| p + i}
# => "-1-2-3-4-5-6-7-8-9-10" 

130ページ「多値の返却」の前までで時間切れとなりました。

@hmskさんのお話

この日は、東京から参加していた@hmskさんが、
勉強会の3日前、2013年6月27日に正式にローンチした決済システム「WebPay」についてのお話をしてくれました。

自分自身は「Webサービスで決済システムを実装した/する」経験はないのですが(外部サービスに飛ばすだけ…はやったことがあるような気がしないでもない)、決済をするコード例をみると非常にシンプルで使いやすそうでした。

また、現在の開発体制についても話してくれました。
4人のうち3人がオフィスで一緒に暮らしている、というのが一番衝撃的でした。
衣食住を共にしながらプログラミングも一緒にしながら…四六時中一緒….(自分には無理そうだ)
役割分担としては、4人ともコードがかけるので必要に応じてフルスタックで動いてるとのこと。
常に競争しながら、でも一丸となっている強いチームだなあと感じました。

この後に公開された、このインタビュー記事にもサービスや思いについて詳しく書かれていました。
“「技術者として、過去の自分を救いに行く作業だった」(濱崎氏)” カッコイイ!!

WebPayの導入事例としてSAKELIFEという素敵なサービスを教えていただけたことも良かった….!!

@sumimさんのお話

Smalltalkの歴史を紐解くお話。
様々な言語の祖先、アイディアの発祥となっているのだということを知りました。

Smalltalk-72という非アスキー文字を使ったプログラムは見ていて面白かった。
指とか目とか、何だこれは….!
これもプログラミング言語になるんだ….!という驚き。
Smalltalk-72については @sumimさんの記事がとても詳しいです。

その他キーワードのメモ

  • Smalltalkで最初に実行された式は 3 + 4
  • すべてがメッセージという概念
  • XCodeの中身はまるまるSmalltalk
  • コピペはSmalltalkが発祥
  • 似ているところとぶっ飛んでいるところ(Rubyと、かな?)
  • オブジェクトの全能性にguiを添えるだけという方向性

「小さい子供使えて、その子が大きくなっても使えるようにという思想」というのがいいなあ。
おもちゃのように遊ぶこともできるし、大人になって高度なプログラミング言語としても使える。

@sumimさんの話を聞くたびに、なぜか、合宿などをして、夜中に居間のような所に集まって、ゆっくり話を聞きたいなあと思うのでした。(座学形式だと理解できないところも多いからかなあ)

今回も楽しかったです。
次回も楽しみ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください