Desafios e Lições Aprendidas na Migração de Monólitos para Microsserviços em Java
この記事は RubyそしてRailsをこれから勉強したい方に、どんな技術を勉強すればいいかと、それらの技術全体のガイドマップを図示します。そしてそれを学ぶための資料(書籍、Web記事ほか)を紹介していきます。この記事は、頭の中に技術全体の地図を描き、イメージしてもらうのが狙いです。 Railsアプリを作るときに必要になたくさんの技術について説明していきますが、本当にたくさんの技術が出てきます。まだ学んでいない、分からない言葉が出てくると思いますが、全体を把握するために、ひとまずは「そういう技術があるのだな」くらいで捉えてもらえればと思います。将来、その言葉が出てきたときに「どこかで聞いたような?」と思えたら儲けものです。 勉強方法のお勧めは、1つの知識を徹底的にやるよりも、まずは全体を通して勉強し、そのあとで勉強したいところに戻って積み重ねて学んでいく方が、挫折しづらいのでお勧めです。 追
bundle install には --clean を指定する (特に Circle CI では) Apr 16, 2018 TL;DR bundle install を --clean オプション付きで実行することで、もう使っていない gem や古いバージョンの gem が削除されます。 さもないと、Circle CI 上における Bundler のキャッシュの restore はどんどん遅くなります。 前提 この記事では Circle CI 2.0 において、store_cache と restore_cache を使って、Bundler の gem をキャッシュしているプロジェクトを対象としています。 キャッシュの restore が遅い!! ある日ふと、Circle CI におけるキャッシュの restore にすごく時間がかかっていることに気づきました。 その時のプロジェクトにお
近年、RailsアプリにService Objectを追加するメリットを説く記事が次から次へと量産されています。私は本記事において、それがなぜ正しくないかを述べたいと思う次第であります。もっとよい方法はあるのです。 私はこれまで、Service Objectに関するネット上の議論にときおり参加しては、問題に対するまっとうな解決方法としてService Objectが正しくない理由について繰り返し見解を述べてきました。実際、私は多くの場合においてService Objectよりもっとよい解決方法があると考えるのみならず、Service Objectはオブジェクト指向設計原則への配慮が損なわれている兆候を示すアンチパターンとして取り扱っています。 このような深遠なポイントを細切れのツイートやコメント欄を追って理解するのは大変です。そこで私は、私の見解を正確に表すいくつかの現実的なコードを詳しく
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: A New Ruby Application Server: NGINX Unit 原文公開日: 2018/03/28 著者: Nate Berkopec (@nateberkopec): Railsのパフォーマンスコンサルタントです。 主著: The Complete Guide to Rails Performance 参考に、NGINX Unitの動画を貼っておきます。 画像は元記事からの引用です。 概要: NGINX inc.は同社の新しい複数言語対応アプリサーバーであるNGINX UnitでRubyのサポートを開始しました。NGINX UnitはRubyアプリサーバーにどんな意味をもたらすのでしょうか?NGINX Unitは注目すべき製品なのでしょうか?(2057文字、10分) Rubyistのための新しいアプリサーバー
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Managing db schema changes without downtime 原文公開日: 2018/03/22 著者: Sam Saffron -- Discourseの共同創業者であり、Stack Overflowでの開発経験もあります。 後半で紹介されているgemについては先週のRailsウォッチもどうぞ。 2018/04/09: 初版公開 2022/10/25: 細部を更新 Discourseのメンバーはいつも継続的開発の大ファンであり、コミットのたびにCIのテストスイートと対決しています。すべてのテスト(UI、単体、結合、スモーク)にパスすれば、自動的にコードの最新バージョンがhttps://meta.discourse.orgにデプロイされるようになっています。 私たちが継続的開発というパターンに沿って実践し
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Session-only cookie corruption in Ruby web apps | perlkour 原文公開日: 2017/11/21 著者: perlkour RackやRailsにはクッキーモンスターがいます。 ブラウザは、ドメインやレスポンス内でcookieの数やサイズに制限を設けています。この制限を超えると、まずいことが起こる可能性があります。明らかなケースについてはRackやRailsが防止を試みますが、本記事では現在の実装で生じる問題について説明します。また、RubyのWebアプリで発生する問題の潜在的なインパクトや、問題の緩和方法についても検討します。 この情報は、(セッションIDに限らない)セッションハッシュ全体をエンコードした内容を含んでいるセッションcookieを転送するWebアプリと強く関連
TL;DR(最初にざっくり結論) destroy : 削除できたら真の値(削除したインスタンス自身)、できなかったら偽の値(false)を返す。 destroy! : 削除できたら真の値(削除したインスタンス自身)、できなかったらActiveRecord::RecordNotDestroyed例外を発生させる。 削除に失敗する例 before_destroyコールバックでthrow :abortされた場合 dependent: :restrict_with_errorが設定され、なおかつ関連する子レコードを持つ親レコードを削除しようとした場合 はじめに ActiveRecordにはデータを削除するメソッドとして、destroyとdestroy!があります。 これはsaveとsave!の関係によく似ています(saveは検証エラーが発生したときにfalseを返し、save!は例外を発生させる)
こんにちは!まどぎわです:D みなさん、Railsの勉強どうですか? Railsチュートリアルやプログラミングスクールで勉強した後、迷う人多いんじゃないかと思うんですが...私を含めて。。。 そんな人にオススメなサービス「e-Navigator」に参加してきたので、感想を書いていきます!!φ(..) e-Navigatorとは? e-Navigatorは、株式会社フィードフォースから提供されている無料のエンジニア就業支援サービスです! e-navigator.feedforce.jp スケジュール調整Webアプリケーションを題材に実際にフィードフォースで働くエンジニアの方からコードレビューを受けながら、Railsアプリケーションを作成することが出来ます。 ↓作成するアプリのサンプルはこんな感じです! InterviewScheduler また希望する人には、フィードフォースの採用を最終面接
こんにちは。リサーチ・アンド・イノベーションの中村(konk303)と申します。 いわゆる「railsおじさん」的な立場で、主にサーバーサイドの開発をしています。 Introduction 本稿ではQiitaのイミュータブルデータモデルと webアプリケーションにおける現実解にインスパイアされて、弊社でのイミュータブルデータへの取り組み(とその苦しみ)を紹介したいと思います。 qiita.com イミュータブルデータモデルとは? まるっと引用。 イミュータブルデータモデルと webアプリケーションにおける現実解 - Qiita 詳細はリンクに譲りますが、「履歴を全て残すようなデータ設計にし、 UPDATE を廃することで情報の追跡可能性を確保、堅牢な設計にする」モデリング手法です。 原則この手法に従うと、そうそう汚いモデルにはならないという優れもの(雑) です。イベントが起こる度に新規レコ
先日、神速さんのエントリを見てあとで書こうと思ったもの。 表題ママだけれど、Ruby / Rails の企業として新卒氏が入社した後にウォッチするように伝えているもの。もちろん流量も結構なものなので実際にどの程度ウォッチしているかは本人に委ねている。自分も全部は見れていない。メールでのタイトルか送信者 (PR や Issue を出した人) で興味を引かれたものが基準。 Rails 研修での Rails Tutorial の流れで、upstream とそれに近い情報源を伝えている。特に y-yagi さんのブログは、子供の頃に読み始めた新聞と同じで最初は分からなくても読み続けているうちに分かることが増えてくるので継続するのが力になることと共に伝えている。 GitHub 上のリポジトリ https://github.com/rails/rails ... ruby/ruby のリポジトリと一緒
require 'date' class AddBirthdayDateToUsers < ActiveRecord::Migration[5.1] def up add_column :users, :birthday_date, :date User.reset_column_information User.find_each do |u| birthday_date = Date.new(u.year, u.month, u.day) rescue nil u.update(birthday_date: birthday_date || User::UNKNOWN_BIRTHDAY) end change_column_null :users, :birthday_date, false end end 上記のようにマイグレーション実行時にアプリケーションで定義したActiveRe
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Limit Rails memory usage, fix R14 and save money on Heroku 原文公開日: 2018/01/15 著者: Paweł Urbanek 理論的には、Herokuの512MB dynoが1つあればRails webサーバーとSidekiqプロセスを両方とも動かせます。トラフィックの少ないサイドプロジェクトで月7ドルを節約できればとても助かります。残念なことに、1つのdynoでRubyプロセスを2つ動かすとメモリの問題が生じることがあります。本記事では、Railsアプリのメモリ使用量を制限する方法について説明します。 最近読んだBilal Budhaniの良記事では、1つのHeroku dynoでSidekiqプロセスとPumaを同時に実行する方法について説明していました。私のサブ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 背景 Skinny Controller, Fat Model Railsではスキニーコントローラー、ファットモデル(Skinny Controller, Fat Model)という方針のもと、 コントローラーのコード量を少なくして、モデルを分厚くするという書き方が推奨されていました。 10 Ruby on Rails Best Practices — SitePoint Rails Best Practices 1: Fat Model – Skinny Controller このような背景から、ファットモデルという設計が目指すべき設
はじめに Ruby on Rails Advent Calendar 2017 - Qiita の4日目の記事です。 背景 Railsのテーブル設計について、社内で議論することは多いのですが、サービスの要となる部分であるが故、社外にER図を公開するケースは少なく、自分達のサービス開発時以外にテーブル設計を学ぶ機会が少ないです。 目的 OSSで公開されているRailsアプリケーションのソースコードから、テーブル設計に関するデータをまとめることで、テーブル設計時の議論に活かすことを目的とします。 具体的には、「1テーブルが持つ情報量として、どれくらいのカラム数が妥当なんだろう…?」や「テーブル名やカラム名を命名する時にどちらの単語の方が一般的に使われているんだろう…?」といった疑問点の解消を目指します。 方法 OSSで公開されているRailsアプリケーションの見つけ方 AwesomeRails
概要 MITライセンスに基いて翻訳・公開します。 リポジトリ: jeremyevans/rodauth: Ruby's Most Advanced Authentication Framework 英文: README.rdoc(3c3aa41) 公式サイト: http://rodauth.jeremyevans.net/ RodauthのREADMEは認証のセキュリティを考えるうえで参考になる情報が多く、ドキュメントの質が非常に高いのが特徴です。大きな概要をまず示し、必要な概念も適宜示しながら、先に進むに連れて詳細に説明するという書き方が見事です。 さらに、READMEから読み取れる筋のよい認証システム設計も参考になると思います。パスワードハッシュの保存場所を完全に隔離した上で可能な限り自由度を高めている点や、機能ごとにカラムを足したり減らしたりするのではなくテーブルを足したり減らしたり
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Things I learned developing Ruby and Rails apps over the past 3+ years | by Filippos Vasilakis | Kollegorna 原文公開日: 2017/01/30 著者: Filippos Vasilakis 2017/11/20: 初版公開 2023/06/08: 訳文を更新 順序は特に決まっていません。 🔗 1. トップレベルにrescue_fromを書く ルートコントローラにrescue_fromを書くと、その下で発生したすべての例外をキャッチできるので非常に便利です。Webアプリにこれを追加すると、リクエスト/レスポンスのサイクルで実行されるほとんどのコードがさらに便利になります。 シンプルなAPIを例に考えます。rescue_fro
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く