こんにちは、SRE&プラットフォームグループの和田です。LegalOn Technologiesでは、2019年4月に「LegalForce」、2021年1月に「LegalForceキャビネ」を正式リリースして以来、毎月機能アップデートをしています。また、リリース初期段階では予期できなかった技術的な課題に対処するために、バックエンドやインフラの改善も進めています。このような取り組みの中で、DBスキーマの更新も多数発生してきました。「LegalForce」では、シーケンシャルなDBスキーマ管理を採用していましたが、運用面での懸念が顕在化していました。一方、「LegalForceキャビネ」は、NoSQLからRDBMSへの移行計画の真っ只中で、将来的なDBスキーマ管理方法のプランを練っていました。 こういった文脈において今回は「LegalForce」と「LegalForceキャビネ」製品のCI/CDに宣言的DBスキーマ管理ツール( sqldef )を導入した事例についてご紹介します。
続きを読むmablからPlaywrightに移行しました
こんにちは!
株式会社LegalOn TechnologiesのLegalForceキャビネ開発部SET(Software Engineer in Test)のひきもち(@rmochioo)です。
昨年8月に入社し、LegalForceキャビネのAPIテスト、自動E2Eテストなどの自動テストの導入、QA業務まで幅広く携わっております。
APIテストに関しては先日、記事出ていますのでご興味があれば見ていただければと思います。
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 クレートの使いどころを紹介します。
続きを読む