17
Ruby Ruby 初心者! 初心者! 大川祐介 大川祐介

大川祐介

  • Upload
    toruby

  • View
    1.976

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 大川祐介

RubyRuby 初心者!初心者!

大川祐介大川祐介

Page 2: 大川祐介

Ruby について感じたことの項目

• 穴埋め式プログラミング

• メタプログラミング

• ブロック構文(ブロック付きメソッド:イテレータ)

• リソースのスコープによる管理

• 安全性の確保

• 開発の容易性(柔軟性)

• Perl 譲りの強力な正規表現

• Java との互換性

• なんてったって Ruby on Rails !

Page 3: 大川祐介

穴埋め式プログラミング

• メタプログラミングやブロック構文などにより、段階的に分けた開発が容易になった。

• 開発者のレベルにより、タスクを効率よく分散し、チームレベルでの効率アップに繋がる。

• 新人等の教育も兼ねた実践投入に良いのでは?

Page 4: 大川祐介
Page 5: 大川祐介

メタプログラミング• Get 、 Set などを既に定義されているマクロの様なメソッド群?

• C# で言うところのプロパティが既に公開されている感じ?( C# ではさらに Get 、 Set にアクセスレベルも設けられる)

• ライブラリとして既に色々な機能が実装され、提供されている所が気に入った。

• C++ でのテンプレートメタプログラミング の事。(こちらに関しては、コンパイラ依存がある為、移植性に問題が出やすい)

Page 6: 大川祐介
Page 7: 大川祐介

ブロック構文(ブロック付きメソッド:イ

テレータ)

• 既にある特定の動作を保証しつつ、追加処理を加えることができる。

• イメージとしては override ?

• それらが、ライブラリとして提供されている。

• もちろんの事、自作のイテレータをライブラリとして提供する事ができる。

Page 8: 大川祐介
Page 9: 大川祐介
Page 10: 大川祐介

リソースのスコープによる管理

• 基本的には、 C# と同じと感じた。

• しかし、 C# も Java と同じくガベージコレクション頼みの開放の為、プログラマが管理しづらい仕様となっている。

• その点、 Ruby はガベージコレクションの機能も備えつつ、プログラマが容易にリソースを管理出来るようになっている。( C++ のスマートポインタ)

• まさしく、良いとこ取りだと感じた。

Page 11: 大川祐介

安全性の確保

• 安全性を高める為に、わざと問題を起こし辛くしている。

• ファイナライザ(デストラクタの様なもの)を誤って修正し、ガベージコレクションによる不意の開放時のエラーを起こし辛くしている。

Page 12: 大川祐介

開発の容易性(柔軟性)

• 現在主流になりつつある、アジャイル方式などの短期リリースなどに対応可能。

• より早くユーザーの意見(指摘)を聞く事ができる為、リスクを最小限に抑えることができる。

Page 13: 大川祐介

Perl 譲りの強力な正規表現

• 私個人は苦手だが、正規表現を使うことにより、コードの簡略化が図れる。

• ファイル処理に対して絶大な威力を発揮する。

Page 14: 大川祐介

Java との互換性

• Java で提供されている機能を使う為のライブラリが提供されている。( RubyJavaBridge )

• 逆に Java の中で Ruby を使うことの出来る JRuby も提供されている。 ← Java 仮想マシン上で動作できるRuby 。よって Unix も対応可。

Page 15: 大川祐介

なんてたって Ruby on Rails !

• Ruby の名を世間に知らしめたもの。( Web アプリケーション用フレームワーク)

• 様々な機能を提供してくれるライブラリ。

• 有用なプラグインが多数公開されている。

• ちょっとしたコマンド実行で、最低限の実装が終わってしまう。

Page 16: 大川祐介

Rails の特徴• DRY ( Don't Repeat Yourself )の原則:同じこと

の繰り返しや、コードの重複を排する。

• フルスタック: Webサーバー、テストツール、ベンチマークツール、コードジェネレータ、デバッグ用ツールなど開発に必要な物が揃っている。

• 設定よりも規約( Convention over Configuration ):規約を課す事により設定項目の省略を図る。(レールに乗る:制約に従う事により、冗長性が排除され開発効率が上がる。制約が自由をもたらすという逆転の発想。)

Page 17: 大川祐介