PLEX Product Team Blog
https://product.plex.co.jp/
日本最大級の物流・運送・倉庫・整備士の求人・転職サイト「プレックスジョブ」を運営する株式会社プレックスのプロダクトチームによる公式ブログです。
フィード
【Gem Pundit】Punditの内部実装で学んだこと
PLEX Product Team Blog
この記事は、 PLEX Advent Calendar 2024の24日目の記事です。 はじめに 2024年に株式会社プレックスにエンジニアとして新卒入社した佐藤祐飛(@yuhi_junior)と申します。 業務でGem Punditを利用する機会があり、その内部実装を読んで学びが多くあったため本ブログではそちらを共有したいと思います。 Punditとは PunditはRuby on Railsのための認可ライブラリで、Policy Objectデザインパターンを簡単に実装することができます。 Punditの使用例 class ApplicationController < ActionCon…
12日前
ActiveJobのloggerメソッドをスタブするはなし
PLEX Product Team Blog
こんにちは、Plex Job開発チームの種井です。 この記事は、 PLEX Advent Calendar 2024の23日目の記事です。 私の書いた前回、前々回の記事でSemantic Loggerを使用してRailsアプリケーションから出力されるログを構造化する取り組みについて紹介しました。 今回はSemantic Loggerを使用して開発を行う中で、ログイベントのテストを作成する機会がありました。 その上で、いくらか工夫したところがあったので紹介したいと思います。 また、Plex Jobでは アプリケーションフレームワークとしてRails テスティングフレームワークとしてはRSpec …
13日前
これがkintone開発の理想形!! 開発環境を劇的に改善した話
PLEX Product Team Blog
kintone プラグイン・カスタマイズの開発環境を劇的に改善した方法をまとめた記事です。
15日前
オンプレRedashの運用Tips8選
PLEX Product Team Blog
こんにちは、プレックスの石塚です。この記事は、 PLEX Advent Calendar 2024の20日目の記事です。 プレックスではBIツールとして2年ほど前からRedashを使用しています。今回の記事ではRedashの簡単な紹介とオンプレで運用する上でのTipsを8つ紹介します。 以前はMetabaseというBIツールを使用していたのですが、データ活用が思ったより進まず、Redashに移行する流れとなりました。このあたりの話もいずれ機会があればブログにまとめたいと思います。 Redashとは? オンプレRedashの運用Tips8選 1. パスワードログインを無効にする 2. グループを…
16日前
Webパフォーマンス改善に向き合っていくお話
PLEX Product Team Blog
こんにちは、Plex Job開発チームの高岡です。 この記事は、 PLEX Advent Calendar 2024の16日目の記事です。 以前投稿した入社エントリーでReactにおけるパフォーマンスチューニングについてお話する旨を記載してから、早半年が経過しました... そのお話をする前に、パフォーマンス改善に向き合うための基礎知識をまとめましたので、こちらからお話ししていきたいと思います。 Reactでのパフォーマンス改善の具体的なお話は気長にお待ちいただけますと嬉しいです 🙏 対象読者 パフォーマンスに興味を持ち始めた方 Webパフォーマンスの指標を勉強したい方 対象読者 背景 Webパ…
20日前
BigQueryでリージョンだけ異なるテーブルを生成する方法
PLEX Product Team Blog
この記事は、 PLEX Advent Calendar 2024の15日目の記事です。 はじめに こんにちは。コーポレートチームの石川です。 今回は BigQuery(以下、BQ)で異なるプロジェクトのデータセットを利用したい場合や、同一プロジェクト内で異なるリージョンにデータセットを作成したい場合の対応方法を記載します。 背景 社内プロジェクトの一部で、Heroku 上で Rails を動かしつつ、BQ のテーブルを利用し、EXTERNAL_QUERY で Cloud SQL を参照しているシステムがありました。 その際、Heroku・BQ・Cloud SQL のリージョンが異なり、本来2~…
21日前
自社のデータ基盤を支えるAirbyteの良いところ
PLEX Product Team Blog
この記事は、 PLEX Advent Calendar 2024 の14日目の記事です。 こんにちは、株式会社プレックスのコーポレートチームの金山です。 この記事では「Airbyte」というデータ基盤で使われるツールについて紹介したいと思います。 Airbyteとは Airbyteとは、オープンソースで公開されているデータ同期ツールです。 airbyte.com Airbyteは、様々なデータソースからデータを抽出(Extract)し、データウェアハウスやデータレイクなどにロード(Load)するために使用されます。 例えば、ウェブアプリで使用しているPostgreSQLのデータを、分析用のBi…
22日前
ReactによるVue.js v2プロジェクトのリプレイス〜基本API からライフサイクルまで〜
PLEX Product Team Blog
Vue.js v2のサポート終了に伴い、Reactへのリプレイスを行いました。リプレイスをスムーズに進めるために、基本機能やAPIの違いをコード例付きで解説します。
23日前
ISUCON14で入賞した初出場の新卒チームが取り組んだこと
PLEX Product Team Blog
この記事は、 PLEX Advent Calendar 2024の11日目の記事です。 はじめに 2024年に株式会社プレックスにエンジニアとして新卒入社した佐藤祐飛(@yuhi_junior)と申します。 ISUCON14にチーム「黒酢唐揚げサン丼」として出場し、初出場で30位入賞することができました。 順位: 30位 / 834チーム 得点: 24464点 得点推移 全チームスコア ISUCONはつよつよエンジニアが多く参加するので準備なしに好成績を収めることがとても難しいコンテストです。しかし、私たちはチームで入念に準備することで初出場の新卒チームであっても入賞することができました。 本…
1ヶ月前
神田〜三越前周辺のおすすめランチ10選
PLEX Product Team Blog
はじめに こんにちは、プレックスの石塚です。 この記事は、 PLEX Advent Calendar 2024 の10日目の記事です。 ようやくアドベントカレンダーのできる組織の規模になってきて嬉しい限りです! ここまで9件の記事が公開されており、ほとんどが技術的なテーマの記事だったため、このあたりで技術の全く関係のないネタをぶち込んで行きたいと思います。 神田〜三越前周辺のおすすめランチ10選 今回の記事ではプレックスのオフィス近辺である神田〜三越前のエリアでランチ営業を行っているお店の中から、一芸に秀でているお店を紹介していきます。 記事を見てくれた方が、どれか1つでも行ってみたいという気…
1ヶ月前
Semantic LoggerのログをDatadog用にカスタマイズしてみた
PLEX Product Team Blog
こんにちは、Plex Job開発チームの種井です。 この記事は、 PLEX Advent Calendar 2024の9日目の記事です。 DBクライアントツールはDataGripを使っています! よく使う機能はダイアグラム機能です。 背景・課題 前提の確認 環境 Semantic Loggerとログのフォーマット やったこと 1. Datadog Logs用のFormatterクラスを作成する 2. Appenderに作成したFormatterクラスを設定する まとめ おわりに 背景・課題 過去の記事「Railsアプリケーションのログを構造化し、Datadogで活用するまで」の中で、Datad…
1ヶ月前
Heroku で Cloud SQL を利用する方法
PLEX Product Team Blog
Heroku上でWebアプリを運用し、Google Cloud SQLをデータベースとして利用するための設定手順と注意点を解説した記事です。
1ヶ月前
RailsのDelegated Typesで実現する柔軟なモデル設計
PLEX Product Team Blog
この記事は、 PLEX Advent Calendar 2024 の7日目の記事です。 はじめに こんにちは、株式会社プレックスのコーポレートチームの金山です。 この記事では、Railsアプリケーションの設計に役立つ「Delegated Types」について解説したいと思います。 「Delegated Types」がどのような課題を解決するのか、使い方やメリット・デメリット、実際に使ってみた感想をシェアしていきます。 背景と課題 とあるプロジェクトの開発で、通話履歴を管理する機能を実装することになりました。 通話には「企業への通話」と「個人への通話」の2つがあります。 これら2つの異なるモデル…
1ヶ月前
プレックス入社!コーポレートチームで頑張ります!
PLEX Product Team Blog
はじめに はじめまして、プレックスの前川と申します。 2024年11月に株式会社プレックス(以下、プレックス)にエンジニアとして入社しました。 入社して2週間と少しですが、自己紹介を兼ねて入社経緯や入社してからの感想などをまとめておきたいと思います。 一人でも多くの方にプレックスに興味を持っていただけると嬉しいです。 目次 自己紹介 プレックスに入社した理由 入社してからの感想 最後に 自己紹介 私の経歴は以下の通りです。 年月 経歴 2016年5月 某個別指導塾企業へ入社。 教室長と教室売却をしていました。 2022年2月 ポテパンキャンプでRuby on Railsを主に学習 2022年8…
1ヶ月前
TypeScriptの型を復習しましょう
PLEX Product Team Blog
この記事は、 PLEX Advent Calendar 2024の5日目の記事です。 今回紹介する下記の型は、 よく使うもの、見かけた時にすぐに理解しづらいものを選んでいます。 TypeScriptの型を復習しましょう リテラル型 特定の値そのものを型として使用できる機能 // 例1: type Direction = "north" | "south" | "east" | "west" let myDirection: Direction = "north" // OK myDirection = "up" // ❌ エラー: "up"は許可されていない // 例2: // HTTP メソ…
1ヶ月前
【Next.js】Next/Imageの画像プレビューにて発生したメモリリークを追う
PLEX Product Team Blog
Next.jsの「Next/Image」を利用した画像プレビュー機能で発生するSafariブラウザのクラッシュ問題について、メモリリークの実態や発生する原因をXcodeとSafari Web Inspectorを駆使して深掘った調査記事です。
1ヶ月前
【Webフロントエンド開発】モバイルビューをデバッグするためのSimulator/Emulator活用 2024年版
PLEX Product Team Blog
iOS SimulatorやAndroid Emulatorを活用して、MacBook上でスマートフォン実機に近い環境を再現し、Webフロントエンドアプリケーションの開発・検証を効率化する方法を解説します。Next.jsを例に、設定手順やデバッグツールの活用方法を具体的に紹介。実機が不足している場合でも、精度の高い検証をローカル環境で実現できます。
1ヶ月前
Railsアプリケーションのログを構造化してDatadogで活用するまで
PLEX Product Team Blog
こんにちは、Plex Job開発チームの種井です。 私の所属するPlex Job開発チームでは、監視ツールとしてDatadogを使用しています。 Datadogには収集したログを監視や調査に活用する上で便利な機能がいくつかありますが、それぞれの機能を有効化するにはログを予め要求されるフォーマットで書き出す必要があります。 今回は、ログをフォーマットすることで、Datadogの各機能を有効化し監視や調査業務に活用するまでの取り組みについて書きたいと思います。 前提 背景や課題 ログとは? 構造化ログと非構造化ログ ログの用途 Plex Jobでの課題 今回のゴール 1. アプリケーションのログを…
1ヶ月前
【JavaScript】もちろん「0.1 + 0.2 ≠ 0.3」をちゃんと説明できますよね??
PLEX Product Team Blog
【JavaScript】もちろん「0.1 + 0.2 ≠ 0.3」をちゃんと説明できますよね??
2ヶ月前
新卒エンジニアが複数社合同で輪読会を開催している話
PLEX Product Team Blog
はじめに こんにちは、2024年4月に株式会社プレックスに新卒入社した佐藤祐飛です。現在は建設業界向けSaaSプロダクト「サクミル」の開発に携わっています。 2024年5月から約2ヶ月間、日本CTO協会主催の「新卒エンジニア向けの合同研修」に参加し、こちらの研修で知り合った10社の24卒新卒エンジニアと月に1度、各メンバーのオフィスにて合同で輪読会を開催しています。本ブログではその内容についてご紹介します。 はじめに 目的 知見の共有 継続的な交流の機会 輪読会の様子 輪読会を継続させる工夫 一名が発表する形式 早めに日程を抑える 懇親会を実施 最後に 目的 輪読会を開催する目的は大きく2つあ…
3ヶ月前
【Rails】ワンタイムトークンが作れる generates_token_for の内部実装を追ってみた
PLEX Product Team Blog
こんにちは、Plex Job 開発チームの池川です。 今回の記事では、Railsアプリでワンタイムトークンを使うにあたって ActiveRecord::Base.generates_token_for と ActiveRecord::Base.find_by_token_for ついて調べた内容をまとめていきます。 検証環境 どのようなメソッドか 1. トークンはどのように生成されているか generates_token_for の内部実装 ActiveSupport::MessageVerifier 2. トークンは生成の都度変わるか 3. トークンの検証時に、実際に比較されている値は何か …
3ヶ月前
【CTO協会研修記録】 未経験エンジニアがISUCONで圧倒優勝するまでの話
PLEX Product Team Blog
はじめに こんにちは、2024年4月に株式会社プレックスに新卒入社した佐藤祐飛です。現在は建設業界向けSaaSプロダクト「サクミル」の開発に携わっています。 2024年7月31日に、日本CTO協会主催の新卒合同研修でISUCON研修が開催され、50万点を超えるスコアで優勝することができました。 CTO協会様主催のISUCON研修優勝しました🏆実はISUCON研修に勝つために2ヶ月間準備していたのですが、その成果が出てよかったです🔥後日、「ISUCON 研修をガチった話」と題してテックブログを投稿する予定なのでそちらもチェックしていただけると嬉しいです‼️#ctoawakate https://…
5ヶ月前
【入社エントリ】フロントエンドからバックエンドへ、さらなる高みを目指すために入社しました!🔥
PLEX Product Team Blog
はじめまして、プレックスの高岡と申します。 2024年4月に株式会社プレックス(以下、プレックス)にエンジニアとして入社しました。 今回、入社して4ヶ月程経ちましたので、入社経緯や入社してからの感じていることをまとめておきたいと思います。 一人でも多くの方にプレックスを知ってもらえると嬉しいです。 自己紹介 プレックスへ入社した理由 入社して感じたところ やっぱり求められる基準が高い 他のエンジニアチーム・メンバーの色や個性が多様でおもしろい ビジネスサイドにも魅力的なメンバーが多い 最後に 次回予告 自己紹介 現在25歳で社会人4年目になります。 新卒では、地元の受託開発の会社に就職しました…
5ヶ月前
【GraphQL Ruby】N+1問題を防ぐ GraphQL::Dataloaderのまとめ
PLEX Product Team Blog
はじめに こんにちは、SaaS事業部(サクミル)のエンジニアの栃川です。 今回は、N+1問題を防ぐGraphQL Rubyの「GraphQL::Dataloader」について調べたことをまとめていきたいと思います。 github.com 対象とする読者 GraphQL Rubyについて基本的な知識があるという方 GraphQL::Dataloaderについて概要を知りたい方 はじめに 対象とする読者 GraphQL::Dataloaderとは GraphQL::Dataloaderの実装例 前提 fieldの定義 sourcesの実装 どんな仕組みになっているのか? Fiberについて Gra…
5ヶ月前
Developer eXperience Day 2024 参加レポート
PLEX Product Team Blog
こんにちは、プレックスの石塚です。 今回は、7月16日から17日の2日間にわたって開催されたDeveloper eXperience Day 2024に参加してきたので、その感想をまとめたいと思います! Developer eXpericence DayはCTO協会が主催するイベントで、その名の通りテーマは開発者体験となっています。 cto-a.org 印象に残ったセッションとその感想 簡単ではありますが、印象に残ったセッションを紹介して、感想をまとめたいと思います。 チーム安野が目指すデジタル民主主義 東京都知事選に出馬し、無所属・初出馬で5位の15万票を獲得された安野さんの発表です。都知事…
6ヶ月前
【インターン記録】技術と事業の両軸を目指して
PLEX Product Team Blog
はじめに はじめまして、豊田と申します。 約半年間、エンジニアインターンとしてサクミルという建設業界向けのSaaSプロダクトの開発に携わりました。 事業が急成長する中で、様々な経験をしたので、振り返りを兼ねてブログを書くことにしました。 はじめに インターンに参加をしたきっかけ 魅力的だった点 1. ビジネスと開発の距離の近さ 2. 事業が急成長する中での開発 半年間で得たもの プロとしての自覚 フィードバック 半年間で変わったこと スタンス スキル 「技術的な視点から事業を伸ばせるエンジニア」になる 最後に インターンに参加をしたきっかけ Xでインターン募集の投稿を見て、興味を持ちました。 …
6ヶ月前
Firebase Authenticationにおける分散トランザクション
PLEX Product Team Blog
はじめに 2024年4月に株式会社プレックスにエンジニアとして新卒入社した佐藤祐飛と申します。現在はサクミルという建設業界向けのSaaSプロダクト開発を行っています。 sakumiru.jp Firebase Authentication(以下Firebaseと略します)を利用した認証において、ユーザー作成時に分散トランザクションによってデータの整合性を担保する実装をRuby on Railsで行ったのでその知見について共有したいと思います。 firebase.google.com はじめに 背景 サクミルにおけるユーザー認証について ユーザー作成方法について 課題 ユーザーデータの不整合が生…
7ヶ月前