タグ

ブックマーク / kwatch.hatenadiary.org (5)

  • RubyがPHPに勝つにはメソッド呼び出しのための新しい演算子が必要 - kなんとかの日記

    PHPerがRubyを触り始めて最初に不機嫌になるのは、空文字列が偽ではないことだ。つまり、PHPなら「if ($var)」で済むのが、Rubyだと「if !var.empty?」と書かなければならない。これでPHPerは不機嫌になる (まあ気持ちは分かる)。 if ($var) ... # PHP if !var.empty? ... # Rubyそれだけならいい。もし値がnilである可能性があるなら、Rubyでは「if var && !var.empty?」と書かなければいけない。この時点でPHPerは不機嫌どころかブチ切れる。なんでこんなに書かなきゃいけないんだ!? PHPなら「if ($var)」で済むのに!! SHIIIIT!! if ($var) ... # PHP if var && !var.empty? ... # Rubyここで、「空文字列が偽になるような言語仕様こそク

    RubyがPHPに勝つにはメソッド呼び出しのための新しい演算子が必要 - kなんとかの日記
    uk-ar
    uk-ar 2011/07/15
    もっと簡単な方法を考えてみると、NilClass#empty? を定義する方法が思いつく。これは実に手軽な方法であり個人的にもお気に入りなのだが、なぜかRubyには取り入れられない (まあ「nil が空ってどういう意味?」と聞かれたら答
  • 形式的な仕様記述がすごいらしい - kなんとかの日記

    早速,メルコ・パワー・システムズの開発部門が原因究明に乗り出す。しかし,いくらデバッグしてみても不具合の原因が分からない。それどころか,現象が非常にまれにしか起きないため,不具合の再現すらおぼつかない状況だった。 開発作業に暗雲が立ち始めたちょうどその時,社内でモデル検査技術の試験適用を進めていた早水公二氏が現れる。新技術の調査・導入を担当する技術統括部 ビジネスチーム2に所属するモデル検査の専門家だ。既に何件かのプロジェクトでモデル検査の効果に手応えを感じ始めていた同氏は,この不具合の原因究明にもモデル検査技術が使えないかと思い立ち,作業に取り掛かる。そして,モデルの作成やツールによる探索作業などを経た13時間後,見事,不具合の原因を見つけ出したのだった(図2,図3,図4)。 第5回:国内でも成功事例が出現,形式的手法の壁は高くない(2ページ目) | 日経 xTECH(クロステック) 形

    形式的な仕様記述がすごいらしい - kなんとかの日記
    uk-ar
    uk-ar 2010/07/09
    第5回:国内でも成功事例が出現,形式的手法の壁は高くない - 組み込みソフト - Tech-On! 形式的手法を用いることで、再現性が非常に低いバグの原因をわずか13時間で見つけたとな。すごすぎる。
  • RSpec のすごいところ - kなんとかの日記

    (注: 以下の内容は、RSpec ユーザの間で広まっていることでもなく、もちろん RSpec 開発チームの公式な見解でもなく、あくまでワシの個人的な見解です。) RSpec のすごいところは、コードに対してではなく仕様に対してテストを書くことを明確にしたことだと思う。何を今さらと言われそうだけど、今さらになってようやく気づいたニワトリ頭ですまんかった。 ワシも最初は、「assert_equal(expected, actual)」のかわりに「actual.should == expected」と書くかっこよさに目を奪われて、テストコードを自然言語に近い形で記述するのが RSpec のすごいところだと勘違いしてたし、それが「TDD (Test Driven Development)」から「BDD (Behaviour Driven Development)」へという新しい潮流だと勘違いしてた

    RSpec のすごいところ - kなんとかの日記
    uk-ar
    uk-ar 2010/07/09
    それよりも RSpec で重要なのは、まず describe() と it() で仕様を記述し、それに対してテストコードを書くということが、自然に表現されていることだ。Test::Unit での TestCase や test_xxx() は、単にテストコードを分類していただ
  • pure Ruby な C コンパイラがあったらいいな - kなんとかの日記

    自作の拡張ライブラリを作ったのはいいけど、Windows 用バイナリを作ろうとして行き詰まる。Windows ではどうやってコンパイルすればいいのかわかんないし、そもそも WindowsRuby からして種類がいくつかあって、どれをターゲットにしたらいいのかもわかんない。 で思ったのだが、どうせなら pure Ruby な C コンパイラがあれば、こんなことで悩まなくて済むんじゃなかろうか。そいつで Windows 用の拡張ライブラリどころか、Ruby 体もコンパイルできれば、なんだかすごい世界が広がるように思う。ちょうど、C をなるべく排除しようとしてる Rubinius とまったく逆のアプローチ。 C のコンパイラを Ruby で作る場合、フロントエンドはまだいいとして、バックエンドが問題だよな。Pure Ruby なアセンブラを作らなきゃいけないけど、アセンブラよく知らんし。

    pure Ruby な C コンパイラがあったらいいな - kなんとかの日記
    uk-ar
    uk-ar 2010/01/14
    どうせなら pure Ruby な C コンパイラがあれば、こんなことで悩まなくて済むんじゃなかろうか。そいつで Windows 用の拡張ライブラリどころか、Ruby 本体もコンパイルできれば、なんだかすごい世界が広がるように思う。ちょ
  • 大量のハッシュデータを簡潔に作成する - kなんとかの日記

    スクリプト言語では Hash や dict のリテラルが用意されているので、書きやすい。しかしテストデータなどで大量の記述が必要になると、さすがにちょっと面倒である。 data = [ {:name=>"Haruhi", :gender=>1, :role=>"Leader of SOS Brigade"}, {:name=>"Mikuru", :gender=>1, :role=>"Time Traveler"}, {:name=>"Yuki", :gender=>1, :role=>"Humanoid Interface"}, {:name=>"Itsuki", :gender=>0, :role=>"ESPer Boy"}, {:name=>"Kyon", :gender=>0, :role=>"Story Teller"}, ] 同じキーが繰り返し出てくるのがいやだよね。これなら

    大量のハッシュデータを簡潔に作成する - kなんとかの日記
  • 1