Wagby R9 リリース! 特徴は「世代管理」機能

本日、無事に Wagby R9 を公開することができました。開発チームの皆さん、連日の集中対応、おつかれさまでした!

興味のある方は、こちらからダウンロードください。トライアルキットのライセンスが同梱されているので、すぐにお試しいただけます。

wagby.com

さまざまな改善がなされていますが、ここでは目玉となる新機能「世代管理」を紹介します。業務系エンジニアが欲しくなること、疑いなし、です。

世代管理とは

あるデータの発生(新規登録)から、あらゆる更新についてのデータを保持していきます。削除についても記録します。
これによって、過去はどういうデータだったのか、ということを確認できるようになります。別テーブルへの自動データ保存かつ任意の時点の閲覧機能と考えていただけるとよいです。

Wagbyならではですが、設定はとても簡単です。「世代管理を有効にする」というチェックをつけるだけです。これでビルドすると、このモデルは世代管理機能が使えます。

f:id:ynie:20210129092652j:plain
世代管理を有効にする設定

世代管理が適用されたデータは、詳細画面の下に、世代一覧が表示されるようになります。

f:id:ynie:20210129092759j:plain
世代一覧が表示される

世代一覧の詳細画面で、過去データの内容を確認することができます。

f:id:ynie:20210129092904j:plain
過去データの内容を確認する

難易度よりは、工数がかかるのが問題

仕組み的には難しいものではありません。データの Create, Update, Delete のタイミングで現時点のデータを「世代管理専用テーブル」に登録すればよいでしょう。このテーブルは閲覧専用で、利用者は登録や更新を行えないように制御します。

しかしこれを通常の開発要件に取り込むのは面倒なのです。例えば...

  • データ項目の変更が生じた場合、常に「世代管理専用テーブル」も変更するといった、同期をとりつづける作業が発生する。
  • 画面レイアウトの変更も同じ。世代データの表示レイアウトも必ず修正しなければならない。

というように、開発工数が単純に膨らみます。そのため、利用者ニーズとしては欲しいものですが、開発工数の視点からは削られてしまうことが多い機能でした。

しかし Wagby のアプローチはとても簡単なので、工数が膨れるということがありません。実装するとややこしい機能こそ、簡単に設定できるようにする、という Wagby の方針にぴったりです。

今後の計画

カードをめくるように、最初の世代から「次へ」ボタンを押すことで、最新へと順に辿っていくことができます。そのとき、一つ前のデータと比較して「どこが変わったか」を強調表示できるようになると、なお良いですよね。今後はそのような機能も追加していきたいと考えています。乞うご期待ください!