フォルシア
フォロワー 2人
わたしたちは「フェアであることに挑戦し続ける」をミッションに掲げ、世の中の人々を「探す」ストレスから解放し、自らの選択、判断そして行動が結果に反映される「フェアな世界」を広げていくことを目指しています。この理念のもと、膨大・複雑なデータから必要な情報を的確に探し出す検索テクノロジーを基にしたシステム開発・サービス提供並びに、コンサルティングを行っています。

フォルシア の技術ブログ

調査時大活躍!テキスト処理シェルワンライナー

こんにちは、エンジニアの水野です。 普段我々エンジニアが用いるOSには様々な種類があります。 フォルシアでは主に、Windows標準のLinux環境であるWSLや、VirtualBoxのUbuntuを用いて開発しています。 Linuxの操作には様々なコマンドを駆使しますが、頻繁に使うもの以外は忘れてしまったり、応用方法が狭まってしまうのもまた事実。 フォルシアの現役エンジニア社員はどの

GitLab CIでMR毎にプレビュー環境を作ろう!

概要 フォルシアではアプリのリポジトリ管理のために、社内に GitLab のインスタンスを立てて運用しており、開発は GitLab の MR(Merge Request) の作成 → チームメンバーからのレビューというサイクルで行われています。 レビューの際、特に見た目の変更を伴う修正が入る場合には自分のローカル開発環境に開発ブランチを持ってきてアプリを立ち上げる必要が出てきます。

フォルシア社員に聞いたおすすめのVSCode拡張10選

こんにちは、エンジニアの松川です。 普段我々エンジニアがコードを書く際に欠かせないのがコードエディタの存在。 そのなかでも Microsoft が提供する VSCode は現在最も人気のあるコードエディタの一つです。 VSCode の強みは何といってもその拡張機能の豊富さです。標準機能では物足りなくなったときも 54000 [1] もの拡張機能が強力にコーディングをサポートしてくれ

Rustのquick-xmlを使ってXMLをTSVに変換してみた

こんにちは、エンジニアの澤田です。 最近、社内でRustで書かれたプログラムを見かけることが増え、社内ライブラリにRustが導入されたりなど、社内でRustを使う気運が高まっているのを感じ、自分もRustを勉強してプログラムを書いてみよう!と思いました。 自分の業務に近いところでRustを使うのによさそうなテーマを考えたとき、前回書いた記事「 Haskellで階層化され

リクエストパラメーターをzodでバリデーションするときのTips

こんにちは、エンジニアの籏野です。 近年のフォルシアでの API 開発では Web フレームワークとしてExpressを利用することが多くあります。 また、開発言語には TypeScript を採用しており、型に守られた安全な開発を目指しています。 型安全な API 開発を進める上では、リクエストされたパラメーターをバリデーションし適切な型付けを担保することが必要になってきます。

良いプロダクト開発をするための取り組みを紹介します

はじめに・ユニット紹介 児山 祥 2023年新卒入社 2023年8月素材登録プロダクトにJOIN 関連記事:https://www.forcia.com/blog/002730.html はじめまして。エンジニアの児山と申します。 新卒でフォルシアの旅行プラットフォーム部旅行技術3-2ユニットに配属され、三ヶ月ほど経ちました。 本ユニットでは、「良いプロダクト開発」を実践するために様々な取り組みを行っていますが、

TypeScript プロジェクトのコンパイル時間を改善してみた話

TypeScript プロジェクトのコンパイルのボトルネックを調査・解消してみた話 はじめに こんにちは。エンジニアの辻󠄀です。 私は社内のとある TypeScript プロジェクトで開発業務を行っていました。 ある日、新たに関数の実装を追加しようとしたその時、tsserver(TypeScript の language server)による補完候補がなかなか表示されないことに気づいたのです。 どうやら、コンパイ

PostgreSQLでユーザー定義関数をつくってみよう

はじめに フォルシアの高速検索を支える重要な技術のひとつである PostgreSQL には標準でも様々な関数が用意されていますが、独自にユーザ定義の関数をC言語で用意することも可能です。 C言語は処理が高速であることがメリットでありますが、一方で往々にしてコードが難解になりがちです。また、私も含め若いエンジニアはそもそもC言語にほとんど触ったことがないこ

JotaiのDevtoolsを試してみよう!

はじめに こんにちは、エンジニアの籏野です。 突然ですが、皆さんは Web アプリを作る際にどのような方法で状態管理を行っているでしょうか? 私は長く Redux を使っていましたが、よりシンプルに状態管理を行うことができる Jotai というライブラリを最近使い始めました。 Jotai への入門については様々な記事がありますので割愛して、本記事では Jotai の Devtools を使っ

自社サービスの継続的開発を通じて得た教訓

はじめに こんにちは、エンジニアの田中です。 フォルシアでは SaaS のサービス"webコネクト"を旅行会社様向けに展開しており、 私はその中の"検索機能"の開発・運用に従事しています。 今回、webコネクト検索機能の開発において実践しているブランチ運用とそこから得られた知見について紹介します。 webコネクトについて webコネクト® は、旅行商品販売機能を SaaS 型サ

PostgreSQL 14で追加されたmultirange型(多重範囲型)を試してみた

エンジニアの吉田です。 今回はPostgreSQL(以降postgresと表記) 14から新しく追加されたmultirange型について紹介し、簡単な性能検証をしようと思います。 multirange型とは 従来よりpostgresではrange型(範囲型)と呼ばれるデータ型が用意されていました。これは文字通り範囲を保持するためのデータ型です。例えば整数であれば以下のように宣言できます。 select int4range(1,10); int4rang

企業の技術ブログを「みんなで」継続するための戦略

フォルシアの技術広報チームではこれまで、自社エンジニアが社内外へ発信しやすい環境を作るため、試行錯誤を繰り返してきました。 今回はその中でも、「企業の技術ブログを無理なく継続的に続けていくための仕組み」 について、現時点で私たちがベストプラクティスだと感じている方法を記事にしました。 「会社で技術ブログを運営しているが、なかなか執筆し

FORCIAの監視についてご紹介します

こんにちは。旅行プラットフォーム部エンジニアの高嶋です。 突然ですが、皆さんアプリの品質や安定運用を担保するためには何が必要だと思われますか?テストや定期的なアップデート、保守性の高いコードなど様々ありますが、それらの他にも重要なものがあります。 そう、監視ですね。アプリも人間と同じで定期的な健康診断が必要です。また、FORCIA で提供して

Rustを中心に世界は回る ~Rustで実装したモジュールを異なる言語から呼び出してみた~

こんにちは、エンジニアの籏野です。 フォルシアでは数年前からRustに関連したイベント(Shinjuku.rs)を開催したり、本の執筆を行ったりとRustに関する活動が行われてきました。 さらにここ最近はRustをよりコアな部分に活用していけないかという議論も活発に行われており、Rustは今後の開発でより重要な役割を担っていくのではないかと感じています。 私自身はこれまでRus

オラ、目検したくねっぞ withVisualRegressionTest

はじめに こんにちは、旅行 PF 部エンジニアの奥田です。 コードの変更を変更するとデザインが変わることは避けられません。その都度変更を確認するのは開発の一部ですよね。 影響範囲が広い変更を行った場合、確認すべきページ・箇所が増えてしまい、結果として時間や手間が増大し、それがストレスになります。 特に、大規模な変更を含む開発用ブランチをメイン