Upload
toruby
View
1.976
Download
0
Embed Size (px)
Citation preview
RubyRuby 初心者!初心者!
大川祐介大川祐介
Ruby について感じたことの項目
• 穴埋め式プログラミング
• メタプログラミング
• ブロック構文(ブロック付きメソッド:イテレータ)
• リソースのスコープによる管理
• 安全性の確保
• 開発の容易性(柔軟性)
• Perl 譲りの強力な正規表現
• Java との互換性
• なんてったって Ruby on Rails !
穴埋め式プログラミング
• メタプログラミングやブロック構文などにより、段階的に分けた開発が容易になった。
• 開発者のレベルにより、タスクを効率よく分散し、チームレベルでの効率アップに繋がる。
• 新人等の教育も兼ねた実践投入に良いのでは?
メタプログラミング• Get 、 Set などを既に定義されているマクロの様なメソッド群?
• C# で言うところのプロパティが既に公開されている感じ?( C# ではさらに Get 、 Set にアクセスレベルも設けられる)
• ライブラリとして既に色々な機能が実装され、提供されている所が気に入った。
• C++ でのテンプレートメタプログラミング の事。(こちらに関しては、コンパイラ依存がある為、移植性に問題が出やすい)
ブロック構文(ブロック付きメソッド:イ
テレータ)
• 既にある特定の動作を保証しつつ、追加処理を加えることができる。
• イメージとしては override ?
• それらが、ライブラリとして提供されている。
• もちろんの事、自作のイテレータをライブラリとして提供する事ができる。
リソースのスコープによる管理
• 基本的には、 C# と同じと感じた。
• しかし、 C# も Java と同じくガベージコレクション頼みの開放の為、プログラマが管理しづらい仕様となっている。
• その点、 Ruby はガベージコレクションの機能も備えつつ、プログラマが容易にリソースを管理出来るようになっている。( C++ のスマートポインタ)
• まさしく、良いとこ取りだと感じた。
安全性の確保
• 安全性を高める為に、わざと問題を起こし辛くしている。
• ファイナライザ(デストラクタの様なもの)を誤って修正し、ガベージコレクションによる不意の開放時のエラーを起こし辛くしている。
開発の容易性(柔軟性)
• 現在主流になりつつある、アジャイル方式などの短期リリースなどに対応可能。
• より早くユーザーの意見(指摘)を聞く事ができる為、リスクを最小限に抑えることができる。
Perl 譲りの強力な正規表現
• 私個人は苦手だが、正規表現を使うことにより、コードの簡略化が図れる。
• ファイル処理に対して絶大な威力を発揮する。
Java との互換性
• Java で提供されている機能を使う為のライブラリが提供されている。( RubyJavaBridge )
• 逆に Java の中で Ruby を使うことの出来る JRuby も提供されている。 ← Java 仮想マシン上で動作できるRuby 。よって Unix も対応可。
なんてたって Ruby on Rails !
• Ruby の名を世間に知らしめたもの。( Web アプリケーション用フレームワーク)
• 様々な機能を提供してくれるライブラリ。
• 有用なプラグインが多数公開されている。
• ちょっとしたコマンド実行で、最低限の実装が終わってしまう。
Rails の特徴• DRY ( Don't Repeat Yourself )の原則:同じこと
の繰り返しや、コードの重複を排する。
• フルスタック: Webサーバー、テストツール、ベンチマークツール、コードジェネレータ、デバッグ用ツールなど開発に必要な物が揃っている。
• 設定よりも規約( Convention over Configuration ):規約を課す事により設定項目の省略を図る。(レールに乗る:制約に従う事により、冗長性が排除され開発効率が上がる。制約が自由をもたらすという逆転の発想。)