はじめに
今週もSendagaya.rbに参加させていただきました。
今回は、開発上のお悩み相談という感じではなく、気になる事柄について話し合うといった回でした。 そこで、話題になったことや勉強になったことをまとめたいと思います。
話題になったこと
Rubyのシングルクォートとダブルクォートについて
Rubyを学び始めて間もない人がいらっしゃったので、その方から「シングルクォートとダブルクォート、どっちを使いますか?」という話題が挙げられました。
そもそも、シングルクォートとダブルクォートはどのように違うのかというと公式のリファレンスには以下のように書いてあります。
ダブルクォートで囲まれた文字列ではバックスラッシュ記法と式展開(後述)が有効になります。シングルクォートで囲まれた文字列では、 \ (バックスラッシュそのもの)と \' (シングルクォート) を除いて文字列の中身の解釈は行われません。シングルクォートで囲まれた文字列では行末の \ は \ そのものとして解釈されます。 リテラル (Ruby 2.7.0 リファレンスマニュアル)より
これは初めて知ったのですが、ダブルクォートの方がバックスラッシュ記法と式展開を行うため、若干(本当に誤差程度)遅いようです。
参加者で「シングル、ダブル使い分け派」と「ダブルを使う派」でアンケートを取ったところ、使い分け派が5名、ダブル派が7名という結果でした。
FJORD BOOT CAMPのソースコードではRails本家のRubocopの設定を採用しているため、基本的に私はダブルクォートを使っています。というより、今回はFJORDからの参加者が多かったので、上記のような結果になったと思われます🤔
また、「Rubyにはヒアドキュメントも色んな書き方ができるけど、これって他の言語ではあまりないよねー」というRubyの特徴の話にもなりました。
私はRuby以外にはJavaScriptくらいしか触ったことがなかったので、他のPythonやPerlなど他の言語のことを少し知ることができて、新鮮でした。
エディタは何を使っていますか??
これは「あわや戦争になるのでは」と思いましたが、そんなこともなく、主に@sanfrecce_osakaさんがRubyMine便利機能をプレゼンするという感じで和やかな雰囲気でした。
- コードの中で好きなところにブックマークを付けられるfavorite機能
- Rspecが見やすくなるstructure機能
- 該当のオブジェクトに関するドキュメントを参照する機能 などなど、自分が知らないRubyMineの便利機能がたくさんありました。
『達人プログラマー』にも自分の使っている道具は使いこなせるようになろうという旨が書かれていたのを思い出しました。隙を見つけてはRubyMineのドキュメントを読んで、色んな機能を使いこなせるようになりたいと思いました。
ちなみに、これもアンケートを取ったところ、RubyMine派が5名、VSCode派が5名という結果になり巻いた。
感想
今回は、素朴な疑問を話し合うという感じでしたが、普段はあまり気に留めないシングルクォートやダブルクォート、なんとなく使っているリテラル、エディタなどを改めて考える良い機会になりました。
Rubyがどのような思想や設計で作られて、どのような特徴があるのかというところがあまり分かってないので、機会を見つけて本などを読んでいきたいです。
またエディタについては、最近「どこか非効率的な使い方をしているのではないか」とも思っていたので、大変助かりました😆