More Related Content Similar to phperを魅了するrubyの魅力(1) Similar to phperを魅了するrubyの魅力(1) (20) phperを魅了するrubyの魅力(1)1. PHPerを魅了する
Rubyの魅力(1)
芳野 貴洋
(株)手嶋屋
第1回 LT (社内勉強会)
PHPerを魅了するRubyの魅力(1)
2013/03/13
Powered by Rabbit 2.0.6
3. Ruby
✓ 国産のオブジェクト指向言語
✓ http://www.ruby-lang.org/ja/
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
4. Ruby::PHPとの違い
✓ Web用言語ではなく汎用言語
✓ 純粋なオブジェクト指向言語
✓ 日本語の扱いが得意
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
5. Rubyの魅力
✓ 短い
✓ 簡単
✓ 綺麗
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
6. Rubyの魅力
✓ 短い ← 今回はこれだけを紹介
✓ 簡単
✓ 綺麗
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
8. Ruby::短い
短いはいい
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
9. Ruby::短い
✓ 短いコードは書きやすい
✓ 短いコードは読みやすい
✓ 短いコードはバグが出にくい!!
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
10. Ruby::短い
短いコードはバ
グが出にくい
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
11. Ruby::短い
✓ 短いコードはバグが出にくい
✓ キー入力が減るとタイプミスが減る
✓ 1画面に処理が収まるほど可読性が
高い(80x24)
✓ 差分が減るので違いがわかりやすい
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
12. Ruby::短い
重要
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
13. Ruby::短い
短いコードはバ
グが出にくい
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
14. Ruby::短い
比較
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
15. Ruby::短い
PHPとRubyで同
じ処理をするス
クリプトを書く
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
16. Ruby::短い
「引数が100未満かを確認し、100未満の場
合は1つづつ順番に加算して結果を返す」
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
17. Ruby::短い
まず、PHP
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
18. Ruby::短い
<?php
function add($number)
{
if ( $number < 100 )
{
$i = 0;
$result = 0;
while ($i <= $number)
{
$result = $result + $i;
$i++;
}
return $result;
}
else
{
return "100以上です";
}
}
print add($argv[1]);
?>
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
19. Ruby::短い
つぎ、Ruby
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
20. Ruby::短い
def add(number)
return "100以上です" if number >= 100
result = 0
(1..number).each do |i|
result += i
end
result
end
puts add(ARGV[0].to_i)
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
21. Ruby::短い
使用 行・文字数
言語 行数(関数) 文字数
PHP 21(9)行 261文字
Ruby 9(6)行 157文字
Rubyの方が短かく書ける!
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
22. Ruby::短い
短いコードはバ
グが出にくい
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
23. Ruby::短い
今回使ったRuby
の魔法
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
24. Ruby::短い
今回のサンプルにはコードを短かくするた
めの3つのRuby魔法を使いました
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
25. Ruby::短い.魔法1
if 修飾子
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
26. Ruby::短い.魔法1
ifの条件が真の時に実行する処理を
先に書く
def add(number)
return "100以上です" if number >= 100
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
27. Ruby::短い.魔法1
もちろん unless も同じように書け
る
def hoge(number)
return "100以上ではないです" unless number >= 100
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
28. Ruby::短い.魔法2
範囲(Range)オ
ブジェクト
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
29. Ruby::短い.魔法2
「○番から△番まで」をオブジェク
ト化する
(1..number).each do |i| # 1からnumberまでが範囲オジェクト
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
30. Ruby::短い.魔法2
範囲 (1..number) は配
列 [1,2,3...number] の
とほぼ同じ (ただし後ろの
書き方は出来ない)
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
31. Ruby::短い.魔法3
戻り値
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
32. Ruby::短い.魔法3
最後に評価した値がデフォルトの戻
り値になる
# result を評価した値が自動で戻り値になる
# return は不要
result
end
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
33. Ruby::短い
def add(number)
return "100以上です" if number >= 100
result = 0
(1..number).each do |i|
result += i
end
result
end
puts add(ARGV[0].to_i)
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
34. Ruby::短い
このようにRuby
で書くとコード
が短か..
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
35. Ruby::短い
Rubyが本気出を
出したようです
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
36. Ruby::短い
本気、出しました
def add(number)
return "100以上です" if number >= 100
(1..number).inject {|result, i| result += i }
end
puts add(ARGV[0].to_i)
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
37. Ruby::短い
✓ injectメソッでたたみこみ演算
✓ 最後の評価はメソッドも可
✓ injectを評価した結果が戻る
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
38. Ruby::短い
使用 行・文字数
言語 行数(関数) 文字数
PHP 21(9)行 261文字
Ruby 9(6)行 157文字
Ruby本気 5(2)行 135文字
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
39. Ruby::短い
まだあるRubyの魔法
✓ ブロック付きメソッド呼び出し
✓ 特異メソッド・メソッド再定義
✓ キーワード引数 ← 2.0 New
✓ カリー化 ← 2.0 New
✓ などなど...
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
40. Ruby::短い.まとめ
まとめ
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
41. Ruby::短い.まとめ
✓ 短いコードはバグが減る
✓ Rubyの魔法でより短かいコード
が書ける
✓ たまに本気出す
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
42. Ruby::短い.まとめ
ただし
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
43. Ruby::短い.まとめ
短かく過ぎると
黒魔法になるの
で注意
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
44. おわり
ご清聴ありがと
うございまし
た。
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6
45. Powered by Rabbit
このプレゼン資料はRD書式と
Rabbitを使って作成しました。
✓ RD書式
✓ Rabbit: rabbit-shocker.org
PHPerを魅了するRubyの魅力(1) Powered by Rabbit 2.0.6