『ビューティフルコード』

ビューティフルコード (THEORY/IN/PRACTICE)

ビューティフルコード (THEORY/IN/PRACTICE)

  • 4/18 Amazonからおすすめのメールがくる。
  • 4/20 注文する。
  • 4/25 Amazonから在庫がないというメールがくる。
  • 4/29 Amazonの注文をキャンセルする。
  • 4/29 紀伊国屋で注文する。
  • 5/2 届く。

今年のゴールデンウィークはこれで退屈せずに済む。

29章の『エッセイのごときプログラム』はなかなか興味深い。特にRakefileの文法の話の中で、文法を既存のRubyにあわせる『シンプルさ』を追求するよりも、『人間の書くプログラムのシンプルさ』を選んだとあった。

(a)

task({:default => [:test]})
task(:test, lambda(){
        ruby "test/unittest.rb"
     })

こう書くよりも

(b)

task :default => [:test]
task :test do
  ruby "test/unittest.rb"
end

こう書く方がより人間が書くコードとしてはシンプルになるということだ。

(b)の方がシンプルであるというより、(b)の方が『自然な表現』であると思った。

本の中でrakeのRakefileDSL(Domain Specific Language)と言っていたが、DSLというのは、特定の目的のために最適化された言語という意味で、これはその目的にあった表現の『自然さ』の追求なのではないかと思う。