Micronautチームがデータアクセスツール「Predator」を発表!
Micronautチームは、2019/07/18に行われた発表会「Something Big Is Coming」で、 プリコンピュートなデータアクセスツール「Predator」を発表しました!
まとめを簡略化すると「AoTでなんやかんやする軽量高速なGORM」!
英語読める人は公式読みましょう→ 公式
データアクセスツールの歴史、2004年にRuby on RailsがActiveRecordを登場させ生産性の向上に革命をもたらしました。
2007年(いいや2006年だけど)、Grailsチーム(今のMicronautチーム)は、JVMにActiveRecordのようなAPIをもつ仕組みGORMをGrailsのデータ層として開発。 GORMはHibernate上に動的言語であるGroovyを活用することで柔軟なfinderメソッドを実装しJVMユーザの生産性を向上させた。
ただ、GORMはGroovyに依存します。そこで、2011年Javaのみで使えるように、インターフェイスに定義する事で、finderメソッドをランタイム時に自動実装されるSpring Dataが登場しました。
そして、Micronautチーム(昔も今もGrailsチーム)が、2019年、MicronautのAoTコンパイルAPIを活用してメタモデルをコンパイラに変換して、コンパイル時に、findByTitleのようなfinderメソッドをSQLやJPA-QLにし、さらにはリフレクションフリーなデータアクセスツール「Predator」を爆誕させました!
※雑な文章で申し訳ない。;-)
大まかにまとめると。
Predator==Precomputed Data Repositories※追記参照- GORMやSpring Dataのようなプロダクティビティ
- 基本的にはGORMのフォークがベースらしい。
- マイクロサービスとサーバレス時代に合わせたデータアクセスツール
- データアクセスとして劇的に向上されたランタイムとメモリーパフォーマンス ベンチマーク用コード
- GraalVMとの親和性
- コンパイルタイムチェック: プロパティ名や型を認識してエラーを返す
- 先ずはJDBCとJPAを開発
- NoSQLとかは無いの?→ 計画している。
- 基本的にはGORMのフォークがベースなので"GORM for MongoDBæなどのコードが再利用できる
- ハッシュタグに困っている笑。
#predator
ではちょっとね。
以下、公式情報。
- 公式ブログの記事: https://objectcomputing.com/news/2019/07/18/unleashing-predator-precomputed-data-repositories
- ドキュメント: https://micronaut-projects.github.io/micronaut-data/snapshot/guide/
- リポジトリ: https://github.com/micronaut-projects/micronaut-data
- Predator JDBC Java Example: https://github.com/micronaut-projects/micronaut-data/tree/master/examples/example-jdbc
追記! 2019/07/26 Micronaut Predatorはコミュニティからの名称に対する不安から、単純な Micronaut Data へと名称変更!