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

フォルシア の技術ブログ

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

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

.envでDocker開発環境をカスタマイズ!

こんにちは、エンジニアの籏野です。 以前、弊社のエンジニアが社内の Dockerfile のベストプラクティスを公開しました。 https://zenn.dev/forcia_tech/articles/20210716_docker_best_practice この頃から更に Docker を用いるための知見が増えてきており、アプリ開発時にはコンテナを利用することが当たり前になってきました。 新規アプリはもちろんのこと、昔からあるアプリに対してもコ

Next.js で React Server Components を試してみた

こんにちは、フォルシアエンジニアの籏野です。 先日Next.js 13.4が発表され、App Router が Stable 版になりました。 App Router では最新の React の機能を利用することが可能になっており、その中でも特に注目したいのが React Server Components です。 これまでの Next.js では SSR 時にフェッチしたデータを利用する場合、getServerSidePropsやgetStaticPropsを利用していました。 これらの関数で

HTTP Keep-Aliveの挙動をtcpdumpで見てみた

HTTP Keep-Aliveの挙動をtcpdumpで見てみた HTTP Keep-Aliveとは 「HTTP Keep-Alive」という言葉をご存じでしょうか。 Webアプリケーションの開発をした方なら一度は耳にしたことがあると思います。ただ、それが何かを説明するのはなかなか難しいかもしれません。 Wikipediaを見るとHTTPの持続的接続という項目で以下のように記載されています。 HTTPの持続的接続(HTTPのじぞくてきせつ

検索が爆速になるデータベース設計を公開します

こんにちは。エンジニアの谷井です。 フォルシアでは、Spookと呼んでいる技術基盤を用いて、主に旅行業界やMRO業界に対して、膨大で複雑なデータを高速検索できるアプリケーションを提供しています。 今回はその高速検索のノウハウのうち、特にDBの扱いに関連する部分について、ベテランエンジニアへのインタビューを通してそのエッセンスをまとめてみました。 一

SREチームはじめました

こんにちは。フォルシア株式会社SREチームの小孫です。 フォルシア株式会社ではこの春からSREチームを始動しました。今回は、なぜこのタイミングでSREチームを始めることになったのか、具体的にどういうことをやっていくのかを紹介します。よく耳にする大規模サービスのSREとは違う、弊社の課題をふまえたSREを目指しているので、私たちの話が少しでも参考になれば

エンジニアが選ぶ、2022年イチオシ技術記事 in FORCIA CUBE

こんにちは。新卒4年目のエンジニアの谷井です。 自社プロダクトの開発をしながら、有志の技術広報チームでリーダーをしています。 先日このFORCIA CUBEにて、2022年入社社員が選ぶ 「『フォルシアを知る』にあたって参考になったブログ」 を紹介させていただきましたが、本日はエンジニアに、 「2022年 なるほど!!と思ったFORCIA技術記事」 についてアンケートをとっ

Shinjuku.ts#2を開催しました

こんにちは。エンジニアの miyamoto です。先日開催した   Shinjuku.ts#2   についてレポートします。 昨年の11月、フォルシアではTypeScriptのLTイベント Shinjuku.ts#1 を開催し、各登壇者による興味深いLTや途切れない質問などでTypeScript好き同士の交流を深めました( 開催レポートはコチラ )。 この度3カ月ぶり2度目のShinjuku.tsを開催しましたが、前回に負けないくらい参加者のTypeScr

フォルシアのWebフレームワーク技術選定 ~JavaScript/Rhino/TomcatからTypeScript/Node.jsへ~

こんにちは。エンジニアの籏野です。 フォルシアでは Tomcat(Java)上で動く Web アプリケーションフレームワークを自社で開発・運用してきており、2001 年の創業当初から長い間フォルシアの Web アプリ開発を支えてきました。 このフレームワークもまだまだ現役で活躍していけるものではありますが、2019 年頃からは TypeScript/Node.js を利用した新しいフレームワークを構築し

OpenAPI定義を使ってGASからSlackへのリクエストを簡単に実装する

こんにちは、エンジニアの籏野です。 フォルシアでは社内のコミュニケーションツールに Slack を利用しています。 その用途は単純なチャットツールにとどまらず、監視アラートのような各種通知やリマインダー、勤怠管理など様々な目的のために利用されています。 そのような社内からの要望に応えるために、Slack API を利用した様々なアプリケーションが社内で誕生し