フォルシア の技術ブログ
全167件
18リポジトリをnpmからpnpmに移行した際の学び
2024/11/08
ブックマーク
はじめに こんにちは、エンジニアの力石です。 フォルシアでは商品販売プラットフォームwebコネクトを提供しており、私はその中の検索システム(検索領域)の開発・運用保守を行っています。 検索領域はマイクロサービスアーキテクチャで構築されており、機能毎(コンポーネント毎)にリポジトリを分けるマルチリポジトリ構成を採用しています。 そして最近、検索領域
高速データ変換とトランザクション処理を両立するためのデータベース設計
2024/10/25
ブックマーク
まえがき フォルシアでは長年検索に特化したアプリケーションを開発してきましたが、近年注力しているプラットフォームのwebコネクトにおいては検索領域に留まらず商品販売に求められるあらゆる機能を提供しています。 webコネクトにおいて、ほぼ全ての商材データを管理する領域が素材登録システム(造成領域)です。素材登録システムでは商品販売に必要な情報の
Honoを使ってNext.jsにPOSTページを実装しよう!
2024/10/11
ブックマーク
こんにちは、エンジニアの籏野です。 近年、弊社の作るWebアプリケーションはNext.jsを用いて開発されることが多いです。 Next.jsは高パフォーマンスなWebページを作るための様々な機能を内包したReactフレームワークであり、メジャーバージョンアップの際には次々と新しい機能が追加されています。 さて今回はとある事情により、POSTメソッドで描画されるページを実装し
【チートシート】psqlコマンドで全部やる
2024/09/20
ブックマーク
こんにちは、エンジニアの水野です。 突然ですが、みなさんコマンドライン操作はお好きですか? 私は特に、直感的かつ手軽にスクリプトを書いてタスクをこなせるようなコマンドが好きです。 たとえばPostgreSQLを日常的に利用するDBプロフェッショナルは数多いるとはいえ、 「psqlコマンドをフルに使いこなしているよ」という方は意外と少ないのではないでしょうか。
【2024年版】めっちゃ使いやすいPythonの開発環境をVSCode上で構築する方法
2024/09/06
ブックマーク
筆者はPythonのパッケージ管理ツールとしてpip、バージョン管理ツール(仮想環境)としてpyenv / virtualenvを利用していますが、 要求されるパッケージのバージョンが衝突する、全体の環境が汚れていくなど色々不便さを感じています。このような悩みはPythonユーザーあるあるではないでしょうか? そこで今回は、2024年時点で非常に使いやすいと噂のRyeやその他ツールを改
AWS Organizations と AWS Config を利用した複数アカウントのリソース監視
2024/08/30
ブックマーク
はじめに こんにちは、フォルシア SRE ユニットの高嶋です。 本記事では、AWS Organizations と AWS Config を利用した複数アカウントのリソース監視についての一例をご紹介します。監視の実現にあたっては、 Config アグリゲータという複数アカウントの AWS Config 設定や評価情報を集約してくれる機能を利用しています。大変便利な機能なのですが、集約した情報を利用して通知
非コンテナ環境でもOK!AnsibleとAnsistranoで簡単サーバーデプロイ
2024/08/16
ブックマーク
こんにちは、エンジニアの瑠東です。 エンジニアは誰しもデプロイに困ったことが一度はあるのではないでしょうか。 OSやミドルウェアのバージョンアップデート・インストールをしたいが、自動で全て行う方法はないか ローカルに環境構築を行いたいが、npmコマンドなどをひとつひとつ叩かないといけない 追加・修正したコードをサーバーに反映したいが、手動でsymli
monorepo × vitestでプロジェクト全体のカバレッジを計測する
2024/08/02
ブックマーク
こんにちは、エンジニアの籏野です。 アプリケーション開発において、テストを書くということは非常に重要です。 テストを書く際の一つの指標としてカバレッジを計測することがあると思います。 弊社でもカバレッジの計測を行っているのですが、モノレポ構成のプロジェクトでプロジェクト全体のカバレッジを計測したいという要望がありました。 プロジェクト内
PostgreSQLだけでElasticsearchのようなキーワード検索!ParadeDB触ってみた
2024/07/26
ブックマーク
はじめに こんにちは、エンジニアの長谷です。 最近社内でPostgreSQL拡張をRustで実装しているのですが、世の中でもRust製のPostgreSQL拡張がいろいろと開発されているようです。 今日はその中の1つParadeDBをご紹介します。 ParadeDBとは ParadeDBとはElasticsearchのような機能を持つPostgreSQL拡張で、Rustで実装されています。 似たような拡張としてはZomboDBがありますが、こちらはあく
できるだけターミナルを使わないVisual Studio Codeでの開発
2024/06/28
ブックマーク
この記事は、Visual Studio Code(以下「VS Code」といいます)でできるだけターミナルを使わないで開発する方法を紹介する記事です。 ターミナルを使わない理由 VS Codeはターミナルを内蔵しており、VS Codeを離れることなくコマンドを使って作業できることが便利とされていますが、初学者の方はコマンドを覚えていなかったり、ターミナルでの作業に慣れていなかったりする
出ない順 PostgreSQLの実行計画
2024/06/07
ブックマーク
まえがき エンジニアの吉田です。 このブログのタイトルを見て記事をご覧になった方は言うまでもなく常日頃よりexplainコマンドの結果とにらめっこする生活を送っていることと推察しますが、PostgreSQL(以下postgres)の実行計画について「完全に理解した」と言える人は果たしてどれくらいいるでしょうか。 かくいう私も「ここでSeq Scanが走っているんだな」「ここはNested Lo
その関数ほんとに全部わかってますか? ~Effectの実例を添えて~
2024/05/24
ブックマーク
こんにちは、エンジニアの籏野です。 最近、弊社エンジニアが社内向けに書いた記事で「ある関数を実行したときに捕捉すべきエラーをどのように知ればよいか?」という問いを投げていました。 この問いに対する回答として、いわゆるResult型の利用を提案してくれていたのですが、これが個人的にとても興味深いものでした。 私自身最近はRustを触っていることもあり
OpenAPI定義を用いて型安全にFormDataを扱いたい!
2024/05/10
ブックマーク
こんにちは、エンジニアの籏野です。 フォルシアの API 開発では OpenAPI 定義を利用し、TypeScript の型定義や各種ソースコードを自動で生成していることがあります。 最近は型の生成にopenapi-typescript、フロントエンドで利用する API クライアントにopenapi-fetchを利用する機会が増えてきました。 openapi-fetch を利用する場合、クエリ/パスパラメータ―や JSON.stringify できるような
「あの写真どこいった?」を画像認識で解決してみる
2024/04/26
ブックマーク
はじめに はじめまして、こんにちは。 フォルシアの基盤技術部でエンジニアをしている太田と申します。 突然ですが、みなさまはスマホ、デジカメ等々で写真を撮ることは多いでしょうか? 写真をよく撮られる方にあるあるのお悩みの一つに「あの写真どこ?」となることがあるかと思います。 今回はそんなお悩みが解決するような「文章による画像検索機能」を作成
Node.jsによるCLI開発のススメ ~watchモードを添えて~
2024/03/29
ブックマーク
こんにちは、エンジニアの籏野です。 近年のフォルシアのアプリ開発は Node.js を中心としたエコシステムの恩恵を多く受けながら行われています。 モジュールとしてアプリで利用するだけでなく、便利な CLI などもたくさん存在しており、ちょっとした困りごとが簡単に解決できる場面も多いです。 今回は開発を進める中で CLI を自作しようかなと思う場面があり、基本