初参加してきました。
目的:
- 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なら結果はtrue
、Shift_JISならfalse
になります。
とあるのでバイト列での比較になっていた。 でもこんなトリッキーなコード書くことがあるのだろうか?
多分だがこの比較が発生し得るコードがレビューで来たらぼくならリジェクトすると思う。 少なくとも動作の予測が立ちにくいので別の実装を求めるか完全比較以外はリジェクトするかな。 入力される値がある程度決まっているなら配列とかに持たせてチェックさせる…みたいな実装する。
反省点:
いろいろ雑談やLTに対するコードの指摘などなどを行っていたらすぐに時間がなくなってしまったので 目標だった2章の写経完了まではいけていない。 もっと集中すべきだったか…。
追記:
著者の id:JunichiIto さんからフィードバックを受けていたのですがブログ側に反映し忘れていたので追記です(いまさら)
こちらの記事で捕捉されている内容が解答なのですが最終的にチェリー本を全て読了したあとでこのブログの内容を読み返したところ 気づくきっかけのようなものがチェリー本のなかにありました(具体的にどこのページだったかは忘れた) なのでとりあえずわからなかったところはメモして一読するのをオススメします。 そのうえでまだわからなかったらブログとかに書くとRubyチョットデキルひとたちが心優しく教えてくれると思います!