はじめに
テキストベースの比較ツールは世の中に多く出回ってるんだけど、テーブルや配列などの構造データを基準にした比較ツールは見当たらなかった。
需要が少ないのか、探し方が悪いのかはわからないけど、自分が使いたいから作ったってだけの話。
発表用にまとめたので、こっちを見たほうがいいかも
ユニークなレコードとは
テーブルの主キーや複合ユニークキーを持っている一意なデータのことです。
例えばdateとnameで一意な組み合わせをもつ構造データのことを指します。
{
date: '2023-12-01',
name: 'sales',
value: 100,
}
業務的な使い所
業務で複雑な計算処理をするWebアプリの開発担当をしています。
入出力データ共に1000以上のデータを含んだ配列を扱っており、テーブルのデータやユーザーの入力値など変数が多く、テストコードのチェックで100%の保証をできるとは思っていません。
実際の生データを使って、コード修正前後に意図しないデータ変更がないか確認するのに使っています。
他には、BigQueryから出力したCSVデータを使った分析をしていて、最新の出力データとの比較なんかにも使えます。
テキストベースの差分ツールを使ってみる
VSCodeでGit差分を参考に出してみる。
単発レコード
1レコードの1項目が変わるぐらいならこれで問題ない。
複数レコード
単発レコードの分 + レコードの並びが変わると、削除と追加の両方が表示される。
ユニークレコードで差分を出してみる
2023-12-01 sales データはユニークであるため、データ順も関係なく、新旧で比較が可能となる。
npmパッケージで公開
まずパッケージを作ってnpmで公開してみることにした。Web版とパッケージ版の両方を公開することに意義があると考える。
というのも、誰が運営しているかわからないWebサイトに業務データを貼り付けるのに抵抗があって、例えば画像や動画ファイルの変換サイトとかあるけども、極力使いたくないタイプなのだ。
世の中にはChat GPTに社内情報を貼り付けたりする人がいるわけだけど、無料で使えるリソースの対価は何かしら支払っていると考えておいた方がいい。
Webサイトにデータを貼り付ける = バックエンドを通せる ので、気になる人はパッケージ版を使うと安心かもしれない。
とはいえ、公開パッケージも無料で使えるわけで、悪意のある人間が中にはいるかもしれない。そう考えると、今回作ったパッケージも第三者には怪しい野良ツールなんだと思う。
VercelでWeb版を公開
自分で作ったnpmパッケージをinstallして、Next.jsでWebインターフェースを作成。
最近はVercelでお手軽に公開できるのがかなり便利ですね。
アウトプット
READMEに使い方など書いてるので、参考までに。
パッケージ版
Web版
終わりに
というわけで、業務外にチマチマ作ってたツールの紹介でした。
自分が業務で作りたいツールを業務外で作れば、自分の成果物として外部にアウトプットできるのがポイントです。
エンジニアあるあるですが、自分が楽するためのツールを作るのは楽しいんですよね。
とはいえ体を休めるのも仕事なので、程々にしましょう。