![非SPAなサービスにReactを導入する - クックパッド開発者ブログ](https://cdn-ak-scissors.b.st-hatena.com/image/square/779c35c70abf4b1a3b11e8c9bf9809c4cdb4216a/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fh%2Fhokaccha%2F20161026%2F20161026125026.png)
こんにちは。花粉症で鼻水が止まらない日々が続いている hilotter です。 同一レコードに対し複数ユーザ(もしくはバッチ処理等)から同時に更新される可能性がある場合、排他制御を行う必要があります。 今回はシンプルなポイント付与機能を例に、悲観的ロックを用いた排他制御のテストを書いてみたいと思います。 シンプルなポイント付与機能仕様 ユーザは他のユーザにポイントを送ることができる 今回のサンプルは以下の環境で確認しました。 Rails 5.1.4 MySQL 5.7.20 MySQLのトランザクション分離レベル REPEATABLE-READ(デフォルト設定) add_pointメソッドの実装 Userモデルにポイントを付与できるadd_pointメソッドを追加します transaction内でlock!を用いて悲観的ロックをかけています。 # app/models/user.rb cl
概要 前回: Rails5「中級」チュートリアル(3-2)投稿機能: ヘルパー(翻訳) 次回: Rails5「中級」チュートリアル(3-4)投稿機能: メインフィード(翻訳) 概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: The Ultimate Intermediate Ruby on Rails Tutorial: Let’s Create an Entire App! 原文公開日: 2017/12/17 著者: Domantas G Rails5中級チュートリアルはセットアップが短めで、RDBMSにはPostgreSQL、テストにはRSpecを用います。 原文が非常に長いので分割します。章ごとのリンクは順次追加します。 翻訳時にRuby 2.5.0とRails 5.1.4で動作を確認しています。 注意: Rails中級チュートリアルは、Ruby on Railsチュート
Railsあるある 何気ないモデルの変更がアプリケーション全体を傷つけた TL;DR 最近の趣味アプリではコントローラーごとにモデル生やしてトップレベルのモデル使わない設計で書いていて、コールバックやデフォルトスコープ書き散らかしても影響範囲がコントローラー内だけで済むので便利だしFormオブジェクト書いてグルーしまくる必要もなく快適 — Miyagi (@hanachin_) 2018年1月30日 アプリ全体で1モデルだとグローバル変数と一緒、モデル全体に影響でる機能がアプリ全体に影響でてつらい。機能ごとにスキップしたり使い分けはできるけどモデルごと全部分けたほうが楽、コントローラーごとに分けると責務が明確になりやすい。みたいな感じです! 詳しい記事はやる気でたら書く... — Miyagi (@hanachin_) 2018年2月9日 自分自身ネームスペースどう切るかとかは興味なくてd
この記事はみんなのウェディング Advent Calendar 2017 - Qiita24日目の記事です。 前回はウェブサービス開発でデザイナーとエンジニアの役割とスキルと知識を考えてみる|松久浩伸|noteでした! こんばんは、タイトル書くときにイブなの?イヴなの?とググって少し疲れたrinです。 さて、今まで全く興味がなかったのにちょっとしたきっかけでハマることってあると思うのですが、私にとってプログラミングも同じようなもので、もしもっと早い時期に知っていたら進学先も変えたのになーなどと時々思います。 おっと、我が家で過去についてとやかく言うのはNGでした。 どうせハマるならさっさと出会いたいので普段から色々と見たり知ったりするの大事ですよねということを有馬記念を見ながら思っていた次第です。 プログラミングに関して言えば私はお仕事でたまたま縁があり始めるきっかけになりましたが、そうで
この記事はみんなのウェディング Advent Calendar 2017 - Qiita 19日目の記事です。 現在業務委託エンジニアとして開発基盤まわりのお手伝いをしている@amyroiです。 12月は各社のAdvent Calendarが盛り上がっていますね。 環境変数管理をdotenvからconfigへのスムーズな移行手順 弊社ではプロジェクトの環境変数管理をDotenv+itamaeで管理していましたが、 Dotenvの廃止をフリーランスでジョインした会社で2回(2社)経験するという珍しい体験をしたので、 今回はその手順、ノウハウを書いていこうと思います。 どうして廃止するの プロジェクトのリポジトリに公開したくない秘密情報をdotenvで管理してhost毎に管理する為によく使われるdotenvですが、host側の管理となると会社の規模によってはインフラ担当者に依頼が発生し、いちエ
ピクスタ開発部で毎日ヒィヒィ言いながらエンジニアをやっております @muramurasan です。 今回はPIXTAのとあるリポジトリにおいて、未使用のメソッドを削除しようとした際、gemを組み合わせることで、効率的かつ安全に削除することができたという話をしたいと思います。 よくやる方式 外部の勉強会などで、「未使用のメソッドを削除する際にどうしているか?」ということを聞いた際、よく聞くのが「未使用らしきコードを見つけ次第、ロギングを行うメソッド呼び出しを挟み込んでいく」というものでした。 この方式は、動的なメソッド呼び出しにも当然対応できますし、お手軽なので、一般的に好まれているようです。 問題点 ただし、この方式では以下の問題点があると私は考えています。 そもそも、未使用らしいメソッドを見つけるのが大変 プロダクションコードを汚してしまう これらの問題を解決するために、PIXTAでは
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く