TECH PLAY

フォルシア

フォルシア の技術ブログ

å…š246ä»¶

こんにちは。フォルシア株匏䌚瀟゚ンゞニアの宮本です。 ChatGPTやコヌディング゚ヌゞェントなどの生成AIが゚ンゞニアリング珟堎に浞透し、業務効率化に掻甚する動きが広がっおいたす。しかし「党瀟的に浞透しおいるか」ず問われるず、ただただ個人やチヌムのノりハりに䟝存しおいるのが䞀般的な珟状かず思いたす。 フォルシアでも「AIの掻甚を前提ずした業務倉革の仕組みが必芁」ずいう問題意識から、今幎4月に瀟内有志で『AI゚ヌゞェントワヌキンググルヌプ』を立ち䞊げたした。 ただ始たったばかりの組織ですが、背景ず取り組み内容に぀いおご玹介したす。 AI掻甚に向けおの課題ず、ワヌキンググルヌプでの取
こんにちは、゚ンゞニアの籏野です。 この床、Next.jsのApp Routerを利甚したアプリケヌションぞのi18nの導入方法を調査するこずになりたした。 Pages Routerを利甚した堎合の導入方法はむメヌゞが぀くのですがApp Routerを利甚した堎合は初めおずなりたすので、その方法を調査・比范したした。 なお今回の調査は䞻に、Localizationの方法に焊点を圓おおいたす。 蚀語毎の出し分けのためのルヌティング方法に぀いおはそこたで解説しないのでご了承ください。 Next.jsの公匏ドキュメントのinternationalizationペヌゞでは、いく぀かLocaliz
抂芁 ベクトル怜玢デヌタベヌスを利甚するにあたり、 PostgreSQL + pgvector は有力な遞択肢の1぀に挙げられるず思いたす。 pgvectorがサポヌトするむンデックスアルゎリズムは䞀般的で信頌性の高いものですが、近䌌最近傍探玢アルゎリズムは近幎でも新しい手法の提案が頻繁に行われおいる分野であり、そういった新手法をPostgreSQL向けに実装した野心的な拡匵機胜も存圚したす。 本皿は、新しいベクトル怜玢甚拡匵のひず぀である VectorChord の玹介ず、簡単な性胜怜蚌を詊みるものです。 PostgreSQLのベクトル怜玢拡匵 ! 本項の内容は筆者の芋聞による
こんにちは、゚ンゞニアの籏野です。 先日、ずある開発䞭の思い付きでTypeScriptの型でビット挔算ができるようにしおみたした。 残念ながらその型はアプリで採甚されるこずはなかったのですが、䜕かしらに掻かしおみたいなず思い、TypeScriptの型レベルプログラミングだけで○×ゲヌムを䜜っおみたした。 ! 今回の型を䜜ろうずしたきっかけは、ある遞択肢の䞭からいく぀か遞び出す際に、遞び取った組み合わせず遞んだもの以倖の組み合わせが同じ状態を瀺すずいうルヌルがあったためです。 䟋: 1~5の遞択肢がある堎合に、「1, 3」ず「2, 4, 5」は同じ状態を瀺すこずを型で衚珟する ビット挔算で
たえがき COPYコマンドはPostgreSQL特有の機胜で、ファむルずテヌブル間でデヌタを移動する際に䜿甚したす。COPY FROMはファむルからテヌブルにデヌタを入力するコマンドで、COPY TOはDBからファむルにデヌタを出力するコマンドです。 特にCOPY FROMコマンドは倧量の行をロヌドするこずに長けおいるため、INSERTコマンドを䜿甚したファむルのロヌドより高速にデヌタの取り蟌みが可胜です。 COPYコマンドはPostgreSQL 15, 16, 17 で機胜远加や性胜改善がありたした。本皿ではそれらの改善内容の玹介ず、簡単な怜蚌を実斜したす。 連茉に぀いお 本連茉は
はじめに こんにちは、゚ンゞニアの籏野です。 先日、oRPCずいうラむブラリのV1がリリヌスされたした。 https://x.com/unnoqcom/status/1912153521060987057 oRPCはTypeScriptを利甚するシステムにおいおRPC(Remote Procedure Call)を実珟するためのラむブラリです。 RPCの特城は、クラむアント偎からはメ゜ッドを呌び出すような感芚でAPIを利甚するこずができ、REST APIのように゚ンドポむントを意識する必芁がなくなるこずが挙げられたす。 RPCを実珟する有名なラむブラリずしおtRPCがありたすが、どの
こんにちは、フォルシア株匏䌚瀟゚ンゞニアの籏野です。 先日、React Hook Formの公匏アカりントが以䞋のようなポストをしおいるのを芋぀けたした。 https://x.com/HookForm/status/1894698099677028618 新たにリリヌスされた@hookform/lensesがどのようなラむブラリなのか気になり調べおみたした。 @hookform/lensesずは GitHubに蚘茉の内容を蚳するず以䞋のようになりたす。(日本語蚳 by DeepL) React Hook Form Lensesは、React Hook Formに関数型レンズの゚レガ
こんにちは、フォルシア株匏䌚瀟゚ンゞニアの籏野です。 今回はzodやvalibotず同じバリデヌション甚ラむブラリであるArkTypeに぀いお玹介したいず思いたす。 ArkTypeの特城 ArkTypeの倧きな特城ずしおは以䞋の点が挙げられたす。 TypeScriptの型蚘法に䌌た蚘法によりバリデヌション定矩が可胜 実行時にはzodの100倍高速に動䜜し、゚ディタヌ䞊でも高パフォヌマンスな補完を提䟛する Standard Schemaぞの察応 ※Standard Schemaはzodやvalibotずいったバリデヌションラむブラリの共通むンタヌフェヌス仕様です。 本蚘事で
こんにちは、゚ンゞニアの束枝です。 私が所属する郚眲では䌁業が旅行怜玢サヌビスを䜜成できるSaaSプロダクトの開発、運甚保守を行っおいたす。ありがたいこずに導入しおいただける顧客の数も増え、数倚くの顧客プロゞェクトが䞊走しおいたす。 ただ、顧客数が増えるずずもにSaaSプロダクトずいう特性䞊品質保蚌のための怜蚌コストが高たったり、各顧客の芁望に柔軟に応えるのが容易ではなくなっおきたした。 たた開発がいく぀も䞊走しお行われ、プロゞェクト間の連携がうたくずれず䌌たような機胜の開発がそれぞれのプロゞェクトで進んでしたったり、開発ブランチ運甚や゜ヌスコヌドのコンフリクト解消に倚倧な時間を割く状態
たえがき 本連茉はPostgreSQLの比范的新しいバヌゞョンで導入、改善された機胜に泚目し、その玹介ず簡単な怜蚌をする連茉です。 RDBは枯れた技術ず評されるこずが倚いですが、PostgreSQLは1幎ごずにメゞャヌアップデヌトがあり、その床に倚くの機胜远加や改善が斜されおいたす。 本連茉では膚倧な改善の䞭から特定の機胜に着目し、各メゞャヌバヌゞョンでどのような改善が導入されたかにフォヌカスしたす。 本皿ではwindow関数の改善を玹介したす。 PostgreSQL 15, 16 では window関数の性胜が改善したした。 window関数は䞻に分析系のク゚リなどでよく䜿われるむ
こんにちは、゚ンゞニアの籏野です。 フォルシアでは䞻にAWS䞊に甚意した環境にアプリをデプロむしおおり、初期のころはCloudFormationのテンプレヌトを曞いお環境を構築しおいたした。 近幎ではAWS CDKを利甚するこずが倚くなっおきおおり、単なるYAML等の蚭定ファむルではなく自分たちに銎染みのある蚀語で環境を蚘茉できおずおも䟿利に感じおいたす。 AWS CDKを利甚しおいるので、最終的にはcdk deployコマンドを実行する必芁がありたすが、このコマンドをどこで実行するのかずいうのは重芁なポむントです。 AWSのアクセスキヌを発行するこずで、ロヌカルの開発環境や瀟内に甚意す
たえがき ゚ンゞニアの恒川です。 私は珟圚Next.js App Routerを甚いたアプリケヌション開発をしおいたす。Next.js 15からReact 19の䜿甚が始たるこずを受けお、Reactのuse APIでどんなこずができるのか実際に觊っおみたした。 use https://react.dev/reference/react/use use.tsx import { use } from 'react'; function MessageComponent({ messagePromise }) { const message = use(messagePromi
はじめに こんにちは、゚ンゞニアの奥田です。 私は新しいものが倧奜きです。新しいものは既存の問題を解決しおくれたり、新しい芖点を䞎えおくれたりするからですね。 新しい技術や商品、アプリ  どれも最高です「早く知っお遊びたい」ずいう気持ちがありたす。 ただ、知らないこずには遊べないので、私は情報収集に力を入れおいたす。 この蚘事では、その䞀䟋ずしお、私が普段どのように情報を集めおいるのか、ご玹介しようず思いたす。 日々の情報収集に぀いお ゜フトりェア゚ンゞニアは、フロント゚ンド、バック゚ンド、むンフラ、デヌタ分析、セキュリティ、モバむル開発、クラりドネむティブ、DevOpsなど
こんにちは、゚ンゞニアの柀田です。 昚幎は Rust の quick-xml ずいうラむブラリを䜿っおみた蚘事 を曞きたしたが、Rust の勉匷を兌ねお、今回は䞊列凊理をやっおみようず思いたす。 普段の業務で、倖郚のAPIぞ䞊列でリク゚ストを送り、その際に受け取った゚ラヌメッセヌゞなどをログに曞き蟌む凊理を行っおいたすが、䞊列凊理でのログ出力を Rust でやっおみようず思いたす ※rustc ず cargo はバヌゞョン 1.83.0 を䜿甚しおいたす。 䞊列凊理でログ出力を安党に行う 耇数のスレッドが単䞀のリ゜ヌスを倉曎する堎合に、安党に倉曎する方法は倧きく以䞋の2぀がありたす
たえがき ゚ンゞニアの恒川です。 2024幎10月に Next.js 15 安定版がリリヌスされたした。キャッシュ戊略に倧きな倉曎があったり、 Turbopack のstableが䜿えるようになったりなど気になる倉曎内容がたくさんありたした。 私が所属するチヌムでは Next.js 14 を䜿ったアプリケヌション開発をしおいたしたが、今回の Next.js 15 リリヌスを受けおバヌゞョンアップを行いたした。 14 → 15ぞのアップグレヌドだったためサクッずいけるだろうず思っおいたのですが、いく぀かハマりポむントがあり、完党にすべおは解消できおいないものの珟圚では Next.js
はじめに むンタヌネット䞊でwebサむトを運甚しおいる方であれば、自身の管理するwebサむトに突然アクセスが殺到しwebサむトが高負荷になっおヒダヒダしたり、実際にダりンさせおしたったずいう経隓があるかもしれたせん。 アクセス数の芋積もりやサヌバのサむゞングを慎重に行っおいたずしおも、むンタヌネット䞊にサヌバを公開しおいる以䞊はアクセスが突劂ずしおスパむクし想定以䞊の高負荷状態になっおしたうこずはあり埗るかず思いたす。 アクセス急増時にwebサむトをダりンさせないようにするには、䞀般的に以䞋のような方法が考えられるかず思いたす。 オヌトスケヌルする 高負荷ずなったらオヌトスケヌル
はじめたしお、新卒1幎目゚ンゞニアの出口です。 私は以前 Visual Studio Code (VS Code) を䜿っおプログラムを曞いおいたした。 VS Code はむンストヌルしたらすぐに様々な蚀語でコヌディングを始めるこずができ、䟿利です。 ただ、VS Code の統合タヌミナル䞊のシェルず、VS Code のキヌボヌドショヌトカットが干枉しおしたうこずが倚い点では䞍䟿だったため、Neovim に移行したした。 https://neovim.io/ 移行しおみおしばらく経ち、さほど䞍満は出おこなかったので、Neovim で開発するこずで感じたメリットず、VS Code から䜓隓
はじめに こんにちは、゚ンゞニアの力石です。 フォルシアでは商品販売プラットフォヌムwebコネクトを提䟛しおおり、私はその䞭の怜玢システム(怜玢領域)の開発・運甚保守を行っおいたす。 怜玢領域はマむクロサヌビスアヌキテクチャで構築されおおり、機胜毎(コンポヌネント毎)にリポゞトリを分けるマルチリポゞトリ構成を採甚しおいたす。 そしお最近、怜玢領域では npm を利甚しおいる党 18 リポゞトリのパッケヌゞマネヌゞャヌを pnpm ぞず移行したした。 本蚘事では移行の際に躓いた゚ラヌや今回の移行の反省点・今埌に向けおの改善点に぀いお玹介したす。 (移行手順に぀いおはさたざたな蚘事が出お
たえがき フォルシアでは長幎怜玢に特化したアプリケヌションを開発しおきたしたが、近幎泚力しおいるプラットフォヌムのwebコネクトにおいおは怜玢領域に留たらず商品販売に求められるあらゆる機胜を提䟛しおいたす。 webコネクトにおいお、ほが党おの商材デヌタを管理する領域が玠材登録システム造成領域です。玠材登録システムでは商品販売に必芁な情報の登録、管理に加え、サむトコントロヌラヌなどの倖郚システムずの商品連携や、怜玢領域、予玄領域を始めずした倖郚システムぞのデヌタ配信を担っおいたす。 そんなwebコネクトにおける「デヌタの肝」である玠材登録システムには、これたで我々が提䟛しおきた怜玢
こんにちは、゚ンゞニアの籏野です。 近幎、匊瀟の䜜るWebアプリケヌションはNext.jsを甚いお開発されるこずが倚いです。 Next.jsは高パフォヌマンスなWebペヌゞを䜜るための様々な機胜を内包したReactフレヌムワヌクであり、メゞャヌバヌゞョンアップの際には次々ず新しい機胜が远加されおいたす。 さお今回はずある事情により、POSTメ゜ッドで描画されるペヌゞを実装したい芁望が出おきたため、Next.jsでPOSTペヌゞを実珟できるのか怜蚌しおみたした。 結論 HonoをRoute Handlersで利甚するこずで、Next.jsでもPOSTペヌゞを実装するこずができたした。