GraphQLを用いたサイトに おけるパフォーマンス改善 (ECサイトを題材に)/ Improving online shopping site performance which using the GraphQL
![Railsのタイムゾーン](https://cdn-ak-scissors.b.st-hatena.com/image/square/1a732a9993b735f7a7464a9aaa0bf4bdd6304f4d/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fdd7ff9aa76d546d298a8e0752855629a%2Fslide_0.jpg%3F9699150)
ActiveRecordでN+1クエリを潰すためにeager loadingを行う場合、preloadやincludesやeager_loadが役に立つ。 Preload, Eagerload, Includes and Joinsという記事にそれらの違いがよくまとめられているんだけど、includesが挙動を変える条件があまり正確に書かれていなくて自信が持てなかったし、そもそも記事が古いのでRails4.1.5のソースを読んで調べた。 せっかく調べたので、全体を通して日本語でまとめてみようと思う。 User.joins(:posts).where(posts: { id: 1 }) # SELECT `users`.* FROM `users` INNER JOIN `posts` ON `posts`.`user_id` = `users`.`id` WHERE `posts`.`id
簡単な注文システムを想定してセッションを進めます。 以下を実行して、アプリの開発に必要となるファイルを生成します。 (rails -h と実行すると、利用可能な rails サブコマンドとサブコマンドの説明が表示されます) rails new chumon 必要なファイルが chumon ディレクトリの中に生成されます。 以降は chumon ディレクトリの中で作業を行います。 cd chumon 以下は Rails3.2 で最初にやらなければならないお決まりの設定です。 Gemfile を編集します。 gem 'therubyracer', :platform => :ruby Gemfile を編集した後は必ず bundle install コマンドを実行します。 bundle install Rails アプリのディレクトリ構造です。 . # |-- Gemfile # アプリで利用
はじめましてこんにちは。 KRAYアルバイトの浅海です。 html5のcanvasを使ってお絵かき投稿サイトを作ってみようと思います。 初めてブログ記事を書くということで気合が入りました。 ちょっと長めですがお付き合い下さい。 機能 お絵かき投稿サイトの必要最低限な機能って? ざっと下のような機能を入れてみます。 絵を描ける 絵を消せる 描画を一回分戻れる 線の太さを変えられる 線の色を変える 絵を投稿できる 投稿された画像の一覧を表示できる → 完成見本はこちら完成見本の公開は終了致しました。 絵を描ける HTML5のcanvasにマウスの軌道に線を引いていくわけです。 canvasでのマウス軌道の描き方は、 ・mousemoveイベント発生時に点をプロット という手段が真っ先に思い浮かぶと思いますが、これは、以下の様になります。 これではお話になりません。 なので、点ではなく線を引くこ
こんにちわ、プログラマの川口です。今回はBackbone.jsをCoffeeScriptで記述し、Ruby on Railsと組み合わせて利用する簡単なパターンを試してみました。CoffeeScriptは非常に簡潔にJavaScriptを記述できる上に学習コストも低いのでおすすめです。最近はJavaScriptがプロジェクト全体のコードに占める割合が大きくなってきていますし、それに比例してやはりメンテナンス性や可読性が下がっていくこともあり事前に対応策が必須です。 Backbone.jsとは・・・とかは別にいいデスヨネ?dwangoさんのBackbone.js記事を見てください(完全にネタかぶりです、本当にありがとうございました)。 前準備 バージョンはこんな感じ。 Ruby on Rails 3.1.1.rc1 CoffeeScript version 1.1.2 Backbone.js
先日のももクロハッカソンで出会った wantedly を作ってる仲さんが と言ってたので、面白そうなので wantedly を速くしてみました。 wantedly ちなみにデータが数百万オーダーもなさそうなのに、どのページもログインすると2-5秒ぐらいかかっていたので、確実に速くできそうだなぁという感覚はやる前からありました。 アプリケーションサイドのチューニング 初心者*1にありがちな問題として SQL に適切にインデックス張ってない キャッシュすべき場所をキャッシュしていない 無駄なデータを引きすぎてる ことがよくあります。ので順に実装を見ていきました。 SQLに適切なインデックスを張ってない 張ってありました!びっくり!\(^o^)/ キャッシュすべき場所をキャッシュしていない Facebook API を利用したアプリケーションなんですが、ユーザのデータの取得を毎回馬鹿正直に HT
最近クックパッドでは、アプリケーションサーバの大半が Rails 2.3 から Rails 3 に置き換わったのですが*1、リリース前のベンチマークの時点ではあまりパフォーマンスが出ず四苦八苦していました。具体的には Rails 2.3 の時と比べ MRI 1.8.7 だとレスポンスタムが200%ぐらい遅い結果でした。Rails 3 になって実装が Merb core を取り入れ疎結合で綺麗になった反面、より多くのオブジェクトと・メモリを利用する様になった影響かと思います。 そこで Ruby インタプリタの変更*2を行い検証をしたところ MRI 1.8.7 (Rails 2.3と比べ) 約200%遅い MRI 1.8.7 -> Ruby Enterprise Edition 1.8.7 2011.03 (tcmalloc 無効) 約180%低速 MRI 1.8.7 -> Ruby Ente
_ まっさらな Ubuntu 11.04 の環境で Rails3 の動作環境を最低限整える Ubuntu 11.04 が出てまっさらな環境を作ったので,とりあえず Rails3 が動かせる環境を最低限整えるまでの手順について,せっかくなので残しておくことにしよう.基本的に rvm のインストールガイドを読めば特にひっかかる部分はないとは思いますが,ところどころはまった部分があったので. rvm のインストールに必要なものや,Ruby のインストール時に必要なもの,そして Rails をインストールしてから必要なものをあらかじめインストールしておく. $ sudo apt-get install curl git bison zlib1g-dev libsqlite3-dev libreadline-dev libssl-dev sqlite3 インストールが済んだら以下のコマンドを実行して
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く