Kaigi on Rails 2021 の発表資料です。 https://kaigionrails.org/2021/talks/Altech_2015/
![マイクロサービス・アーキテクチャと共存する Ruby on Rails のアーキテクチャ的拡張 - その事例と可能性 / Kaigi on Rails 2021](https://cdn-ak-scissors.b.st-hatena.com/image/square/ae41c324948dd964aa911b8caf6a3cd42fb2b538/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Feeea00b6abb94b70847f0c1b36642266%2Fslide_0.jpg%3F19366657)
この記事は2017年に自分が行なった仕事の背景となる、API についての考察をまとめています。 はじめにRuby on Rails はフルスタック指向のフレームワークであるが、ページ遷移型 Web アプリケーションのために「こうあるべき」というレールを完璧に敷いているのと比較すると、API サーバーとしてはレールを敷ききっていない印象を受けるはずである。このことは一見して「Rails は Web アプリケーションを作るには良いが、API サーバーを作るには良いとは言えない」という考えを導きやすいのではないかと思う。 もちろん、API サーバーを作るための技術選定には色々な可能性がある。現に自分のチームで作っているプロダクト自体、多くの API サーバーを意図的に Go 言語で書いている(注1)。またそもそも、大きなトレンドで見ると API を規定する主要な要素技術は、プログラミング言語依存
Phoenix の開発者である Chris McCord さんが 2015/11/18 に書いた記事「Phoenix is not Rails」の翻訳です。 僕は Rails 未経験の状態で Phoenix を始めたクチなのですが、最近 Rails もやるようになり、両者を比較して考えることが多くなってきたので、いい機会だと思い翻訳してみました。 誤訳があれば編集リクエストを頂けると幸いです。 まえがき 昨年12月、ブライアン1は年次総括で 開発を Elixir と Phoenix に移行する計画を公表しました。それから1年、実際に Rails から Phoenix へ移行してみて分かったのは、この作業はそれほど大変ではないということです。というのも、Phoenix は Rails と非常によく似た作りをしているからです。もちろん、フレームワークのきちんとした理解にはそれなりの学習が必要で
例外を利用して実装すると便利な場合が多い この投稿では、HTTP経由でJSONを返すようなWeb APIをRailsを利用して実装するとき、エラーレスポンスを返す場合の処理をどう実装するとやりやすいのか、というニッチな話題に触れる。APIでエラーを返したいとき、即ち400以上のステータスコードと共にレスポンスを返したいような場合、どう実装するのが良いか。もしリクエストの処理中にエラーが検出された場合、それ以降の処理を行わずに直ちに中断してエラーレスポンスを返したいという場合が多いため、例外を利用して実装すると便利な場合が多い。 例外を利用しない方が良い場合もある 1つのリクエストに複数の問題が含まれている場合、先に見つけた問題だけを報告するようなエラーレスポンスを返すのか、それとも問題を抱えながらも進めるところまで処理を進めて報告可能な情報を全て含むようなエラーレスポンスを返すのか、という
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を
2010.07.09 次世代Ruby on RailsサーバーUnicorn(汎用のRackアプリケーションサーバ)を使ってみた 2010.07.20追記: prefixを指定した運用も可能でした。ご指摘頂きありがとうございます。 2010.07.28追記: 関連記事「RailsサーバUnicornを飼いならす! 運用時の便利技」へのリンクを張りました。 Railsサーバはたくさんあってややこしいですね! 最近さらにUnicornというものが頭角を表してきたようで、Twitterやgithubも使っているようなので使ってみましたので、特徴や使い方などレポートしてみたいと思います。 このブログの他にもEngine Yardのブログ記事「Everything You Need to Know About Unicorn」やgithubの記事「Unicorn!」が非常に参考になると思いますので、
まずRailsのviewについて説明する。 Railsのviewはerbとかhamlとかで書く。この人間が書いたviewファイルはtemplateと呼ばれ、ActionView::Templateクラスで扱われる。一つのviewファイルが一つのTemplateオブジェクトになる。 このTemplateクラスはTemplate#compileというメソッドを持っている。このcompileメソッドは、人間が書いたerbなりhamlなりのコードをrubyのコード文字列に変換する。controllerでrenderメソッドを呼んだ時、実際に実行されるのは、このrubyコードである。 このcompile処理はそれなりに重いため、何度も呼びたくない。手元の環境では、でかいテンプレートのコンパイルには数百ミリ秒かかることもちょいちょいある。 しかしcompileは、render時に毎回走るわけではなく、
(訳注: 2016/3/2、頂いたフィードバックをもとに記事を修正いたしました。) Ruby on Railsは最近、急激に注目を集めていますが、その原因はほとんど、この言語が斬新なテクノロジーとしてもてはやされたことと、タイミングにあります。技術的な優位性は時間の経過とともに失われますから、タイミングがよかっただけでは、一過性のブームに終わり、このムーブメントの隆盛は長続きしません。従って、「Railsがいかにして、適切な技術としての位置を維持し続けるるだけでなく、影響力とコミュニティを拡大し続けてきたのか」をより多くの人に説明していく必要があります。そして、その維持・拡大を可能にした/していく要因は、物議を醸すことさえあるRailsの基本原則にあると考えています。 この基本原則はここ10年ほどの間に進化を続けてきましたが、最も強固な柱となっているルールはやはり、公開当初から制定されてい
2013.08.06 Railsでbefore_filter/before_actionがアクションを中止する仕組みを読んでみる 大昔のRailsでは、before_filterでfalseを返すとそこでchainが終わる、とやっていた気がしますが、今はそういうコード見ないですよね。 Rails 4だとこんなノリでbefore_actionでredirectして はいおしまい、ってやりますよね。 class UsersController < ApplicationController before_action :my_authenticate_admin def my_authenticate_admin unless current_user.admin? redirect_to root_path end end end 当然、以後のbefore_actionやactionは実行さ
こんにちは、鈴木です。 既存のメソッドの動作を少しだけ変更したい、という場合に使われる常套手段をご紹介します。 とあるシステムのログ出力モジュール とあるシステムでログ出力機能が必要になり、以下のような Logging モジュールを作成したとします。
The blog of Rob Cameron - programmer, woodworker, husband and father. Using Rails 3 route helpers outside of a controller/view UPDATE 12/15/13 — As Lenin mentions below, url helpers are automatically available in Rails 4 without any trickery! I’m working on a job for delayed_job which sends an email including a link back to the site. I wanted to use Rails’s built-in URL helpers like new_post_path
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く