孤独プログラマー譚

孤独死が近い。

2017-11-01から1ヶ月間の記事一覧

if文を考える

以下のような if 文をよく見かける。 if has_white_skin && is_good_looking p 'まいやん' # 色白で美人なのが、まいやん elsif has_white_skin && is_cute p 'さゆにゃん' # 色白で可愛いのが、さゆにゃん end ありがちだが、良くない。以下はもっと良くな…

JavaScript バブリング中毒

以下、セレクトボックスが3つ並んだHTML。 全てのセレクトボックスが選択完了した時、何か処理を実行したいとする。 <div id="wrapper"> <select id="select1"> <option value="">---</option> <option value="1">aaa</option> <option value="2">bbb</option> </select> <select id="select2"> <option value="">---</option> <option value="1">aaa</option> </select></div>

Ruby 元のクラスを触らずに機能を拡張する

機能を追加することになった。 だが、元のクラスは触りたくない。 だってバグりそうだから。前のテストのやり直しをさせらせるかもしれない…。自分の身を守るためにも、安全に機能を拡張する方法をまとめる。 以下クラスを拡張する。 フルネーム「白石麻衣」…

Ruby クロージャを使ってインスタンス変数を減らす

インスタンス変数は悪である。 だって、クラス内のどこからでも、値を改変できるから。 そこで、インスタンス変数を減らす手立を考えてみた。 以下、ゲッターもどき。 構造体を返す。構造体はラムダをgetメンバに持っている。 ラムダはクロージャになる。変…

Ruby ブロック付きメソッドの活用

普通は、スクリプトを読みながら、どういう順序・条件で処理が進むのかを調べる。それがつらい。処理の詳細を見ないと、実行順や分岐の条件が分からないのがつらい。だから、実行順や分岐の条件を、処理の詳細から分離する。OOPのTemplateパターンやStateパ…