ユニファ開発者ブログ

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

本間 の検索結果:

ImageMagickをブラウザで動かしてみる

…ーサイドエンジニアの本間です。 1年ぶりぐらいのブログへの投稿になりますね。久々の投稿、がんばろうと思います! さて、弊社のサーバーサイドでメインで使っているプログラミング言語はRubyになります。 先日、3.2.0がリリースされ、WASIベースのWebAssembly(WASM)がサポートされました。 また、先日弊社の別メンバーから早速リリースされたRubyのWASMを使って、node.jsからRubyを動かしてみるという意欲的なエントリが投稿されました。 tech.uni…

Amazon SQSのFIFOキューの特徴を動かしながら確認してみる

AWS

…るWebエンジニアの本間です。 平日は1日1000歩を切ってるので、なんとかしたい...。最近引っ越しして近くに白鳥がいる池があるので、朝散歩しようかなーと思ってたりなかったり。 さて、ユニファでは非同期処理にAmazon SQSを使うことが多くなってきており、開発に利用したりいくつかブログも書いたことがありました。 tech.unifa-e.com tech.unifa-e.com しかし、利用するのは毎回標準キューのみでFIFOキューは利用したことがありませんでした。 今…

AWS CodeBuildでカスタムイメージを使ってRuby 3.0のCIができるようにする

AWS

Webエンジニアの本間です。 最近、急に寒くなりましたね、鍋が美味しい季節になりました。 今シーズン、みなさんは何鍋から始めますか?自分は安定のごま豆乳鍋でした。 さてRuby 3.0がリリースされてからそろそろ10ヶ月が経過しようとしており、弊社でもRuby 3.0ベースでアプリケーションを開発する機会が増えてきました。 しかし、1つ問題があります。なんと、いまだに CodeBuildのランタイム にRuby 3.0が追加されません。 そのためせっかくRuby 3.0で新し…

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

…るWebエンジニアの本間です。 いいですよね、柴犬...。ああ、今日もお仕事終わったら見よう(メンタルは全く問題ないのでご安心ください)。 さて早速なのですが、y-yagiさんのブログの2021-04-17のエントリで紹介されていたpull requestで1つ気になったものがありました。 github.com このpull request、初めは内容がよくわかりませんでした。 ただ内容をよく確認すると、これまでPostgreSQLにカラム追加を行った際、たまに発生するPre…

Amazon ECS Execを使ってrails consoleを動かしてみる

AWS

…のWebエンジニアの本間です。早くゴールしてご飯に戻りたい...。 さて、弊社のRailsアプリケーションの多くは、Amazon ECS + AWS Fargateの組み合わせで稼働しています。 過去はEC2上で動かしていたのですが、ECS + Fargateに移行したことで様々なメリットがありました。 しかし、ECS + Fargateに移行したことでデメリットもあります。 EC2でRailsを動かしていた時代では、作業用のEC2にsshで接続し、そこでrails cons…

Rubyの並行処理についてまとめてみる

…るWebエンジニアの本間です。 ただ、鍋の種類はごま豆乳鍋から寄せ鍋に変わりました。 さて1ヶ月以上遅れになりますが、 Ruby 3.0 が無事リリースされました。 まずはリリースに携わった全ての皆さま、本当にありがとうございます。 また今回は念願のメジャーバージョンアップであり、Ruby 3x3の達成おめでとうございます! 速く、使いやすくなったRubyをこれからもバリバリと使わせいただこうと思っています。 そのRuby 3.0で並行処理関連の2つの機能が追加されました。 …

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

…るWebエンジニアの本間です。 最近、Railsアプリケーションのバックグラウンドジョブのworkerとして Amazon SQS, Shoryuken, Active Job を組み合わせて使うことが増えました。 過去にも以下のようなエントリを書いてます。 tech.unifa-e.com 今回は、Shoryukenを使ったバックグラウンド処理を実運用で使用するにあたって1つ悩ましい問題があり、それをMiddlewareを使って解決した話をご紹介します。 メッセージ重複配信…

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

…るWebエンジニアの本間です。 そろそろレタスが食べたい...。 さて、ここ1、2年、ユニファではAmazon ECS+AWS Fargateを使用して、Railsアプリケーションを本番運用することが増えてきました。 stagingでテストしたDockerイメージがそのまま本番で使えて安心だったり、オートスケールが簡単だったりとメリットが多く、大変便利だと感じています。 ただ、そのような環境を構築する中で、vCPU数やメモリ量、およびPumaの並行性に関するパラメーターをどう…

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

…、Webエンジニアの本間です。 去る2019年10月1日に自分が所属するチームで担当した「ルクミーフォト」のリニューアル版をリリースすることができました。 【プレスリリース】『ルクミーフォト』および ユニファコーポレートサイトリニューアル リニューアル後のルクミーフォト(左が保護者様向け、右が園・教室様向け) 今回、こちらのリニューアルで技術的にどのような変更があったのか、その変更はどういう意図を持って実施したのか、広く浅めに紹介したいと思います。 インフラ EC2からECS…

Vue.jsで複数ページにまたがるフォームをVuexを使わずに実装してみる

…、Webエンジニアの本間です。 どの日でもよいので抽選に当たって欲しいのですが、全部当たると困ってしまう、なかなか悩ましい気持ちになりました。 さて弊社では、現在開発中のプロジェクトのフロントエンドの実装において Vue.js を使っています。 今回、Vue.jsを使った実装をしている中で、複数ページにまたがるフォームの実装で調査した内容を紹介しようと思います。 想定する画面 今回想定するのは、「入力画面1」←→「入力画面2」←→「確認画面」→「完了画面」のような遷移でフォー…

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

…、Webエンジニアの本間です。 今回、Railsアプリケーションを Amazon ECS、しかも AWS Fargate の上で運用する機会に恵まれました。 その中でログに関する話を書こうと思います。 というのも、これまでのEC2インスタンス上でのログと、ECSでのログでは扱いが大きく異なっており、色々と注意&工夫しないと障害調査等で苦労することがわかったためです。 従来から変更しないといけない点、それを見据えて工夫した点をばーっと書いていきたいと思います。 従来との変更点 …

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

Webエンジニアの本間です。 昨日、Rails 6で追加される予定の Action Text の概要をDHHが紹介している 動画 を見て、「おぉ、なんかすごい!」と思い紹介しようかと思ったのですが、いかんせん時間が少ないのであきらめます(^_^;) 今回は、少し前にRailsのメール送信を独自に実装したいケースがあり、その時に調査、実装した内容をサンプルコードを交えて紹介しようと思います。 自作のメール送信処理のサンプルとして、「Slackに通知するメール送信処理」を実装して…

続・RailsアプリからGoogleフォトに写真をアップロードしてみる

…!Webエンジニアの本間です。 早速で恐縮なのですが、半年ほど前「RailsからGoogleフォトに写真をアップロードしてみる」というエントリーを書きました。 tech.unifa-e.com こちらの記事では、PicasaのAPIを使って写真をアップロードしていました。 やりたいことは一通りできたのですが、記事の後半でも書いた通り、いつまでサポートされるかわからない問題がありました。 その後、2018年5月8日Googleから Google Phtos API の発表があり…

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

…、Webエンジニアの本間です。 去る2018年5月25日(金)、 株式会社ウエディングパーク の皆さまと合同で勉強会を行いました。 弊社からは以下の2つの内容で発表しました。 ユニファのWebエンジニアのテスト事情(現状と今後) by 本間 新しいスタンダードを作る ユニファのものづくり by 田渕、鶴岡 今回は繰り返しになってしまいますが、自分が発表した1の「ユニファのWebエンジニアのテスト事情(現状と今後)」の内容を紹介しようと思います。 発表前で緊張している様子 発表…

JIRA + re:dash + Slackで運用にかかった工数を週次で通知してみる

…、Webエンジニアの本間です。 最近、ランニングを始めまして、業務後に家の近くを走っています。 走り終わると頭の中のもやもやスッと抜けてて、とても爽快です。1人でできるスポーツですし、今後も続けていきたいなーと思っています。 さて話は変わりまして、弊社ではチケット管理にAtlassian社の JIRA を使っています。 チケットは、要望や機能追加、不具合修正などのコード修正を伴うものと、障害調査やエンジニア作業などコード修正を伴わないものがあり、後者を「運用作業」として区別し…

RailsアプリからGoogleフォトに写真をアップロードしてみる

…、Webエンジニアの本間です。 昨年も予定通り12月25日に Ruby 2.5 がリリースされましたね。 個人的に嬉しいのは、ブロックパラメーターを経由したメソッド呼び出しが3倍早くなった改善です。 def foo(a, &b) のようなメソッド定義はブロックを受け取ることが明示されていて好きなのですが、今回の改修でこのような書き方をやりやすくなったなぁと思っております。 さて今回は、弊社サービスの「写真サービス るくみー」と「Googleフォト」が連携できないか?という調査…

Perceptual Hashを使って画像の類似度を計算してみる

…たWebエンジニアの本間です。 引越しの作業は大変面倒でしたが、新しい街に来た時のワクワク感がやっぱりいいなーと感じております。 さて、弊社のサービスである「写真サービス るくみー」では、毎日たくさんの写真をアップロードしていただいているのですが、中には内容がほとんど同じ写真が入ってしまうことがあります。 これらの写真がそのまま販売されてしまうと、写真を選ぶ際に邪魔になったり、間違って複数枚購入してしまうことがあるため、可能な限り避けたい事象です。 「同じ内容」の写真を自動で…

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

…、Webエンジニアの本間です。 先週、広島で RubyKaigi 2017 が開催されましたね。私は参加できなかったのですが、興味深い発表が多かったので、公開されているスライドは一通りチェックしたいなと思っています。 さて、今回のブログでは、少し乗り遅れた感がありますがRails 5.2で追加予定の ActiveStorage を使って見て、感想や気になる点などを書いていこうかなと思います。 ※注意:現在開発中のalphaバージョンのRails 5.2を使用しています。記事公…

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

…、Webエンジニアの本間です。 最近、Railsアプリケーションのディレクトリ構成に関して考える機会があったので、そのことについて書いてみようと思います。 Railsに限らず「ディレクトリ構成をどうするか」という点は、設計初期の悩ましい問題の1つだと思います。 Railsでは標準のディレクトリ構成が決まっているため悩みは少ないのですが、多くの場合、標準外のディレクトリもある程度は追加していくと思います。 特に「app」以下のディレクトリ構成は、アプリケーション全体の設計に関わ…

Rubyのスレッドで並列化するのに向いている処理を調べてみる

…のWebエンジニア、本間です。 はじめに、この開発者ブログを開設してから、半年が経過しました🎉 気づけばエントリー数も20を超え、開発者ブログっぽくなってきなーと感じております。 この勢いを続けていけるよう、会社としても個人としてもこれからも頑張っていく所存です。 話は変わりまして、今回のブログでは「Rubyのスレッドで並列化するのに向いている処理」を簡単に調べたので、メモがわりに残しておこうと思います。 調査を実施した理由として、バックグラウンドジョブを動かすGemの1つに…

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

…ーサイドエンジニアの本間です。 以前弊社のしだより、デジタル連絡帳アプリ るくみーnote のクライアントサイド開発の一部 をご紹介させていただきました。 今回は、このプロダクトのサーバーサイド開発で工夫した点をご紹介したいと思います。 この開発におけるサーバーサイドエンジニアの主なタスクは、デジタル連絡帳のデータを保管するためのAPIサーバーの構築です。 今回、アプリとサーバーは完全分業で並列に開発を進めることから アプリケーション開発者にいかに早くAPIの仕様や動作を理解…

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

…ニアとして働いている本間と申します。 普段は、Ruby on Railsを使ったサービスのサーバーサイドの機能追加や改善を担当しています。 弊社の主要サービスである写真サービス るくみーは2013年5月に開発がスタートし、あと少しで5年目を迎えようとしています。 開発がこれだけの期間続けられているというのはとても喜ばしいことだと思うのですが、一方で開発初期にはなかった問題も発生してきています。 そのような問題の1つに「テストコードの実行完了までに時間がかかる」というものがあり…