LegalOn Technologies Engineering Blog

LegalOn Technologies 開発チームによるブログです。

Firebase 使用上の注意(Functions 編)

初めに

こんにちは、株式会社 LegalOn Technologies の LegalForceキャビネ開発部でテックリードを務めている横道と申します。

私たちのプロダクト、「LegalForceキャビネ(以下キャビネ)」では Google Firebase を使用しています。

この Google Firebase を、実際のプロダクト開発と運用で使用した際に生じた課題と対応ついて、「Firebase 使用上の注意 Functions 編」「同 Firestore 編」の 2 つに分けてお送りします。 今回は Functions 編として、Firebase Functions を使ったプロダクトが、規模の増大と機能が増加していった際に、どのような課題が生じ、そしてどのような対応を行ったかを共有します。

続きを読む

イベント駆動型アーキテクチャで実現する Query Auto Completion 更新

こんにちは、株式会社LegalOn Technologies の検索・推薦チームでエンジニアをしている、佐藤です。

弊社では LegalForce という製品で、お客様がアップロードした契約書を条文単位で検索ができる、条文検索機能を提供しています。 条文検索では既に契約書本文の Query Auto Completion (クエリ自動補完, 以下 QAC)が提供されており (*1)、今回は契約書のタイトルやファイル名などで絞り込み検索を行う際に利用される QAC の開発を行いました。

続きを読む

APIテストで質とスピードの両立を実現 - LegalForceキャビネの事例

こんにちは、株式会社LegalOn TechnologiesのLegalForceキャビネ開発部でQAリードを務めている島根(@shimashima35)と申します。

QAというとマニュアルテストが中心かと思われるかもしれません。確かにマニュアルテストはQAの業務の一部ではありますが、「質とスピードの両立」つまりプロダクト品質の高さとリリーススピードの両立を目指すため自動テストの導入もおこなっています。

今回はLegalForceキャビネのバックエンドに対するAPIテストを実装した話をご紹介します。

続きを読む

Rustで標準ライブラリのHashMapの代わりにhashbrownを使う

こんにちは。株式会社LegalOn Technologies でエンジニアをしている赤部です。

自然言語処理をしていると、単語の出現回数を数えたり、単語と何らかのデータを紐付けたりすることが頻繁に必要になります。これらのことを簡単に行える、最も一般的でよく知られたデータ構造はハッシュマップではないでしょうか?

プログラミング言語 Rust では、標準ライブラリの std::collections::HashMap を用いればハッシュマップを簡単に導入できます。しかし、場合によっては標準ライブラリの HashMap ではなく hashbrown クレートを利用したほうが、シンプルに効率的なコードを実装できるかもしれません。

この記事では、まず hashbrown クレートを紹介し、コード例とともに hashbrown クレートの使いどころを紹介します。

続きを読む

GitHub Codespacesの導入

こんにちは、LegalOn TechnologiesのLegalForce開発部のSRE 伊藤です。

私たちのチームでは、LegalForceの安定稼働と同様に、開発者がより楽に開発・運用できるような基盤を提供することをミッションにさまざまな改善活動を行なっています。

今回はGitHub CodespacesをLegalForceのバックエンドの開発に導入した話をご紹介します。

続きを読む

マルチテナンシーSaaSを支える Elasticsearch Index 設計

こんにちは。株式会社 LegalOn Technologies でエンジニアをしております、勝田(@WinField95)です。この記事は、情報検索・検索技術 Advent Calendar 2022 の 22日目の記事として執筆されました。LegalForce キャビネについて紹介すると共に、社内で運用されている検索システムを作り直したきっかけとなった課題と改善点についてお話します。

続きを読む

外部サービス利用規約の読み方

※ 本稿で紹介している内容はあくまで参考情報です。実際の場面では、自社の法務担当者や弁護士等の専門家に相談ください。

LegalForceの開発本部長(肩書が固いですが、プロダクトマネジャーをやっています)川戸( @kawato_takashi )です。

今回は外部サービスを利用する場合の特にビジネス観点からの留意点を解説します。外部サービスとは、ここでは一般にオープンソースで提供されているライブラリ等ではなく、商用で提供されているサービスを想定しています。OSSの場合にはGNU-GPL, MIT Licenseなど一般的なライセンスを中心に標準化が進んでいるのに対し、商用ソフトウェアの利用規約は会社やサービスごとにスタンスも文言も様々です。

続きを読む