Kyoto.rb Meetup 20171216

kyotorb.doorkeeper.jp

初参加してきました。

目的:

  • Rubyの理解度をあげる

目標:

  • 1章の写経を完了
  • 2章の写経を完了

LT発表:

SFCをむやみに使うべきではない in Rails(Single File Component)

発表者: shantti_y さん

HTML/CSS/JavaScriptがvueファイル内で完結している状態。 影響がそのコンポーネントに閉じ込められるのがいい。 LTを英語でしていてかっこよかった。

プロRuby

文字列の比較:

↓がよくわからない、文字に当てられている番号で比較している?という質問を参加者のかたにしてみた。

'a' < 'b' # true わかる
'a' < 'A' # false わからない
'a' > 'A' # もっとわからない

'abc' < 'def'  # true  わかる
'abc' < 'ab'   # false ?アスキーコードの合計値で比較しているわけでもない?
'abc' < 'abcd' # true  ???もしかして文字列の長さか?

'あいうえお' < 'かきくけこ' # true

プロRuby本にはさらっと書かれて説明がなかったのでこういうときコミュニティーで聞けるひとがいるのは心強いですね。

アスキーコードで比較されているんじゃないかな?

とのことだったのでググってみた。

Ruby リファレンス <, <=, >, >= (String)

文字列の順序は、バイト列の単純な比較によります。"α" < "あ"は、文字コードUTF-8なら結果はtrueShift_JISならfalseになります。

とあるのでバイト列での比較になっていた。 でもこんなトリッキーなコード書くことがあるのだろうか?

多分だがこの比較が発生し得るコードがレビューで来たらぼくならリジェクトすると思う。 少なくとも動作の予測が立ちにくいので別の実装を求めるか完全比較以外はリジェクトするかな。 入力される値がある程度決まっているなら配列とかに持たせてチェックさせる…みたいな実装する。

反省点:

いろいろ雑談やLTに対するコードの指摘などなどを行っていたらすぐに時間がなくなってしまったので 目標だった2章の写経完了まではいけていない。 もっと集中すべきだったか…。

追記:

著者の id:JunichiIto さんからフィードバックを受けていたのですがブログ側に反映し忘れていたので追記です(いまさら)

qiita.com

こちらの記事で捕捉されている内容が解答なのですが最終的にチェリー本を全て読了したあとでこのブログの内容を読み返したところ 気づくきっかけのようなものがチェリー本のなかにありました(具体的にどこのページだったかは忘れた) なのでとりあえずわからなかったところはメモして一読するのをオススメします。 そのうえでまだわからなかったらブログとかに書くとRubyチョットデキルひとたちが心優しく教えてくれると思います!