ユニファ開発者ブログ

ユニファ株式会社プロダクトデベロップメント本部メンバーによるブログです。

Ruby on Rails

アーカイブ公開中!「社会課題解決 on Rails!」イベントを開催しました!

皆様こんにちは、ユニファCTOの赤沼です。 もう一ヶ月以上経ってしまいましたが、先日「社会課題解決 on Rails!イノベーションを起こすスタートアップと繋がろう」というイベントを開催しました! X Mile 開発責任者 の蝦名さん、iCARE CTO の工藤さんと共…

Things I have learned from performing Rails upgrade

By Patryk Antkiewicz, backend engineer at Unifa. Recently I have been working on Ruby on Rails upgrade in one of our projects: Ruby: 2.7.2 -> 3.2.2 Rails: 6.0.3.6 -> 7.1.2 I was proceeding according to the official guide , but during the p…

Rails + PostgreSQL の CREATE INDEX CONCURRENTLY を使ってみた

この記事はユニファAdvent Calendar 2023の13日目の記事です。 adventar.org こんにちは。プロダクトエンジニアリング部の横山です。 今年5月にユニファに入社してからあっという間に半年経ち、ブログ初投稿になります! 今回は、以前テーブルにインデックス…

Dev Containers で Ruby や Python の実行環境をサクッと作れるようにしておく

みなさんこんにちは、ユニファの赤沼です。 この記事は Unifa Advent Calendar 2023 の10日目の記事です。 adventar.org 最近はポジション的にプロダクションのコードを書くことはほとんどなくなってしまいましたが、ChatGPTなどLLM界隈の動きもあって手元で…

Ruby on Railsのexists? / any? / present?

初めに こんにちは。ユニファのバックエンドエンジニア、シュウです。 最近、社内のRuby on Railsのソースコードを調査している中で、レコードの存在チェックによく使われている3つのメソッドを見ました。 present? exists? any? Ruby on Railsのエンジニア…

Rails 7, exploring importmaps

By Harvey Ico, backend engineer at Unifa With the release of Rails 7, webpacker is now optional!? Meaning to say, if you install a new rails application, you will now have to specify that it includes webpacker too. This is how you do it: r…

Ruby2.7/Rails6.1へのバージョンアップが完了しました

こんにちは、サーバーサイドエンジニアの山田です。 ユニファ開発者ブログに初投稿です! 以前から続けていたRuby/Railsバージョンアッププロジェクトが完了しましたので、今回は作業を進める中で気をつけたことについて書こうと思います。 この記事は以下2…

Try some PaaS for Ruby on Rails

By Peter Chen, backend engineer at Unifa. The PaaS(Platform as a Service) my pet projects used stopped providing free plans from this year. So, recently I've been looking for and trying other alternatives. Tried to google and got a long re…

Visualizing Ruby tests coverage using Codecov

By Patryk Antkiewicz, backend engineer at Unifa. Writing tests that check correctness of each piece of code that at the first glance might look obvious and absolutely bug-resistant is a tedious task that most developers don’t like. It migh…

TurboStream experiment on Ruby on Rails

By Domingo Cividanes, backend engineer at UniFa. With the version release of Ruby on Rails new interesting features comes out. But one of this new features really got my attention: Turbo. Turbo allows to send HTML and not JSON over the wir…

Railsのプロダクションコードを約1万行削除しました

こんにちは。プロダクトエンジニアリング部の伊東です。 現在、私が所属するチームでは、弊社で一番古くから動いているプロダクトのRubyとRailsのバージョンアップを行っています。 記事作成時点では、バージョンアップ作業の途中ですが、着々と進行していま…

Ruby on RailsでデータベースからリモートAPIへ移行する際学んだこと

こんにちは、プロダクトエンジニアリングのちょうです。最近天気は暑かったり、寒かったりするので、体調管理に十分気をつけてください。さて、サービスが増えるにつれ、元々大きなサービスをマイクロサービス化するのは珍しくありません。そんな中で、一つ…

Rails 7.0で追加予定のenumerate_columns_in_select_statementsを試してみる

こんにちは、最近柴犬の動画ばかり見て癒されているWebエンジニアの本間です。 いいですよね、柴犬...。ああ、今日もお仕事終わったら見よう(メンタルは全く問題ないのでご安心ください)。 さて早速なのですが、y-yagiさんのブログの2021-04-17のエントリ…

SQS + Shoryukenのメッセージ重複配信問題にMiddlewareで対応する

まだ鍋シーズン序盤だというのに、ごま豆乳鍋を3日に1回は食べているWebエンジニアの本間です。 最近、Railsアプリケーションのバックグラウンドジョブのworkerとして Amazon SQS, Shoryuken, Active Job を組み合わせて使うことが増えました。 過去にも以下…

Amazon ECS+FargateでRailsを動かす際の最適なパラメーターを考えてみる

こんにちは、最近野菜が高いのでもやしばかり食べているWebエンジニアの本間です。 そろそろレタスが食べたい...。 さて、ここ1、2年、ユニファではAmazon ECS+AWS Fargateを使用して、Railsアプリケーションを本番運用することが増えてきました。 stagingで…

Amazon SQSとShoryukenを使ったバックグラウンド処理を検討してみる

Webエンジニアのほんまです。 弊社ではインフラの管理コストを極力減らすため、AWSのマネージドサービスへの利用を推奨しています。(例:RDS -> Aurora) その中の一つに「バックグラウンドジョブに使うキューストアに Amazon SQS を使う」というものがあり…

Rails + Webpacker + Vue.jsの構成でSystem Testを動かしてみる

こんにちは、Webエンジニアのほんまです。 ユニファのAdvent Calendar 2019も21日目ですね。 昨日は、弊社インフラエンジニアのすずきによるAWS Lambda Provisioned Concurrencyに関するエントリでした。 25日間、連続で記事を書き続けられるほどメンバーが…

ルクミーフォト リニューアルで実施した技術的な変更のご紹介

お久しぶりです、Webエンジニアの本間です。 去る2019年10月1日に自分が所属するチームで担当した「ルクミーフォト」のリニューアル版をリリースすることができました。 【プレスリリース】『ルクミーフォト』および ユニファコーポレートサイトリニューアル…

Railsで更新系のSQLだけログに出力する方法

最近、鼻づまりがひどいWebエンジニアのほんまです。 今までだましだましやってきましたが、ついに花粉症になってしまったかもしれません さて、今回も前回に引き続き、ログ出力で工夫していることを紹介しようと思います。 背景 調査依頼などでログを追って…

RailsをAmazon ECS(AWS Fargate)で運用する際のログ設定で工夫した点

こんにちは、Webエンジニアの本間です。 今回、Railsアプリケーションを Amazon ECS、しかも AWS Fargate の上で運用する機会に恵まれました。 その中でログに関する話を書こうと思います。 というのも、これまでのEC2インスタンス上でのログと、ECSでのログ…

Railsでメール送信方法を自作してみる

Webエンジニアの本間です。 昨日、Rails 6で追加される予定の Action Text の概要をDHHが紹介している 動画 を見て、「おぉ、なんかすごい!」と思い紹介しようかと思ったのですが、いかんせん時間が少ないのであきらめます(^_^;) 今回は、少し前にRailsのメ…

ユニファのWebエンジニアのテスト事情

こんにちは、Webエンジニアの本間です。 去る2018年5月25日(金)、 株式会社ウエディングパーク の皆さまと合同で勉強会を行いました。 弊社からは以下の2つの内容で発表しました。 ユニファのWebエンジニアのテスト事情(現状と今後) by 本間 新しいスタン…

Rails 5.2で追加予定のActiveStorageを使ってみる

こんにちは、Webエンジニアの本間です。 先週、広島で RubyKaigi 2017 が開催されましたね。私は参加できなかったのですが、興味深い発表が多かったので、公開されているスライドは一通りチェックしたいなと思っています。 さて、今回のブログでは、少し乗り…

エラー「A copy of xxx has been removed from the module tree but is still active!」と「ObjectContainer」

こんにちは、システム開発部のちょうです。今回はあるエラーから1つ小さいなライブラリを作った話について共有したいと思います。 先月の開発でまれに「A copy of xxx has been removed from the module tree but is still active!」というエラーに遭遇しま…

Railsのapp直下でよく使われるディレクトリとその用途を調べてみる

こんにちは、Webエンジニアの本間です。 最近、Railsアプリケーションのディレクトリ構成に関して考える機会があったので、そのことについて書いてみようと思います。 Railsに限らず「ディレクトリ構成をどうするか」という点は、設計初期の悩ましい問題の1…

ローカルでdockerを使って複数サービスをテストする

こんにちは、WEBエンジニアのチョウです。 1つのサービスに新機能がどんどん追加されると、ロジックが複雑になり、開発やメンテナンスは難しくなります。その解決方法はいつくかあると思いますが、1つの方法として、1つのサービスを複数サービスに分割し…

Rails + grape + Swagger UIでアプリケーション開発を円滑に進めるAPIサーバーを構築する

こんにちは、サーバーサイドエンジニアの本間です。 以前弊社のしだより、デジタル連絡帳アプリ るくみーnote のクライアントサイド開発の一部 をご紹介させていただきました。 今回は、このプロダクトのサーバーサイド開発で工夫した点をご紹介したいと思い…

調査しやすくするためログにリクエストIDを入れましょう

はじめまして、ユニファ株式会社のWEBエンジニアのチョウと申します。 こんなことがないでしょうか。突然調査依頼が来て、あるユーザーについて調べてほしいです。大量のログから掘り出してみましたが、ユーザー何人がアクセスするによってログが混じってし…

テストコード(RSpec)の高速化事例

はじめまして、ユニファ株式会社でWebエンジニアとして働いている本間と申します。 普段は、Ruby on Railsを使ったサービスのサーバーサイドの機能追加や改善を担当しています。 弊社の主要サービスである写真サービス るくみーは2013年5月に開発がスタート…