Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
まあ、タイトルは若干釣りで、特定のユースケースにおいて3割程度の高速化が見込める、というだけです。 joker1007/curl_escape: This gem provides fast URL escape by libcurl. 以下、実装経緯。 Railsのurl_forを辿っていくと、最終的にクエリパラメーターとして渡したハッシュやらArrayやらに対して、Object#to_queryを発行します。 このObject#to_queryの実装は、ほぼCGI.escapeの実行です。 やたらとlink_toの数が多くて、クエリパラメーターをそれなりに渡している、というページを表示しようとすると、割とこの処理時間が馬鹿にならない感じになってきます。 ということで、CGI.escapeを早くすれば、ちょっとはマシになるんじゃないかと思いました。 しかし、CGI.escapeの実装をR
Grape は Ruby で API を書くのに便利なフレームワークです。 Grape 自体については fakestarbaby 氏がすでにすてきなエントリを書いてくださっています。 Grape | API生成マイクロフレームワーク #Rails #Gems #Ruby #grape #api_builders - Qiita ここではどうやってテストを書くのかということについて書いてみたいと思います。 想定 RSpec の受け入れテストの request_spec を使うよ API は JSON を返すよ API 用のサブドメイン(api.foobar.com)を切っているよ JSON のテストは json_expressions を使うよ(参考) OAuth 2.0 の Provider になって Web Application Flow とかで認証しちゃったり モックは Factor
1. ベンチマーカー プロファイルすると、プロファイル自体に時間がかかるので正しく速度が測れない。そのためベンチマーカーも使うと良い。 ただし、ベンチマーカーはどこが遅いか等の解決の糸口は教えてくれない。 benchmark-ips 2. プロファイラ 実際に速度のボトルネックを見つける際に使う。 stackprof どのメソッドに多くの時間を費やしているかがわかる これを入れても速度にさほど影響がない rblineprof 行ごとにかかっている時間を出してくれる peek-rblineprofを使うとブラウザで結果が見れる ただしプロファイリングに結構時間がかかる (3. NewRelic) 実際、これらのことを手元でやらなくても、特にstackprof的なことや、どこのページやどのSQLクエリが特に遅いかなどは、 New Relic がやってくれます。お金を払うと結構詳細な部分も見れま
なぜTransactionが必要なのか Transationの目的は、あるいコードブロックにあるSQL文の変更を、全部成功することを守るための存在である。Transactionにより、データの統一性を保ことができる。銀行などの受け入れと引き出しの処理には必要でしょう。二つの処理の中一つが失敗すると、コードブロークにあるSQL処理を全部ロールバックされるのが、Transactionの特徴である。 Transationのロールバックが発火条件 Railsでは、ロールバックが発火するには、「例外」が必要である。これがTransactionを使うときのもっとも重要なことである。 例えば、Railsでは #update_attributeは例外を発火せずに、falseに返すとなる。そのため、#update_attributeを使うには、結果を見て、例外をスローする必要がある。Railsではびっくりマ
Phoenix の開発者である Chris McCord さんが 2015/11/18 に書いた記事「Phoenix is not Rails」の翻訳です。 僕は Rails 未経験の状態で Phoenix を始めたクチなのですが、最近 Rails もやるようになり、両者を比較して考えることが多くなってきたので、いい機会だと思い翻訳してみました。 誤訳があれば編集リクエストを頂けると幸いです。 まえがき 昨年12月、ブライアン1は年次総括で 開発を Elixir と Phoenix に移行する計画を公表しました。それから1年、実際に Rails から Phoenix へ移行してみて分かったのは、この作業はそれほど大変ではないということです。というのも、Phoenix は Rails と非常によく似た作りをしているからです。もちろん、フレームワークのきちんとした理解にはそれなりの学習が必要で
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに Railsアプリケーションを本格的に作り込んでいくと、「エラー」とは無縁ではいられません。 しょうもないバグでエラーが発生することもありますし、ほとんど不可抗力ともいえるような大規模なネットワーク障害でエラーが発生することもあります。 エラーの種類がなんであれ、エラーが起きた場合は「原因を素早く特定し、速やかに復旧させること」と「あるエラーが引き金になって、さらに大きなエラーに引き起こさないようにすること」が重要です。 エラー処理を適切に実装していれば、原因の特定や復旧もすばやくできますし、さらに大きなエラーを引き起こす可能性
<この記事は「Money Forward Advent Calendar 2015」の12日目の記事です> Railsでアプリを書いたり、RubyでRailsを書いたり(主にBug Fix)しています。金子です。 前書き RailsのCIではRailsのmasterとRubyのtrunkでテストが回っています。普段、趣味でこのテストを眺めていて、テストが壊れたりすると原因を調べてFixしたりしています。 RubyにもRailsにも毎日新しい機能が入っていますので、それらが衝突して思わぬバグが生まれることもあります。今年見ていて面白かったバグを3つほど紹介したいと思います。 第3位 突然の大量Error 例えばテスト結果はこちら。 1) Error: BelongsToAssociationsTest#test_with_select: ArgumentError: wrong number
はじめに ここ一年くらいずっと Rails の何がダメでどうすれば良くなるのかを考えていました。 Rails を使ってそれなりの規模のアプリケーションを作ったことがある人なら、メンテナンスのしづらさを感じたことがあるのではないでしょうか。 メンテナンスの問題は Rails 以外の開発でも発生することですが、実のところメンテナンスしやすいアプリケーションはどうすれば作れるのでしょうか? この難問に対して私も答えを持っていませんが、考え続けています。 少なくとも、 Rails Way や Rails Tutorial をベースにしたアプリケーション開発は、業務で用いるには簡単すぎるように思います。 「レールに乗る」という言葉がありますが、私は考え方を変えました。 Rails は規模の大きいフレームワークですが、土台に過ぎません。 Rails Way の設計方針は小規模な開発では有効ですが、規模
2年位Railsでコールセンターアプリ的なものを作っていました。 大したことは書けませんが、この2年間で思ったことなんかを徒然と書いてみます。 その前に どんなチームか? 電話する人たち:数十名 その人達のリーダー:5-10名程度 開発者:1-3人 デザイナがいないならWrapbootstrap https://wrapbootstrap.com/ デザイナはいないので自分たちでどうにかする必要がありました。 のでwrapbootstrap。 18ドル払うだけで多機能で色んな画面用のテンプレが揃ってるって素晴らしいですね。 複数人で作っても同じようなデザインに落ち着くこと 使う人達もデザインが良いと喜んでくれること(別部署に羨ましいって言われた) 大体社内ツールで使うようなデザインがそろってるので開発が早く進められること 当時はAce Adminを使うことにしました。 カラフルで明るい印象
はじめに これは 【その1】ドリコム Advent Calendar 2015 の19日目の記事です。 18日目はYさんの記事でした。 【その2】ドリコム Advent Calendar 2015の18日目はwasbi01さんの記事でした。 寺社自社で開発/運用している、Elixirを利用した広告配信システムについて紹介したいと思います。 自己紹介 @ohrdev 普段は写経(仏教的な意味で)や仏像彫り、寺社仏閣巡りをしています。 空いた時間はドリコムという会社で広告周りのシステムの開発をしています。 好きなbehaviourはgen_eventです。 Elixirについて ElixirはErlangのVM上で動作する比較的新しいプログラミング言語です。 Erlangで実装されている為、分散、耐障害性、ソフトリアルタイムといった(Erlangの)特徴を兼ね備え、Elixir独自の、マクロ、
$ bin/rails g scaffold user name:string mail:string password:string invoke active_record create db/migrate/20151214145437_create_users.rb create app/models/user.rb invoke test_unit create test/models/user_test.rb create test/fixtures/users.yml invoke api_resource_route route resources :users, except: [:new, :edit] invoke scaffold_controller create app/controllers/users_controller.rb invoke test_un
はじめに 皆様こんにちは。@naotaka1128と申します。 データサイエンティスト(?)としてWEB広告のアトリビューション分析などを担当してます。 リブセンスでは今までSEO担当/WEBマーケター/WEBディレクターもしてました。 え?なにやってる奴かよくわかんない? 僕も正直わかんないです。 そんな僕ですが、個人の趣味で Ruby on Rails 勉強してサイト作ってます。 個人サイトのアクセス伸ばすのが最近の密かなマイブーム(死語)です。 ますます意味わかんないですね。 プロエンジニアの皆様の足元にも及ばない新米素人エンジニア(?)なので、 サイト制作は全面的にライブラリに頼りっぱなしです。 初めてサイト制作した時は「サイト制作に必要な Gem まとめ」とかなくて ググりまくりながら作ったものです。凄く時間が掛かったのを今でも覚えてます。 (その分、新しい発見をするたびに嬉しか
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く