2016-10-01から1ヶ月間の記事一覧

capybaraのrpsec実行時にブラウザを切り替えるgemを作成しました

普段はwebkitで十分なのですが、たまにchromeで開きたいって時ありますよね? そんなgemを作成しました。 GitHub - ryosuke-endo/capybara_switch_driver 中身は微妙かもしれないけど、自分で使う分だからいいのかなと思いました。 以上です。

javascriptのprototypeオブジェクトの利点

javascriptのprototypeオブジェクトについてです。 今まで適当にやっていたのですが、少しまとめたいと思います。 メモリの使用量を削減できる メンバーの追加や変更をインスタンスがリアルタイムに認識できる メモリの使用量を削減できる こちらはどういう…

database cleanerの設定について

rspecのテスト実行時にDatabaseCleanerを使用しています。 データベースを毎回キレイな状態にしてくれるやつですね。 これの何がいいかというと、テストデータが固定化されるのと、増えないのでテストの実行が遅くならないということです。 ただし、設定によ…

viewの条件式を減らす

viewにロジックを書きすぎるな!ってことです。 自戒の意味を込めて書きます。 - if area? && action_name == "show" - if citys? = render "foo" - else = render "bar" - else = render "bar" こういうのがあったとします。 viewにこんだけロジックが積ま…

javascriptとrubyのクロージャーについて

クロージャーは「ローカル変数を参照する関数」です。 このいいところは、変数を一時保存できるところだと思ってます。 function closure() { let x = 0; return function(){ return ++x; } } c = closure() c() =>1 c() =>2 何回押したとか、初回だけとかの…

javascriptの引数について

javascriptの引数についてです。 引数のチェックをjavascriptでは行ってくれません。 ES2015からは改善されているようです。 引数のチェックはしない function showName(name) { console.log(name); } showName('foo'); =>foo showName('foo', 'bar'); =>foo…

javascriptのスコープについて

javascriptのスコープについてです。 曖昧な知識のままだったので、まとめます。 ブロックスコープ ブロックでのスコープという概念がありません。 { var i = 5; } console.log(i); =>5 このように平気でアクセスできてしまいます。 rubyだとブロックの中の…

javascriptの関数の書き方について

最近少しずつ、javascriptについても学習をしています。 当然ながら、rubyとは動きが違うのですが、違う部分を意識するためにも、ここに記載しておきます。 関数の作り方 function命令で定義する Functionコンストラクターで作成する 関数リテラルで作成する…

nginxのパフォーマンスを向上させてみる

前回のエントリーでパフォーマンスの測定ができるようになりました。 今回はnginxのパフォーマンス向上に努めます。 なお、サイトの事前調査では最大リクエスト数の処理数が70なので、限界までリクエストするようにします。 最初に設定前のファイルを見てみ…

Apache Benchでパフォーマンス測定する

サイト作成していて、負荷テストにはまっていました。 便利なパフォーマンス測定ができるものがありますね。 パフォーマンス測定 Apache Bench こちらを使用すれば、サイトに負荷をかけてレスポンスの向上するのかが確かめることができます。 ab -n 100 -c 1…

factory girlでnamespaceのあるモデルのfactoryを生成する

ActsAsTaggableOnのデータを生成したかったのですが、namespaceがあるために生成できませんでした。 そんな時の技です。 FactoryGirl.define do factory :tag, class: ActsAsTaggableOn::Tag do |f| f.name '脈あり' end end 公式にもっといいのがありました…

factory girlのtraitで関連するモデルを作成するのを選択制にする

関連するモデルを作成する場合は、associationを使います。 ただ、必ずしも毎回そのモデルが必要になるのか?と言われると疑問が浮かびます。 なので、選択制にする方が自由度が高いと考えています。 taritは選択制にできるので、使い方を書きます。 trait f…