FORCIA Tech Blogのフィード

https://zenn.dev/p/forcia_tech

――「つなげれば、見える。」――膨大・複雑なデータから必要な情報を的確に探し出す検索テクノロジーを基にしたシステム開発・サービス提供並びに、コンサルティングで企業のDXを推進するフォルシア株式会社テックブログです。 エンジニア積極募集中!!

フィード

記事のアイキャッチ画像
PostgreSQL 注目機能改善 #2: COPY編
FORCIA Tech Blogのフィード
まえがきCOPYコマンドはPostgreSQL特有の機能で、ファイルとテーブル間でデータを移動する際に使用します。COPY FROMはファイルからテーブルにデータを入力するコマンドで、COPY TOはDBからファイルにデータを出力するコマンドです。特にCOPY FROMコマンドは大量の行をロードすることに長けているため、INSERTコマンドを使用したファイルのロードより高速にデータの取り込みが可能です。COPYコマンドはPostgreSQL 15, 16, 17 で機能追加や性能改善がありました。本稿ではそれらの改善内容の紹介と、簡単な検証を実施します。連載について本連載は...
10日前
記事のアイキャッチ画像
シンプルで使いやすい新たなRPCライブラリ~oRPCとは何者か?~
FORCIA Tech Blogのフィード
はじめにこんにちは、エンジニアの籏野です。先日、oRPCというライブラリのV1がリリースされました。https://x.com/unnoqcom/status/1912153521060987057oRPCはTypeScriptを利用するシステムにおいてRPC(Remote Procedure Call)を実現するためのライブラリです。RPCの特徴は、クライアント側からはメソッドを呼び出すような感覚でAPIを利用することができ、REST APIのようにエンドポイントを意識する必要がなくなることが挙げられます。RPCを実現する有名なライブラリとしてtRPCがありますが、どの...
21日前
記事のアイキャッチ画像
「レンズ」でフォーカス!@hookform/lensesを使ったフォーム実装
FORCIA Tech Blogのフィード
こんにちは、フォルシア株式会社エンジニアの籏野です。先日、React Hook Formの公式アカウントが以下のようなポストをしているのを見つけました。https://x.com/HookForm/status/1894698099677028618新たにリリースされた@hookform/lensesがどのようなライブラリなのか気になり調べてみました。 @hookform/lensesとはGitHubに記載の内容を訳すると以下のようになります。(日本語訳 by DeepL)React Hook Form Lensesは、React Hook Formに関数型レンズのエレガ...
1ヶ月前
記事のアイキャッチ画像
超直感的なバリデーション?ArkType入門
FORCIA Tech Blogのフィード
こんにちは、フォルシア株式会社エンジニアの籏野です。今回はzodやvalibotと同じバリデーション用ライブラリであるArkTypeについて紹介したいと思います。 ArkTypeの特徴ArkTypeの大きな特徴としては以下の点が挙げられます。TypeScriptの型記法に似た記法によりバリデーション定義が可能実行時にはzodの100倍高速に動作し、エディター上でも高パフォーマンスな補完を提供するStandard Schemaへの対応※Standard Schemaはzodやvalibotといったバリデーションライブラリの共通インターフェース仕様です。本記事で...
1ヶ月前
記事のアイキャッチ画像
B to B SaaSプロダクトの継続的開発・運用保守をする上での課題とそれに対する取り組み
FORCIA Tech Blogのフィード
こんにちは、エンジニアの松枝です。私が所属する部署では企業が旅行検索サービスを作成できるSaaSプロダクトの開発、運用保守を行っています。ありがたいことに導入していただける顧客の数も増え、数多くの顧客プロジェクトが並走しています。ただ、顧客数が増えるとともにSaaSプロダクトという特性上品質保証のための検証コストが高まったり、各顧客の要望に柔軟に応えるのが容易ではなくなってきました。また開発がいくつも並走して行われ、プロジェクト間の連携がうまくとれず似たような機能の開発がそれぞれのプロジェクトで進んでしまったり、開発ブランチ運用やソースコードのコンフリクト解消に多大な時間を割く状態...
2ヶ月前
記事のアイキャッチ画像
PostgreSQL 注目機能改善 #1: window関数編
FORCIA Tech Blogのフィード
まえがき本連載はPostgreSQLの比較的新しいバージョンで導入、改善された機能に注目し、その紹介と簡単な検証をする連載です。RDBは枯れた技術と評されることが多いですが、PostgreSQLは1年ごとにメジャーアップデートがあり、その度に多くの機能追加や改善が施されています。本連載では膨大な改善の中から特定の機能に着目し、各メジャーバージョンでどのような改善が導入されたかにフォーカスします。本稿ではwindow関数の改善を紹介します。PostgreSQL 15, 16 では window関数の性能が改善しました。window関数は主に分析系のクエリなどでよく使われるイ...
2ヶ月前
記事のアイキャッチ画像
AWS CDK実行環境をCloudFormationで用意する
FORCIA Tech Blogのフィード
こんにちは、エンジニアの籏野です。フォルシアでは主にAWS上に用意した環境にアプリをデプロイしており、初期のころはCloudFormationのテンプレートを書いて環境を構築していました。近年ではAWS CDKを利用することが多くなってきており、単なるYAML等の設定ファイルではなく自分たちに馴染みのある言語で環境を記載できてとても便利に感じています。AWS CDKを利用しているので、最終的にはcdk deployコマンドを実行する必要がありますが、このコマンドをどこで実行するのかというのは重要なポイントです。AWSのアクセスキーを発行することで、ローカルの開発環境や社内に用意す...
3ヶ月前
記事のアイキャッチ画像
React useを触ってみた
FORCIA Tech Blogのフィード
まえがきエンジニアの恒川です。私は現在Next.js App Routerを用いたアプリケーション開発をしています。Next.js 15からReact 19の使用が始まることを受けて、Reactのuse APIでどんなことができるのか実際に触ってみました。 usehttps://react.dev/reference/react/useuse.tsximport { use } from 'react';function MessageComponent({ messagePromise }) {const message = use(messagePromi...
4ヶ月前
記事のアイキャッチ画像
新しいおもちゃを見つけたいエンジニア必見:私がやっている情報収集
FORCIA Tech Blogのフィード
はじめにこんにちは、エンジニアの奥田です。私は新しいものが大好きです。新しいものは既存の問題を解決してくれたり、新しい視点を与えてくれたりするからですね。新しい技術や商品、アプリ……どれも最高です!「早く知って遊びたい!」という気持ちがあります。ただ、知らないことには遊べないので、私は情報収集に力を入れています。この記事では、その一例として、私が普段どのように情報を集めているのか、ご紹介しようと思います。 日々の情報収集についてソフトウェアエンジニアは、フロントエンド、バックエンド、インフラ、データ分析、セキュリティ、モバイル開発、クラウドネイティブ、DevOpsなど...
4ヶ月前
記事のアイキャッチ画像
Rustの並列処理で安全にログ出力する
FORCIA Tech Blogのフィード
こんにちは、エンジニアの澤田です。昨年は Rust の quick-xml というライブラリを使ってみた記事 を書きましたが、Rust の勉強を兼ねて、今回は並列処理をやってみようと思います。普段の業務で、外部のAPIへ並列でリクエストを送り、その際に受け取ったエラーメッセージなどをログに書き込む処理を行っていますが、並列処理でのログ出力を Rust でやってみようと思います!※rustc と cargo はバージョン 1.83.0 を使用しています。 並列処理でログ出力を安全に行う複数のスレッドが単一のリソースを変更する場合に、安全に変更する方法は大きく以下の2つがあります...
5ヶ月前
記事のアイキャッチ画像
Next.js 15アップグレードで嵌った話
FORCIA Tech Blogのフィード
まえがきエンジニアの恒川です。2024年10月に Next.js 15 安定版がリリースされました。キャッシュ戦略に大きな変更があったり、 Turbopack のstableが使えるようになったりなど気になる変更内容がたくさんありました。私が所属するチームでは Next.js 14 を使ったアプリケーション開発をしていましたが、今回の Next.js 15 リリースを受けてバージョンアップを行いました。14 → 15へのアップグレードだったためサクッといけるだろうと思っていたのですが、いくつかハマりポイントがあり、完全にすべては解消できていないものの現在では Next.js ...
5ヶ月前
記事のアイキャッチ画像
Apacheの拡張モジュール「mod_qos」でアクセスが殺到しても落ちないwebサイトを作る
FORCIA Tech Blogのフィード
はじめにインターネット上でwebサイトを運用している方であれば、自身の管理するwebサイトに突然アクセスが殺到しwebサイトが高負荷になってヒヤヒヤしたり、実際にダウンさせてしまったという経験があるかもしれません。アクセス数の見積もりやサーバのサイジングを慎重に行っていたとしても、インターネット上にサーバを公開している以上はアクセスが突如としてスパイクし想定以上の高負荷状態になってしまうことはあり得るかと思います。アクセス急増時にwebサイトをダウンさせないようにするには、一般的に以下のような方法が考えられるかと思います。 オートスケールする高負荷となったらオートスケール...
6ヶ月前
記事のアイキャッチ画像
Neovim で VS Code みたいにコーディングする
FORCIA Tech Blogのフィード
はじめまして、新卒1年目エンジニアの出口です。私は以前 Visual Studio Code (VS Code) を使ってプログラムを書いていました。VS Code はインストールしたらすぐに様々な言語でコーディングを始めることができ、便利です。ただ、VS Code の統合ターミナル上のシェルと、VS Code のキーボードショートカットが干渉してしまうことが多い点では不便だったため、Neovim に移行しました。https://neovim.io/移行してみてしばらく経ち、さほど不満は出てこなかったので、Neovim で開発することで感じたメリットと、VS Code から体験...
6ヶ月前
記事のアイキャッチ画像
18リポジトリをnpmからpnpmに移行した際の学び
FORCIA Tech Blogのフィード
はじめにこんにちは、エンジニアの力石です。フォルシアでは商品販売プラットフォームwebコネクトを提供しており、私はその中の検索システム(検索領域)の開発・運用保守を行っています。検索領域はマイクロサービスアーキテクチャで構築されており、機能毎(コンポーネント毎)にリポジトリを分けるマルチリポジトリ構成を採用しています。そして最近、検索領域では npm を利用している全 18 リポジトリのパッケージマネージャーを pnpm へと移行しました。本記事では移行の際に躓いたエラーや今回の移行の反省点・今後に向けての改善点について紹介します。(移行手順についてはさまざまな記事が出て...
6ヶ月前
記事のアイキャッチ画像
高速データ変換とトランザクション処理を両立するためのデータベース設計
FORCIA Tech Blogのフィード
まえがきフォルシアでは長年検索に特化したアプリケーションを開発してきましたが、近年注力しているプラットフォームのwebコネクトにおいては検索領域に留まらず商品販売に求められるあらゆる機能を提供しています。webコネクトにおいて、ほぼ全ての商材データを管理する領域が素材登録システム(造成領域)です。素材登録システムでは商品販売に必要な情報の登録、管理に加え、サイトコントローラーなどの外部システムとの商品連携や、検索領域、予約領域を始めとした外部システムへのデータ配信を担っています。そんなwebコネクトにおける「データの肝」である素材登録システムには、これまで我々が提供してきた検索...
7ヶ月前
記事のアイキャッチ画像
Honoを使ってNext.jsにPOSTページを実装しよう!
FORCIA Tech Blogのフィード
こんにちは、エンジニアの籏野です。近年、弊社の作るWebアプリケーションはNext.jsを用いて開発されることが多いです。Next.jsは高パフォーマンスなWebページを作るための様々な機能を内包したReactフレームワークであり、メジャーバージョンアップの際には次々と新しい機能が追加されています。さて今回はとある事情により、POSTメソッドで描画されるページを実装したい要望が出てきたため、Next.jsでPOSTページを実現できるのか検証してみました。 結論HonoをRoute Handlersで利用することで、Next.jsでもPOSTページを実装することができました。...
7ヶ月前
記事のアイキャッチ画像
【チートシート】psqlコマンドで全部やる
FORCIA Tech Blogのフィード
こんにちは、エンジニアの水野です。突然ですが、みなさんコマンドライン操作はお好きですか?私は特に、直感的かつ手軽にスクリプトを書いてタスクをこなせるようなコマンドが好きです。たとえばPostgreSQLを日常的に利用するDBプロフェッショナルは数多いるとはいえ、「psqlコマンドをフルに使いこなしているよ」という方は意外と少ないのではないでしょうか。ドキュメントを漁れば無限に機能が出てくるPostgreSQLですが、なかでもpsqlコマンドは書き捨てクエリの操作だけではなく、psql自身が実行するメタコマンドとして、直感的かつ非常に手広く活用できます!本記事では、psqlコ...
8ヶ月前
記事のアイキャッチ画像
【2024年版】めっちゃ使いやすいPythonの開発環境をVSCode上で構築する方法
FORCIA Tech Blogのフィード
筆者はPythonのパッケージ管理ツールとしてpip、バージョン管理ツール(仮想環境)としてpyenv / virtualenvを利用していますが、要求されるパッケージのバージョンが衝突する、全体の環境が汚れていくなど色々不便さを感じています。このような悩みはPythonユーザーあるあるではないでしょうか?そこで今回は、2024年時点で非常に使いやすいと噂のRyeやその他ツールを改めて導入し、各ツールの利用方法や使い心地などを確認することにしました。 この記事によってできることPythonの新規プロジェクト立ち上げが容易に行えるパッケージ管理、バージョン管理、仮想環境管...
8ヶ月前
記事のアイキャッチ画像
AWS Organizations と AWS Config を利用した複数アカウントのリソース監視
FORCIA Tech Blogのフィード
はじめにこんにちは、フォルシア SRE ユニットの高嶋です。本記事では、AWS Organizations と AWS Config を利用した複数アカウントのリソース監視についての一例をご紹介します。監視の実現にあたっては、 Config アグリゲータという複数アカウントの AWS Config 設定や評価情報を集約してくれる機能を利用しています。大変便利な機能なのですが、集約した情報を利用して通知をするなど発展的な利用法に関する情報が少なく苦労したため、似たようなことを実現したい方の助けとなることを期待してこの記事を執筆をします。AWS Organizations とはh...
9ヶ月前
記事のアイキャッチ画像
非コンテナ環境でもOK!AnsibleとAnsistranoで簡単サーバーデプロイ
FORCIA Tech Blogのフィード
こんにちは、エンジニアの瑠東です。エンジニアは誰しもデプロイに困ったことが一度はあるのではないでしょうか。OSやミドルウェアのバージョンアップデート・インストールをしたいが、自動で全て行う方法はないかローカルに環境構築を行いたいが、npmコマンドなどをひとつひとつ叩かないといけない追加・修正したコードをサーバーに反映したいが、手動でsymlinkを張りなおさないといけない誰かがサーバーに一時ファイルを大量につくりディスク容量を圧迫しているため、デプロイ時に消すことはできないか今回は、そんなデプロイ時に困っていることをすべて自動化してくれる技術を紹介する記事です。 フォ...
9ヶ月前