2017年4月30日日曜日

初めてのRuby 1章について

  • 「言語のしくみ」を読んで、MatzさんとRubyに改めて興味を持ったので、Rubyエンジニアの方に聞いたら「Rubyは作りたいものを作りやすい」とのことでした。
  • 「初めてのRuby」を以前買っていたので読み直しました。
  • 他の言語経験者向けの入門書で、他の言語や一般的な言語の作りと比較してRubyの基本を説明しています。リファレンスを読みながら進められるところまで。
  • 「1章 ようこそ、Rubyのある生活へ」で気になったところをまとめました。
  • コラムでは、「文字列の変更可能性」や「型変換」など、簡潔に他言語との比較で、はまりそうなポイントを説明していて気に入ってます。
  • バージョンが1.8, 1.9対応だったのが難ですが、それ以外はおすすめです。

1章 ようこそ、Rubyのある生活へ

  • Rubyの主要概念が書いてある。
  • バージョンナンバーの振り方や、開発環境/実行環境など一通り書いてある。
  • Rubyの文脈を理解してRubyらしいコードを書くとよい。

Rubyの特徴的な部分で気になったところ

  • 動く擬似コード
    • ほぼ擬似コードのまま動く
    • 処理の本質的な記述に集中できる。
  • 高階関数
    • コードブロックというオブジェクトをやりとりすることができる。無名関数のように使える。
    • コードブロックを受け取るメソッド(=高階関数的に動く) => ブロック付きメソッド
    • コードブロックはクロージャとして機能するが、メソッドはそうではない。
  • DSL
    • 言語内DSL
    • カスタム言語を追加する => それを使ってソフトを作る。
    • このスタイルがRubyでは一般的になっている。
  • 動的
    • 実行時にクラス定義を処理する。
    • メリットはクラス定義まで通常の制御で管理できる。
    • デメリットはクラス名がずれたりしても、実行時エラーにしかならない。
    • どちらにしろ単体テストかくのだから、そのあたりは問題ないという考え方も。
  • メタプログラミング
    • DSL/動的な機能を使って、かなりの部分をパラメータ化できる。
    • それをしようとしたときに、特別な宣言等をする必要なく、シームレスに言語を拡張できる。
    • クラス定義が実行時に行われるため。

機能探索順

  1. 専用の文法
  2. 組み込み関数
  3. 組み込みクラス
  4. 標準ライブラリ
  5. 外部ライブラリ
  6. 自作

構成

  • 言語本体
  • 組み込みライブラリ
    • 組み込み定数
    • 組み込み変数
    • 組み込み関数
    • 組み込みクラス
  • 標準添付ライブラリ

外部ライブラリ

  • 標準添付ライブラリ
    • 追加インストール不要。
    • ユーザプログラムからインクルード必要。
  • 外部ライブラリ
    • 基本はRubyで書かれている
    • 拡張ライブラリ(C言語等で書かれたネイティブライブラリ)

実行環境

  • 対話

    irb
  • スクリプト実行

    ruby hello.rb
  • デバッガ

    ruby -rdebug hello.rb
  • リファレンス
    • コマンドライン

      ri String
    • irb

      irb help

あると便利

0 件のコメント:

コメントを投稿