サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。
サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。
A New Way to Understand Your Rails App's Performance Is your Rails app slow? When it takes seconds to load what should be a simple view, you have a problem worth digging into. You could have too many database calls or some slow methods. Or maybe it’s that speedup loop someone put in your code and forgot about. You can find lots of tools to help you find out what’s slowing your app down. A few week
背景 アカツキではRailsでゲームサーバを開発しています。インフラはAWSにあり、CloudFormation, Chef, Capistrano を用いて、Infrastructure as Code を実現しています。 エンジニアは普段ローカルマシンで開発していますが、ディレクター、レベルデザイナーなどは定義ファイルを変えた後、それを反映して動作を確認するための検証サーバ(以下、検証環境)を使っています。 検証環境へのデプロイも Capistrano で自動化しており、最初は問題が無かったのですが、ゲーム上のデータが増えることによって、一度のデプロイで10分程度かかるようになっていました。 以下、Capistrano ver.2系の話にはなりますが、検証環境のデプロイを高速化したので、その内容を紹介したいと思います。 現状分析 rsync について、capistrano_rsync_
Help us understand the problem. What is going on with this article? Rails3.2からRails4.2に上げたらActiveRecordが遅くなったので、どうやって調査して、どのように対処したかを語ってみたい。 とても長いので、ダルい人は最初と最後だけ読めばよいです。 TL;DR 環境: Ruby 2.1.5 ARオブジェクトを大量に(ざっくり750kくらい)loadするバッチ処理 3.2系での実行時間は約480sec、 4.2系では約2900sec 約6倍の性能劣化 原因: preloadで性能劣化してた CollectionProxyの生成周りで遅くなってた Rails4からARオブジェクトの1attribute毎にObject生成するので遅い GCの時間も増えた 調査方法: Githubのcommit、Issueを
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 2021.2.11追記:DateTimeクラスは非推奨なクラスになりました DateTimeクラスは非推奨なクラスとなり、DateTimeクラスではなくTimeクラスを使うよう、公式にアナウンスされました。 参考1 But we consider use of DateTime should be discouraged. - matz (Yukihiro Matsumoto) https://bugs.ruby-lang.org/issues/15712#note-4 参考2 DateTime は deprecated とされているた
After using the two most popular Rails admin gems ActiveAdmin and RailsAdmin I have been increasingly disillusioned with their overall utility. While they both provide a quick way to put up a pretty interface to the various models in your system, they also come with their own baggage: application bloat and inflexibility amongst them. Eventually you may find it necessary to modify their configurati
本記事は英語版ブログで公開された記事の翻訳版です。 パフォーマンスはどんなアプリケーション開発者にとっても大きな懸念です。問題なのは、人は往々にして、実際にパフォーマンスが下がりはじめ懸念すべき事態になるまで問題を放置しがちだという点です。パフォーマンス対策は前もって講じておくべきもので、ほころびが出はじめてから取りかかるのでは遅すぎます。たまのレビューで済ませるのではなく、プロセスの一環に組み込むことが必要です。この記事では、パフォーマンス向上のために開発者が自分でできるいくつかの対策について見ていきます。まずはデータベースです。 データベースのパフォーマンス Railsを使う場合、ActiveRecordやDataMapperといったORMを使えばアプリケーションからのデータ取得を楽にできますが、それだけにデータベースとのやりとりを改善する最適化やリファクタリングの重要性をおろそかにし
ちょっと煽り気味のタイトルにしてみましたが、Railsで開発する時は意識的にOOPに寄せないとオブジェクトの力が活かせなくなるよってことと、Railsが提供しているクラスの責務を分割することを支援してくれる機能について話をします。 ActiveRecordの性質 Rails開発においては、モデル層にロジックを書いてコントローラーは薄くしろ、というのはしつこく言われているので、概ね浸透してきていると思います。 それに加えて、最近私が結構しつこく主張しておきたいのが、モデル = ActiveRecordでは無いよ、ということです。 ActiveRecordは成り立ちから言うと、ロジックとDBへの永続化をまとめてカプセル化するアーキテクチャパターンから来ています。(詳しくはエンタープライズアプリケーションアーキテクチャパターンという書籍を読むと良いです) この方法はロジックが複雑でない場合、つま
すいません。締切守れませんでした…。 やっぱ、java-jaの忘年会の翌日は辛い…。 はじめに Webシステムを開発していると切っても切れないのがJavaScriptです。 Railsはかなり早い時期からalt-JSや結合、minify等を組み込めるようにフレームワークにそれを取り入れてきました。 それを支えているのがRails3.1から導入されたsprocketsです。 それに伴なってJSのライブラリをどうやって管理するかという点について、独自の路線を取ることになりました。 JSのライブラリを同梱したgemパッケージにラップしてrubygemsとして管理する方法です。 ある程度は上手くいっていたし、今もその流れは続いているんですが、時々問題になることもあります。 例えばメンテナの対応時期がズレてて古いバージョンのままだったり、似たようなgemが乱立してややこしくなったり。(backbon
Or, “How to add native SVG support to you Rails application”. If you’re looking to display some charts in Rails, there are several options. First are the hosted group and chief among them Google’s Chart API. Through construction of image URLs, many types of charts can be generated. I’ll actually be using some Google charts in my current project (line charts, spark lines, and bullet graphs) thoug
例外を利用して実装すると便利な場合が多い この投稿では、HTTP経由でJSONを返すようなWeb APIをRailsを利用して実装するとき、エラーレスポンスを返す場合の処理をどう実装するとやりやすいのか、というニッチな話題に触れる。APIでエラーを返したいとき、即ち400以上のステータスコードと共にレスポンスを返したいような場合、どう実装するのが良いか。もしリクエストの処理中にエラーが検出された場合、それ以降の処理を行わずに直ちに中断してエラーレスポンスを返したいという場合が多いため、例外を利用して実装すると便利な場合が多い。 例外を利用しない方が良い場合もある 1つのリクエストに複数の問題が含まれている場合、先に見つけた問題だけを報告するようなエラーレスポンスを返すのか、それとも問題を抱えながらも進めるところまで処理を進めて報告可能な情報を全て含むようなエラーレスポンスを返すのか、という
Rails 4.1.0が出ていたので、このブログをアップグレードしてみました。 例によって、作業ログを残しておきます。 Riding Rails: Rails 4.1.0: Spring, Variants, Enums, Mailer previews, secrets.yml http://weblog.rubyonrails.org/2014/4/8/Rails-4-1/ (1) GemfileのRailsのバージョンを4.1.0にする (2) 以下のコマンドを実施。 {{{code bundle update rake rails:update }}} -config/routes.rbはスキップ -config/application.rbは特に変化が無かったのでスキップ --(備忘録:4.0.2から4.0.4にアップグレードした時は少し変化があったので修正した記憶があります)
以前Ruby on Rails 2.3 (Ruby1.8.7) で作ったアプリを、Rails3.2 (Ruby 1.9.3)にアップグレードしようと決意しました。 ただし、それほど性能の良いサーバーで稼働しているわけではないので、3.2にした時の性能(リソースの使用量)等も気になりますので早めに動かし性能を測定する事にしました。 やること git co -b rails3.2 とりあえずRails3.2で動かす 性能測定 RSpecを通す Cucumberを通す リファクタリング 入替 1. とりあえずRails3.2で動かす Rails3.2環境に移行 現行のRails2.3のコードを使うのですが、app/assetsやconfig以下などは Rails3.2に合わせないと行きません。そこで Rails3.2.3のRailsコマンドの空のプロジェクトを作成し、そこから(元のconfigは
補足: Rails Engineとは? Railsアプリケーションを再利用可能にするように、 本体にマウント可能にする ↑↓ プラグイン、gem ・Rackミドルウェアである ・routes, task等を独自に記述できる などなど 実装リスクを洗い出し、工数見積を出すため 案2・案3でプロトタイプ実装を試みる 結果 案2: OAuth providerを作るgem(doorkeeper)を使ってできた 案3: ActiveRecord establish_connectionでDBを変えれた 複数DBは、本体でテストも書かれているので大丈夫そう では、どちらにするか? 工数はあまり変わらなさそう・・ 案2 OAuth化(HTTPレイヤ) ・OAuth Provider化しても外部公開の予定はない =要件に対して、オーバースペック 案3 Rails Engine化(アプリケーション
I am running an application on Rails 2.3.8. I am planning to upgrade it to Rails 4.0 (which is in RC). What will be the easiest way for me to do this? Do I need to first upgrade to Rails 3.x? Note: in my current implementation, I am using starling and ferret; as part of upgrade I am also considering to move to sidekiq and sunspot
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く