Ruby: これはなくてもいいかも?と思う10の機能(翻訳)

概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Idiosyncratic Ruby: Less Feature-Rich, More Fun 原文公開日: 2017/12/25 著者: Jan Lelis サイト: Idiosyncratic Ruby idiosyncratic-ruby.comより Ruby: これはなくてもいいかも?と思う10の機能(翻訳) 1993年にRubyが誕生して以来、長い月日が流れています。好ましいコーディングスタイルも大きく変わり、定まったベストプラクティスも生まれました(とはいうものの帯に短し襷に長しなのは世の常です)。それと同時に、Rubyのツールサポートはずいぶん向上したものの、言語はまだまだ複雑すぎます。おそらく、Rubyの機能を少しばかり間引く時が来たのでしょう。 機能の間引きは、既存コードが動かなくなる1というつらみを伴わないわけにはいきませんが、それでもやる価値はあります。 Ruby初心者が最初から「正しい書き方」を学べる: 「forループは避けるべし」といったベストプラクティスを後から学ばなくてよくなる 言語がよりシンプルになる: すなわちツールのサポートも改善される! コードに甚だしい非互換性をもたらさずに間引けそうな(そう願っています)Rubyの機能を、一部に独断を含みつつ以下にリストアップしました。 (多少の差はあれど)あまりがたつかずに削除できそうなRubyの10の機能 1. forキーワードとinキーワード forループはめったに使われることがなく、Array#eachやInteger#timesといった意味論上ほぼ同等の機能の方が遥かに多用されています。しかも、forはeachを直接使うよりもわずかに遅いのです。『The Evils of the For Loop(forループは邪悪)』もご覧ください。 2. ?で始まる1文字リテラル ?を使うと1文字だけの文字列を引用符なしで書けます。Ruby 1.8とRuby 1.9のどちらでも動くコードを書くときにとても有用でした。 “Idiosyncratic”[0] == ?I Ruby 1.9以降では右辺と左辺はどちらも”I”が返り、Ruby 1.8では右辺と左辺はどちらも73になるので、結果はどちらのバージョンでも一貫してtrueになります。Ruby 1.8のサポートは2013年で終了したので、?構文をサポートするメリットはもはやありません。 3. @@によるクラス階層の変数 クラス変数は使うもんじゃありません。ほぼすべての初心者が混乱するので、言語から削除すべきです。代替手段をいくつかリストアップします。 クラスインスタンス変数 ActiveSupportのクラス属性 Hanamiのクラス属性 公平のため申し添えますと、クラス変数の削除は本記事の他の項目よりも広範囲に渡ってコードが動かなくなるかもしれません。単に削除するには大きすぎるやつです。 … Continue reading Ruby: これはなくてもいいかも?と思う10の機能(翻訳)