2016-10-01から1ヶ月間の記事一覧
普段はwebkitで十分なのですが、たまにchromeで開きたいって時ありますよね? そんなgemを作成しました。 GitHub - ryosuke-endo/capybara_switch_driver 中身は微妙かもしれないけど、自分で使う分だからいいのかなと思いました。 以上です。
javascriptのprototypeオブジェクトについてです。 今まで適当にやっていたのですが、少しまとめたいと思います。 メモリの使用量を削減できる メンバーの追加や変更をインスタンスがリアルタイムに認識できる メモリの使用量を削減できる こちらはどういう…
rspecのテスト実行時にDatabaseCleanerを使用しています。 データベースを毎回キレイな状態にしてくれるやつですね。 これの何がいいかというと、テストデータが固定化されるのと、増えないのでテストの実行が遅くならないということです。 ただし、設定によ…
viewにロジックを書きすぎるな!ってことです。 自戒の意味を込めて書きます。 - if area? && action_name == "show" - if citys? = render "foo" - else = render "bar" - else = render "bar" こういうのがあったとします。 viewにこんだけロジックが積ま…
クロージャーは「ローカル変数を参照する関数」です。 このいいところは、変数を一時保存できるところだと思ってます。 function closure() { let x = 0; return function(){ return ++x; } } c = closure() c() =>1 c() =>2 何回押したとか、初回だけとかの…
javascriptの引数についてです。 引数のチェックをjavascriptでは行ってくれません。 ES2015からは改善されているようです。 引数のチェックはしない function showName(name) { console.log(name); } showName('foo'); =>foo showName('foo', 'bar'); =>foo…
javascriptのスコープについてです。 曖昧な知識のままだったので、まとめます。 ブロックスコープ ブロックでのスコープという概念がありません。 { var i = 5; } console.log(i); =>5 このように平気でアクセスできてしまいます。 rubyだとブロックの中の…
最近少しずつ、javascriptについても学習をしています。 当然ながら、rubyとは動きが違うのですが、違う部分を意識するためにも、ここに記載しておきます。 関数の作り方 function命令で定義する Functionコンストラクターで作成する 関数リテラルで作成する…
前回のエントリーでパフォーマンスの測定ができるようになりました。 今回はnginxのパフォーマンス向上に努めます。 なお、サイトの事前調査では最大リクエスト数の処理数が70なので、限界までリクエストするようにします。 最初に設定前のファイルを見てみ…
サイト作成していて、負荷テストにはまっていました。 便利なパフォーマンス測定ができるものがありますね。 パフォーマンス測定 Apache Bench こちらを使用すれば、サイトに負荷をかけてレスポンスの向上するのかが確かめることができます。 ab -n 100 -c 1…
ActsAsTaggableOnのデータを生成したかったのですが、namespaceがあるために生成できませんでした。 そんな時の技です。 FactoryGirl.define do factory :tag, class: ActsAsTaggableOn::Tag do |f| f.name '脈あり' end end 公式にもっといいのがありました…
関連するモデルを作成する場合は、associationを使います。 ただ、必ずしも毎回そのモデルが必要になるのか?と言われると疑問が浮かびます。 なので、選択制にする方が自由度が高いと考えています。 taritは選択制にできるので、使い方を書きます。 trait f…