LegalOn Technologies Engineering Blog

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

mablからPlaywrightに移行しました

こんにちは!

株式会社LegalOn TechnologiesのLegalForceキャビネ開発部SET(Software Engineer in Test)のひきもち(@rmochioo)です。

昨年8月に入社し、LegalForceキャビネのAPIテスト、自動E2Eテストなどの自動テストの導入、QA業務まで幅広く携わっております。

APIテストに関しては先日、記事出ていますのでご興味があれば見ていただければと思います。

tech.legalforce.co.jp

LegalForceキャビネではE2Eテストの自動化ツールとしてmablを利用していましたが、この度Playwrightへの移行を行いました。

現在LegalForceキャビネで運用しているE2Eテストは全てPlaywrightで実行されており、リリース可否判断QA環境でのマニュアルテストのサポートとして利用されています。

続きを読む

論文「Engineering faster double-array Aho-Corasick automata」が学術誌「Software: Practice and Experience」に採択

こんにちは。LegalOn Technologies Researchで研究員をしている神田 (@kampersanda) です。

この度、論文「Engineering faster double-array Aho-Corasick automata」がソフトウェア系の有名学術誌「Software: Practice and Experience」に採択されました。

本記事では論文の紹介をします。論文内に記述された内容については簡単な概要紹介に留め、論文には書かれていない研究の動機などをメインにお伝えします。

続きを読む

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のバックエンドの開発に導入した話をご紹介します。

続きを読む