LCL Engineers' Blog

バス比較なび・格安移動・バスとりっぷを運営する LCLの開発者ブログ

Rails

レガシーなRails製管理画面開発をimportmap-railsとdartsass-railsで最適化する

はじめに バックエンドエンジニアの星野です。 最近、節電を意識して自宅のUbuntuサーバーを停止しました。 夏真っ盛りですが、電気代の値上げで自宅サーバーにとっては冬の時代です。 LCLではレガシー脱却の取り組みの一環としてRuby on Railsで作成された…

aws-sdk-railsでSQSをActive Jobのアダプターとして使う

はじめに この記事はLCL Advent Calendar 2021 - 4日目です。 qiita.com バックエンドエンジニアの星野です。このアドベントカレンダー同じ人しかいないって?気のせいです。 LCLのバッチジョブ実行基盤解説記事の最後のエントリになります。 最終日はSQSとA…

Railsのcredentials.yml.encとmaster keyをDockerで安全に扱う

バックエンドエンジニアの星野です。 東京オリンピック2020が開幕されましたね。LCLは移転前のオフィスがオリンピック選手村に近い勝どきにあったので選手に親近感を覚えます。 さて、LCLではバックエンド開発のWebアプリケーションフレームワークとしてRuby…

DBのビューを使ってみたらRailsのコード修正が(ほぼ)要らなくなった話

Androidエンジニアの高橋です。 突然ですが、皆さんデータベースのビューって使ったことありますか? CREATE VIEW で作るアレです。 自分は過去にビューを使うプロジェクトでお仕事した経験はありますが、そんなに理解も深くなく、なんとなく「プログラム書…

Rails × Amazon Elasticsearch Serviceで全文検索

qiita.com この記事はLCL Advent Calendar 2020 - 16日目の記事です。 バックエンドエンジニアの横塚です。 最近はほぼフルリモートということもあり、お仕事デスク周りのアップデートを計画中です。 久しぶりのブログ執筆になりますが、本記事ではLCLのバス…

Ruby / Ruby on Railsでサービス開発をしている弊社ブログに蓄積された過去記事を振り返ってみた

モバイルアプリエンジニアの山下です。 LCLでは全てのWebサイト・APIや社内ツールでRuby / Ruby on Railsを採用しています。 当ブログでも開発中に得た色々な知見がアウトプットされてきました。 そこで今回は、Ruby / Ruby on Railsに関する過去の記事を振…

Railsで大量データを扱うときに気をつけていること

バックエンドエンジニアの横塚です。 Railsで中規模以上のサービスを運用していると、大量のレコードやcsvをバッチで処理したい場面などが出てくると思います。 当たり前のように意識できている人も多いかと思いますが、今回はおさらいの意味も込めてバッチ…

Ruby on RailsでDB マイグレーションする際にシステム障害を回避するための工夫

Webエンジニアの森脇です。 LCLでは、DB設計変更で、DBマイグレーションをする際にシステム障害を回避するためのいくつか工夫をしています。今回は、その内容を簡単にご紹介いたします。 migration作成時の注意 ブランチ戦略 原則、migrationのブランチは独…

JOBのログ出力をちょっと便利にした話

Webエンジニアの横塚です。 LCLでは、JOB管理にクックパッド社のKuroko2を利用しています。 Webの管理画面でJOBのスケジューリングやリトライ、ログを監視できる便利なツールです。 詳しくは以下の記事をご覧ください。 techblog.lclco.com 課題 Kuroko2では…

rack-corsでCORS設定をする

Webエンジニアの森脇です。rack-corsを利用して、RailsでCORSの設定をしてみました。 github.com rack-corsの基本的な使い方 gemを追加して、cors.rbファイルに下記のように記載します。 originsに許可したいアクセス元のoriginを定義します。 Rails.applica…

capistrano-bundle_rsyncを利用したデプロイ方式に変更しました

Capitranoを利用してRailsアプリケーションのデプロイを行っていましたが、「capistrano-bundle_rsync」を利用する方式に変更しましたので、背景含めて紹介いたします。

Webサービスの品質向上のために導入しているサービス・ツールまとめ

LCLが運営しているWebサービスは、品質向上のために、複数のサービスやツールを利用しています。今回はそれらのサービス・ツールをまとめてご紹介します。 品質向上のためのプロセス それぞれのサービス・ツールは以下のタイミングで利用しています。 各サー…

Railsアプリケーションで採用しているDBスキーマ設計ガイドライン

Railsアプリケーションで採用しているDB設計(スキーマ定義)について紹介します。 ※ Railsでは当たり前もの、Railsに依存していない内容も含んでいます。

ChatWorkのWebhookをRuby/Railsで受信する

先日、ChatworkがWebhookに対応されました。弊社では普段からChatworkを利用しており、早速検証しました。 ビジネスチャット「チャットワーク」がWebhookとOAuthに対応、オープンβ版の提供開始〜2018年春までにクラウドサービス17社18サービスとデータ連携開…

Railsのデプロイ時にwebpackのビルドを実行する

夜行バス比較なび(https://www.bushikaku.net/)の一部はReact & ES2015で実装されています。Railsのデプロイとwebpackの連携について紹介します。

RailsでPaperclipを利用して、画像に透かし(ウォーターマーク)を付与する

弊社で運営している「バスとりっぷ」というメディアでは、Paperclipを利用して画像のアップロードを行っています。Paperclipでは、サムネイルの作成やリサイズ・背景色の変更などを行っていましたが、透かし(ウォーターマーク)の付与にも対応しました。 ww…

BugsnagでRailsのエラーを漏れなく補足する

弊社では、以下のエントリで紹介したように、Bugsnagを利用してエラー監視をしています。 techblog.lclco.com 前回は、JavaScriptでの利用について紹介しましたが、今回はRailsでどのように利用しているのかを紹介します。 Bugsnagの選定理由 Railsのエラー…