10. 「安心・安全・安定・信頼」できるインターネットサービスを 汎用言語と比べると • 利点 • 目的を達成するための最低限の実装でよい • ループや制御構造などを実装しないで良いかも • 特定の目的に特化できるので、想定利用者を限定可能 • 専門家が分かる表現で良い • コード自体が問題を完結に記述したものである • 自然言語風に書けるものが多い 7
Rubyは内部DSL(Domain Specific Language)に向いている言語と言われます。Rake, RSpec, Rack, Sinatraなどは内部DSL on Rubyの代表的なサンプルです。Rubyの構文のユルさとメタプログラミングが内部DSLを容易にするんですね。 しかし正直僕は、何が内部DSLで、何が内部DSLでないのかがわかっていません。人が何をさして「これは内部DSLである」と言っているのかがよくわかりません。 そんなわけで… 以下では、Userクラスの設計を通して内部DSLらしきものを作ってみます。このイテレーションに対して「ここからが内部DSLだよ」「これは内部DSLとは呼ばないよ」と、誰か僕に優しく教えてくれませんか? Userクラスの作成 Userクラスはユーザ情報を管理するクラスです。ファイル名はuser.rbとします。 まずはユーザの登録機能を作りま
ような気がするのでメモ。 「instance_evalとmodule_evalを理解」というのは特異メソッド、インスタンスメソッドの違いを理解して、 必要に応じてinstance_evalとmodule_evalを使い分けられる、ということかと思います。 なので、ゴールとしては、 block = Proc.new do def foo 'foo' end end というブロックがあったときに、これを使って特異メソッド、インスタンスメソッドを追加できるようになる、ってことでいいのかなと思った。 以下、その前提と問題。答えはきっとid:t-tairaが書いてくれます。 (2010/03/01追記) id:t-tairaさん回答ありがとー http://d.hatena.ne.jp/t-taira/20100227/1267232880 特異メソッドとインスタンスメソッド 特異メソッドは「特定の
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日本 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く