Your SlideShare is downloading. ×
0
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Ruby勉強会@札幌 "Rubyist入門講座"
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Ruby勉強会@札幌 "Rubyist入門講座"

8,576

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
8,576
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
79
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Ruby勉強会@札幌 Rubyist入門講座 日本Rubyの会 島田浩二 snoozer.05@gmail.com OSC 2007 Hokkaido 2007-06-30(土)
  • 2. ポジションペーパー “立場表明書”
  • 3. I LOVE RUBY 私はRubyが大好きだ 24 引用:Dave Thomas “The Island Of Ruby”
  • 4. 本日お伝えしたいこと theme of this seminar
  • 5. http://www.ruby-lang.org/ja/
  • 6. http://www.ruby-lang.org/ja/
  • 7. http://www.ruby-lang.org/ja/
  • 8. ここ
  • 9. 本日 大変緊張して おりますので
  • 10. どうぞ お手柔らかに お願いします
  • 11. Agenda ✓ 自己紹介 ✓ Ruby Hot Topics ✓ Rubyist 入門講座 ✓ 日本Rubyの会について ✓ Ruby札幌について
  • 12. 自己紹介 Self-Introduction
  • 13. 自己紹介 •島田 浩二(しまだ こうじ) •フリーのソフトウェア技術者 •お仕事は組み込みメイン •使ってる言語はCだったり •日本Rubyの会 •Ruby札幌 •るびま、るりま等 •http://iddy.jp/profile/snoozer05/
  • 14. さいきんのRuby Ruby Hot Topics
  • 15. Ruby Hot Topics ✓ RubyKaigi2007 - Key is Love ✓ YARV - “Not” Yet Another Ruby VM ✓ Rails - Ruby’s Killer App ✓ JRuby - From Java to Ruby ✓ RSpec - Behavior Driven Develop
  • 16. Ruby Hot Topics ✓ RubyKaigi2007 - Key is Love ✓ YARV - “Not” Yet Another Ruby VM ✓ Rails - Ruby’s Killer App ✓ JRuby - From Java to Ruby ✓ RSpec - Behavior Driven Develop
  • 17. http://jp.rubyist.net/RubyKaigi2007/
  • 18. 次回の 勉強会でやる
  • 19. Ruby Hot Topics ✓ RubyKaigi2007 - Key is Love ✓ YARV - “Not” Yet Another Ruby VM ✓ Rails - Ruby’s Killer App ✓ JRuby - From Java to Ruby ✓ RSpec - Behavior Driven Develop
  • 20. Ruby Hot Topics ✓ RubyKaigi2007 - Key is Love ✓ YARV - “Not” Yet Another Ruby VM ✓ Rails - Ruby’s Killer App ✓ JRuby - From Java to Ruby ✓ RSpec - Behavior Driven Develop
  • 21. Ruby Hot Topics ✓ RubyKaigi2007 - Key is Love ✓ YARV - “Not” Yet Another Ruby VM ✓ Rails - Ruby’s Killer App ✓ JRuby - From Java to Ruby ✓ RSpec - Behavior Driven Develop
  • 22. RubyOnRailsの 面白い話題は masuidriveさん のセッションで
  • 23. Ruby Hot Topics ✓ RubyKaigi2007 - Key is Love ✓ YARV - “Not” Yet Another Ruby VM ✓ Rails - Ruby’s Killer App ✓ JRuby - From Java to Ruby ✓ RSpec - Behavior Driven Develop
  • 24. Ruby Hot Topics ✓ RubyKaigi2007 - Key is Love ✓ YARV - “Not” Yet Another Ruby VM ✓ Rails - Ruby’s Killer App ✓ JRuby - From Java to Ruby ✓ RSpec - Behavior Driven Develop
  • 25. Ruby Hot Topics ✓ RubyKaigi2007 - Key is Love ✓ YARV - “Not” Yet Another Ruby VM ✓ Rails - Ruby’s Killer App ✓ JRuby - From Java to Ruby ✓ RSpec - Behavior Driven Develop
  • 26. Rubyist入門講座 Rubyist Guide
  • 27. Lesson (1) Rubyの価値 Values of Ruby
  • 28. Values Of Ruby ✓ Be nice to developers ✓ Be clear and readable ✓ Be flexible and agile ✓ Be open
  • 29. Values Of Ruby ✓ Be nice to developers ✓ Be clear and readable ✓ Be flexible and agile ✓ Be open
  • 30. 開発者に優しい Nice to developers
  • 31. 開発者にやさしい ✓ 開発しやすい環境を提供 • irb, RubyGems, Test::Unit ✓ 手になじんだ環境で開発を • emacs, vim, eclipse, visual studio ✓ 困ったときには • メーリングリスト
  • 32. 開発者にやさしい ✓ 開発しやすい環境を提供 • irb, RubyGems, Test::Unit ✓ 手になじんだ環境で開発を • emacs, vim, eclipse, visual studio ✓ 困ったときには • メーリングリスト
  • 33. 開発者にやさしい ✓ 開発しやすい環境を提供 • irb, RubyGems, Test::Unit ✓ 手になじんだ環境で開発を • emacs, vim, eclipse, visual studio ✓ 困ったときには • メーリングリスト
  • 34. 開発者にやさしい ✓ 開発しやすい環境を提供 • irb, RubyGems, Test::Unit ✓ 手になじんだ環境で開発を • emacs, vim, eclipse, visual studio ✓ 困ったときには • メーリングリスト
  • 35. メーリングリスト
  • 36. メーリングリスト
  • 37. メーリングリスト
  • 38. つくった人が日本語で 答えてくれる :-)
  • 39. 開発者にやさしい ✓ 開発しやすい環境を提供 • irb, RubyGems, Test::Unit ✓ 手になじんだ環境で開発を • emacs, vim, eclipse, visual studio ✓ 困ったときには • メーリングリスト
  • 40. 開発者に優しい Nice to developers
  • 41. Values Of Ruby ✓ Be nice to developers ✓ Be clear and readable ✓ Be flexible and agile ✓ Be open
  • 42. Values Of Ruby ✓ Be nice to developers ✓ Be clear and readable ✓ Be flexible and agile ✓ Be open
  • 43. 簡潔であること Clear and readable
  • 44. ポール・グラハム
  • 45. 良いデザイン
  • 46. Say what you mean and say it briefly - Paul Graham 言いたいことは簡潔に言え。 - ポール・グラハム『ハッカーと画家』
  • 47. ためしに言ってみる
  • 48. 言いたいこと
  • 49. 文字列クラスの メソッド一覧のうち 末尾が”f”で終わるものを アスキー順にソートして 改行で区切って 出力したい
  • 50. Javaで言ってみる
  • 51. import java.lang.reflect.Method; import java.util.regex.*; public class sample { public static void main(String arg[]) { try { Method[] methods = .getClass().getMethods(); Array.sort(methods); Pattern pat = Pattern.compile( .*f$ ); for(Method m : methods){ Matcher mat = pat matcher(m.getName()); if (mat.matches()) { System.out.println(m.getName()); } } } catch(Exception e) { System.out.println(e); } } }
  • 52. import java.lang.reflect.Method; import java.util.regex.*; public class sample { public static void main(String arg[]) { try { Method[] methods = .getClass().getMethods(); Array.sort(methods); Pattern pat = Pattern.compile( .*f$ ); for(Method m : methods){ Matcher mat = pat matcher(m.getName()); if (mat.matches()) { System.out.println(m.getName()); } } } catch(Exception e) { System.out.println(e); } } } 文字列クラスの
  • 53. import java.lang.reflect.Method; import java.util.regex.*; public class sample { public static void main(String arg[]) { try { Method[] methods = .getClass().getMethods(); Array.sort(methods); Pattern pat = Pattern.compile( .*f$ ); for(Method m : methods){ Matcher mat = pat matcher(m.getName()); if (mat.matches()) { System.out.println(m.getName()); } } } catch(Exception e) { System.out.println(e); } } } 文字列クラスの
  • 54. import java.lang.reflect.Method; import java.util.regex.*; public class sample { public static void main(String arg[]) { try { Method[] methods = .getClass().getMethods(); Array.sort(methods); Pattern pat = Pattern.compile( .*f$ ); for(Method m : methods){ Matcher mat = pat matcher(m.getName()); if (mat.matches()) { System.out.println(m.getName()); } } } catch(Exception e) { System.out.println(e); } } } メソッド一覧の
  • 55. import java.lang.reflect.Method; import java.util.regex.*; public class sample { public static void main(String arg[]) { try { Method[] methods = .getClass().getMethods(); Array.sort(methods); Pattern pat = Pattern.compile( .*f$ ); for(Method m : methods){ Matcher mat = pat matcher(m.getName()); if (mat.matches()) { System.out.println(m.getName()); } } } catch(Exception e) { System.out.println(e); } } } メソッド一覧の
  • 56. import java.lang.reflect.Method; import java.util.regex.*; public class sample { public static void main(String arg[]) { try { Method[] methods = .getClass().getMethods(); Array.sort(methods); Pattern pat = Pattern.compile( .*f$ ); for(Method m : methods){ Matcher mat = pat matcher(m.getName()); if (mat.matches()) { System.out.println(m.getName()); } } } catch(Exception e) { System.out.println(e); } } } 末尾が”f”で 終わるものを
  • 57. import java.lang.reflect.Method; import java.util.regex.*; public class sample { public static void main(String arg[]) { try { Method[] methods = .getClass().getMethods(); Array.sort(methods); Pattern pat = Pattern.compile( .*f$ ); for(Method m : methods){ Matcher mat = pat matcher(m.getName()); if (mat.matches()) { System.out.println(m.getName()); } } } catch(Exception e) { System.out.println(e); } } } 末尾が”f”で 終わるものを
  • 58. import java.lang.reflect.Method; import java.util.regex.*; public class sample { public static void main(String arg[]) { try { Method[] methods = .getClass().getMethods(); Array.sort(methods); Pattern pat = Pattern.compile( .*f$ ); for(Method m : methods){ Matcher mat = pat matcher(m.getName()); if (mat.matches()) { System.out.println(m.getName()); } } } catch(Exception e) { System.out.println(e); } } } アスキー順に ソートして
  • 59. import java.lang.reflect.Method; import java.util.regex.*; public class sample { public static void main(String arg[]) { try { Method[] methods = .getClass().getMethods(); Array.sort(methods); Pattern pat = Pattern.compile( .*f$ ); for(Method m : methods){ Matcher mat = pat matcher(m.getName()); if (mat.matches()) { System.out.println(m.getName()); } } } catch(Exception e) { System.out.println(e); } } } アスキー順に ソートして
  • 60. import java.lang.reflect.Method; import java.util.regex.*; public class sample { public static void main(String arg[]) { try { Method[] methods = .getClass().getMethods(); Array.sort(methods); Pattern pat = Pattern.compile( .*f$ ); for(Method m : methods){ Matcher mat = pat matcher(m.getName()); if (mat.matches()) { System.out.println(m.getName()); } } } catch(Exception e) { System.out.println(e); } } } 改行で区切って 出力したい
  • 61. import java.lang.reflect.Method; import java.util.regex.*; public class sample { public static void main(String arg[]) { try { Method[] methods = .getClass().getMethods(); Array.sort(methods); Pattern pat = Pattern.compile( .*f$ ); for(Method m : methods){ Matcher mat = pat matcher(m.getName()); if (mat.matches()) { System.out.println(m.getName()); } } } catch(Exception e) { System.out.println(e); } } } 改行で区切って 出力したい
  • 62. import java.lang.reflect.Method; import java.util.regex.*; public class sample { public static void main(String arg[]) { try { Method[] methods = .getClass().getMethods(); Array.sort(methods); Pattern pat = Pattern.compile( .*f$ ); for(Method m : methods){ Matcher mat = pat matcher(m.getName()); if (mat.matches()) { System.out.println(m.getName()); } } } catch(Exception e) { System.out.println(e); } } }
  • 63. Rubyで言ってみる
  • 64. 文字列クラスの
  • 65. 文字列クラスの “”.
  • 66. メソッド一覧の “”.
  • 67. “”. methods. メソッド一覧の
  • 68. 末尾が”f”で 終わるものを“”. methods.
  • 69. 末尾が”f”で 終わるものを“”. methods. grep(/f$/).
  • 70. アスキー順に ソートして“”. methods. grep(/f$/).
  • 71. アスキー順に ソートして“”. methods. grep(/f$/). sort.
  • 72. 改行で区切って “”. methods. grep(/f$/). sort.
  • 73. “”. methods. grep(/f$/). sort. join(“¥n”). 改行で区切って
  • 74. “”. methods. grep(/f$/). sort. join(“¥n”). 出力したい
  • 75. “”. methods. grep(/f$/). sort. join(“¥n”). display 出力したい
  • 76. “”. methods. grep(/f$/). sort. join(“¥n”). display
  • 77. “”.methods.grep(/f$/).sort.join(“¥n”).display
  • 78. 確認
  • 79. Javaで言うと
  • 80. import java.lang.reflect.Method; import java.util.regex.*; public class sample { public static void main(String arg[]) { try { Method[] methods = .getClass().getMethods(); Array.sort(methods); Pattern pat = Pattern.compile( .*f$ ); for(Method m : methods){ Matcher mat = pat matcher(m.getName()); if (mat.matches()) { System.out.println(m.getName()); } } } catch(Exception e) { System.out.println(e); } } }
  • 81. Rubyだと
  • 82. “”.methods.grep(/f$/).sort.join(“¥n”).display
  • 83. Say what you mean and say it briefly - Paul Graham 言いたいことは簡潔に言え。 - ポール・グラハム『ハッカーと画家』
  • 84. ポイント
  • 85. 目にやさしい
  • 86. 読みやすさ
  • 87. 無駄がない
  • 88. 本質を捉えている
  • 89. 簡潔であること ✓ 処理の本質だけを捉える ✓ 読みやすさ
  • 90. 簡潔であること ✓ 処理の本質だけを捉える ✓ 読みやすさ 開発が楽しくなる
  • 91. 簡潔であること ✓ 処理の本質だけを捉える ✓ 読みやすさ 開発が楽しくなる 開発効率も段違い
  • 92. 簡潔であること Clear and readable
  • 93. Values Of Ruby ✓ Be nice to developers ✓ Be clear and readable ✓ Be flexible and agile ✓ Be open
  • 94. Values Of Ruby ✓ Be nice to developers ✓ Be clear and readable ✓ Be flexible and agile ✓ Be open
  • 95. 柔軟であること Flexible and agile
  • 96. Part1
  • 97. Expressiveness
  • 98. 表現力
  • 99. This works! Such finding make me happy. - Dave Thomas これも動くんだ! こんな発見が僕をハッピーにしてくれる。 - 達人プログラマ
  • 100. デモ
  • 101. 表現力
  • 102. いろいろな 表現 が可能
  • 103. 複数の プログラミング パラダイムを 許容
  • 104. ✓ オブジェクト指向 ✓ 手続き型 ✓ 関数型 ✓ 単なるスクリプト ✓ etc
  • 105. マルチパラダイム
  • 106. マルチパラダイム ✓ 問題解決にあたって最良 のパラダイムを ✓ プログラマは表現者 ➡ 表現に自由を! ✓ 新しいパラダイムへの入り 口として
  • 107. ✓ 問題解決にあたって最良 のパラダイムを ✓ プログラマは表現者 ➡ 表現に自由を! ✓ 新しいパラダイムへの入り 口として 表現力
  • 108. 柔軟であること Be flexible and agile
  • 109. Part2
  • 110. Dynamic
  • 111. 動的
  • 112. 動的 ✓ インタプリタ ✓ 動的型 ✓ オープンクラス
  • 113. インタプリタ
  • 114. インタプリタ ✓コンパイル不要 • 実行までにかかる時間が短い ✓ぎりぎりまで自分自身を書 き換えることが可能 • 実行中にプログラムを変更 ➡ アジャイル開発に最適
  • 115. インタプリタ
  • 116. 動的型
  • 117. 動的型 ✓ 型宣言不要 • コードをシンプルに保つことが可能 ➡変更に強く!本質に注力! ✓ 振る舞いにより型を判断 • 大事なのはそのオブジェクトが何を出来 る(どのような振る舞いを持つ)のか ➡Duck Typing!
  • 118. 動的型
  • 119. オープンクラス
  • 120. あらゆるクラス を改変可能
  • 121. デモ
  • 122. オープンクラス ✓ あらゆるクラスを改変す ることが可能 • Rubyはオープンな言語 ➡プログラマを信頼!
  • 123. オープンクラス
  • 124. 動的 ✓ インタプリタ ✓ 動的型 ✓ オープンクラス
  • 125. ✓ アジャイルな開発を低コ ストで実現 ✓ 変更に強く! 本質に注力! ✓ すべてはプログラマ次第 ➡Rubyは信頼してくれている 動的
  • 126. 柔軟であること Flexible and agile
  • 127. ✓ 問題解決にあたって最良 のパラダイムを ✓ プログラマは表現者 ➡ 表現に自由を! ✓ 新しいパラダイムへの入り 口として 表現力
  • 128. ✓ アジャイルな開発を低コ ストで実現 ✓ 変更に強く! 本質に注力! ✓ 決めるのはプログラマ ➡Rubyが信頼してくれている 動的
  • 129. 柔軟であること Flexible and agile
  • 130. Values Of Ruby ✓ Be nice to developers ✓ Be clear and readable ✓ Be flexible and agile ✓ Be open
  • 131. Values Of Ruby ✓ Be nice to developers ✓ Be clear and readable ✓ Be flexible and agile ✓ Be open
  • 132. 開かれていること Open
  • 133. 開かれていること ✓ オープンソース • 誰でもRubyを好きなように利用できる ✓ 意思決定のプロセス • 誰でも意思決定のプロセスに参加できる ✓ コミュニティ • 大切なのはコミュニティ、そして人
  • 134. 開かれていること ✓ オープンソース • 誰でもRubyを好きなように利用できる ✓ 意思決定のプロセス • 誰でも意思決定のプロセスに参加できる ✓ コミュニティ • 大切なのはコミュニティ、そして人
  • 135. 開かれていること ✓ オープンソース • 誰でもRubyを好きなように利用できる ✓ 意思決定のプロセス • 誰でも意思決定のプロセスに参加できる ✓ コミュニティ • 大切なのはコミュニティ、そして人
  • 136. 開かれていること ✓ オープンソース • 誰でもRubyを好きなように利用できる ✓ 意思決定のプロセス • 誰でも意思決定のプロセスに参加できる ✓ コミュニティ • 大切なのはコミュニティ、そして人
  • 137. Ruby = コミュニティ、人
  • 138. 開かれていること ✓ オープンソース • 誰でもRubyを好きなように利用できる ✓ 意思決定のプロセス • 誰でも意思決定のプロセスに参加できる ✓ コミュニティ • 大切なのはコミュニティ、そして人
  • 139. 開かれていること ✓ オープンソース • 誰でもRubyを好きなように利用できる ✓ 意思決定のプロセス • 誰でも意思決定のプロセスに参加できる ✓ コミュニティ • 大切なのはコミュニティ、そして人
  • 140. 開かれていること Open
  • 141. Values Of Ruby ✓ Be nice to developers ✓ Be clear and readable ✓ Be flexible and agile ✓ Be open
  • 142. Values Of Ruby ✓ Be nice to developers ✓ Be clear and readable ✓ Be flexible and agile ✓ Be open
  • 143. Lesson (1) Rubyの価値 Values of Ruby
  • 144. Lesson (2)
  • 145. Lesson (2) 続きは勉強会で To be continued
  • 146. ご案内
  • 147. 日本Rubyの会
  • 148. 日本Rubyの会 ✓開発者の支援 ✓利用者の支援
  • 149. http://jp.rubyist.net/magazine/
  • 150. http://doc/loveruby.net/wiki/
  • 151. メーリングリスト
  • 152. http://jp.rubyist.net/
  • 153. Ruby札幌
  • 154. Ruby札幌 ✓Ruby勉強会@札幌 ✓Ruby Sapporo Night
  • 155. Ruby勉強会@札幌
  • 156. Ruby勉強会@札幌 ✓1.5ヶ月に一回くらい ✓平均すると20人くらい ✓Ruby初心者歓迎 ✓手伝ってくれる方歓迎
  • 157. Ruby勉強会@札幌 ✓ピッケル本読み合わせ ✓るびま読み合わせ ✓他言語探訪 ✓Rails導入事例など
  • 158. ✓次回は 7月21日(土) ✓RubyKaigi2007報告会 ✓http://jp.rubyist.net/ Ruby勉強会@札幌
  • 159. Ruby Sapporo Night
  • 160. RubySapporoNight ✓7月から開始 ✓デモ中心?? ✓アップルストアでw ✓初回は7月25日(水)
  • 161. Ruby札幌 ✓Ruby勉強会@札幌 ✓Ruby Sapporo Night
  • 162. Ruby札幌 詳しくは 日本Rubyの会 をご参照ください
  • 163. 以上
  • 164. 謝辞: • 前田さん、設楽さん • 千葉さん、菅野さん • いつも勉強会にご参加くださっているみ なさん • OSC-Do運営スタッフのみなさん • 日本Rubyの会のみなさん • Ruby開発チームのみなさん • and Special Thanks to Dave Thomas
  • 165. ご清聴 ありがとう ございました

×