タグ

ブックマーク / mametter.hatenablog.com (3)

  • 『API デザインケーススタディ』の紹介 - まめめも

    著者の田中哲さん (@tanaka_akr) から献をいただきました! *1 APIデザインケーススタディ ~Rubyの実例から学ぶ。問題に即したデザインと普遍の考え方 (WEB+DB PRESS plus)posted with amazlet at 15.12.14田中 哲 技術評論社 Amazon.co.jpで詳細を見る (電子版)をもらったのは RubyKaigi の前日の夜。翌日に TRICK 2015 の発表を控えていましたが、読み始めると面白すぎて、発表前までに読み終えてました。ちなみに献とは別にジュンク堂 RubyKaigi 店で一冊買いました。(サインもろた) 自分が思った、読者層ごとの勝手な紹介を書いてみます。 普通の Ruby ユーザへの紹介 子プロセスを起動する Process#system 、#spawn 、open3.rb *2 あたりを使ったことがあるで

    『API デザインケーススタディ』の紹介 - まめめも
  • ハッシュは頻繁に参照する値を最後に入れると高速 - まめめも

    明日から RubyKaigi なので、ちょっとした小ネタを一つ。 例えば、0 から 9999 までをハッシュに順に入れます。 h = {} 10000.times do |n| h[n] = true end このとき、h[9998] や h[9999] は、h[0] や h[1] より高速です。 どのくらい高速かというと、 1_000_000_000.times { h } # 40.8 sec (ループ自体の速度) 1_000_000_000.times { h[9999] } # 57.2 sec 1_000_000_000.times { h[0] } # 89.1 sech[0] は 89.1 - 40.8 = 48.3 nsec 、h[9999] は 57.2 - 40.8 = 16.4 nsec ということになります。なんと 3 倍も速い。*1 なぜこんなことが起きるのか ハ

    ハッシュは頻繁に参照する値を最後に入れると高速 - まめめも
  • [Ruby] Ruby 3.0 の特大の非互換について - まめめも

    タイトルは釣りです。すみません。Ruby 3.0 はかなり先の将来の話なので、最終的にどうなるかはわかりません。でも Ruby 3.0 に重大な変更が予定されているのは事実なので、一緒に考えて欲しいと思います。 immutable string literal Ruby 3.0 では文字列リテラルをデフォルトで immutable (破壊的変更不可) にする、という方針が『決定』しました。(Feature #11473: Immutable String literal in Ruby 3) つまり、次のようなプログラムが動かなくなります。(当チケットから少し改変して引用) sql = "SELECT #{sec_id}, pt.path, st.doc_count " sql << "FROM #{stats_tablename} AS st " #### ←ここで例外: can't m

    [Ruby] Ruby 3.0 の特大の非互換について - まめめも
  • 1