Submit Search
Upload
SQLマッピングフレームワーク「Kobati」の実戦投入
•
Download as PPTX, PDF
•
0 likes
•
91 views
Kazuki Minamitani
Follow
2017/12/26 第107回Smalltalk勉強会
Read less
Read more
Report
Share
Report
Share
1 of 13
Download now
Recommended
SQLドリルの話(仮)
SQLドリルの話(仮)
Yuuki Tan-nai
JavaのLambdaの裏事情
JavaのLambdaの裏事情
なおき きしだ
ぷろぐぱ ~プログラミング言語のパフォーマンスを考える~ 2013/12/7 福岡 でのプレゼン資料
コードに潜むC++の未定義動作達
コードに潜むC++の未定義動作達
Azaika At
CombNaf 3 - Final で発表したスライドです。 触りだけです。
Javaはどれだけ速いのか
Javaはどれだけ速いのか
YujiSoftware
JJUGナイトセミナー「おうちで!ビール片手にLT大会!」で発表したLTです。 #jjug
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
都元ダイスケ Miyamoto
Jsf アプリ作ったった
Jsf アプリ作ったった
Oda Shinsuke
2014/08/23 関西WildFly 8(旧JBoss AS)勉強会 http://connpass.com/event/7529/
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編
Kazuya Numata
アクセス数の多いサイトをRailsで運用する場合にやっておきたい設定
Mongo dbを知ろう devlove関西
Mongo dbを知ろう devlove関西
Ryuji Tamagawa
2014/10/20 DevLove関西 「MongoDBを知ろう」発表スライドです。
Recommended
SQLドリルの話(仮)
SQLドリルの話(仮)
Yuuki Tan-nai
JavaのLambdaの裏事情
JavaのLambdaの裏事情
なおき きしだ
ぷろぐぱ ~プログラミング言語のパフォーマンスを考える~ 2013/12/7 福岡 でのプレゼン資料
コードに潜むC++の未定義動作達
コードに潜むC++の未定義動作達
Azaika At
CombNaf 3 - Final で発表したスライドです。 触りだけです。
Javaはどれだけ速いのか
Javaはどれだけ速いのか
YujiSoftware
JJUGナイトセミナー「おうちで!ビール片手にLT大会!」で発表したLTです。 #jjug
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
都元ダイスケ Miyamoto
Jsf アプリ作ったった
Jsf アプリ作ったった
Oda Shinsuke
2014/08/23 関西WildFly 8(旧JBoss AS)勉強会 http://connpass.com/event/7529/
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編
Kazuya Numata
アクセス数の多いサイトをRailsで運用する場合にやっておきたい設定
Mongo dbを知ろう devlove関西
Mongo dbを知ろう devlove関西
Ryuji Tamagawa
2014/10/20 DevLove関西 「MongoDBを知ろう」発表スライドです。
NoSQLに関するまとめ
NoSQLに関するまとめ
Gosuke Miyashita
DDDをScrumで廻す あるいは ScrumをDDDで廻す
DDDをScrumで廻す あるいは ScrumをDDDで廻す
Kiro Harada
QConTokyo 2013 で講演させていただいた DDDとScrumのお話の資料です。 簡単なライブモデリングもありましたが、モデリングのネタは、ワークショップのお楽しみということで、お願いします。
Doma2 with Kotlin
Doma2 with Kotlin
yy yank
2016/07/09 Doma勉強会 in 東京のLT資料です
MySQLトラブル解析入門
MySQLトラブル解析入門
Mikiya Okuno
第5回中国地方DB勉強会で発表したスライドです。MySQLでよく起きる問題について、傾向と対策をまとめています。
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
ドメイン駆動設計で、モデリングをどうやっているか、それをどう実装に結びつけているかの事例紹介。 RDRA+ICONXをベースに、より機敏なやり方への挑戦。実践的なオブジェクト指向設計。
mruby for embedded systems
mruby for embedded systems
masayoshi takahashi
TokyuRuby会議05での発表資料です。
Amazon DynamoDB 初心者が理解した事
Amazon DynamoDB 初心者が理解した事
Hirokazu Tokuno
2014-03-14 (金) JAWS DAYS 2014 前夜祭!! JAWS-UG 奥の細道 in 仙台で発表
ハゲた天使が恋のキューピッドになった物語
ハゲた天使が恋のキューピッドになった物語
Eisuke Shimizu
2016/05/30のMyNAでのLT資料。 LTデビューなので、まじめに取り組んで作ったスライド。
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
fisuda
FIWARE Orion Context Broker の日本語の解説資料です。Orion Context Broker version 4.0.0 に対応しています。
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
You&I
今年2月に1.1→2.0に更新されたNIST CSFの変更内容について整理したいと思います。
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
yamamotominami
「ASUENE」は、複雑だったCO2排出量算出業務をカンタンにサポートする、CO2排出量見える化・削減・報告クラウドサービスです。温室効果ガス・CO2排出量の算出・可視化、削減・カーボンオフセット、Scope1-3* のサプライチェーン排出量の報告・情報開示を支援します。
Grokking Simplicity探訪
Grokking Simplicity探訪
Yoshitaka Kawashima
2024/6/5のアーキ部で話したスライドです。 Stratified Designの目的を中心に、そのメリットを考えてみます。
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
You&I
Tree Decades of Agileというブログ記事が面白そうなので、これを読んでみたいと思います。 http://www.managecomplexity.dk/blog/2024/03/12/three-decades-of-agile/
受発注バスターズ説明資料 株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料 株式会社batton Saleshub掲載用.pdf
ooishi1
受発注バスターズ説明資料
More Related Content
Similar to SQLマッピングフレームワーク「Kobati」の実戦投入
NoSQLに関するまとめ
NoSQLに関するまとめ
Gosuke Miyashita
DDDをScrumで廻す あるいは ScrumをDDDで廻す
DDDをScrumで廻す あるいは ScrumをDDDで廻す
Kiro Harada
QConTokyo 2013 で講演させていただいた DDDとScrumのお話の資料です。 簡単なライブモデリングもありましたが、モデリングのネタは、ワークショップのお楽しみということで、お願いします。
Doma2 with Kotlin
Doma2 with Kotlin
yy yank
2016/07/09 Doma勉強会 in 東京のLT資料です
MySQLトラブル解析入門
MySQLトラブル解析入門
Mikiya Okuno
第5回中国地方DB勉強会で発表したスライドです。MySQLでよく起きる問題について、傾向と対策をまとめています。
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
ドメイン駆動設計で、モデリングをどうやっているか、それをどう実装に結びつけているかの事例紹介。 RDRA+ICONXをベースに、より機敏なやり方への挑戦。実践的なオブジェクト指向設計。
mruby for embedded systems
mruby for embedded systems
masayoshi takahashi
TokyuRuby会議05での発表資料です。
Amazon DynamoDB 初心者が理解した事
Amazon DynamoDB 初心者が理解した事
Hirokazu Tokuno
2014-03-14 (金) JAWS DAYS 2014 前夜祭!! JAWS-UG 奥の細道 in 仙台で発表
ハゲた天使が恋のキューピッドになった物語
ハゲた天使が恋のキューピッドになった物語
Eisuke Shimizu
2016/05/30のMyNAでのLT資料。 LTデビューなので、まじめに取り組んで作ったスライド。
Similar to SQLマッピングフレームワーク「Kobati」の実戦投入
(8)
NoSQLに関するまとめ
NoSQLに関するまとめ
DDDをScrumで廻す あるいは ScrumをDDDで廻す
DDDをScrumで廻す あるいは ScrumをDDDで廻す
Doma2 with Kotlin
Doma2 with Kotlin
MySQLトラブル解析入門
MySQLトラブル解析入門
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
mruby for embedded systems
mruby for embedded systems
Amazon DynamoDB 初心者が理解した事
Amazon DynamoDB 初心者が理解した事
ハゲた天使が恋のキューピッドになった物語
ハゲた天使が恋のキューピッドになった物語
Recently uploaded
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
fisuda
FIWARE Orion Context Broker の日本語の解説資料です。Orion Context Broker version 4.0.0 に対応しています。
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
You&I
今年2月に1.1→2.0に更新されたNIST CSFの変更内容について整理したいと思います。
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
yamamotominami
「ASUENE」は、複雑だったCO2排出量算出業務をカンタンにサポートする、CO2排出量見える化・削減・報告クラウドサービスです。温室効果ガス・CO2排出量の算出・可視化、削減・カーボンオフセット、Scope1-3* のサプライチェーン排出量の報告・情報開示を支援します。
Grokking Simplicity探訪
Grokking Simplicity探訪
Yoshitaka Kawashima
2024/6/5のアーキ部で話したスライドです。 Stratified Designの目的を中心に、そのメリットを考えてみます。
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
You&I
Tree Decades of Agileというブログ記事が面白そうなので、これを読んでみたいと思います。 http://www.managecomplexity.dk/blog/2024/03/12/three-decades-of-agile/
受発注バスターズ説明資料 株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料 株式会社batton Saleshub掲載用.pdf
ooishi1
受発注バスターズ説明資料
Recently uploaded
(6)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
Grokking Simplicity探訪
Grokking Simplicity探訪
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
受発注バスターズ説明資料 株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料 株式会社batton Saleshub掲載用.pdf
SQLマッピングフレームワーク「Kobati」の実戦投入
1.
SQLマッピングフレームワーク 「Kobati」の実戦投入 2017/12/26 南谷千城
2.
投入先 実戦で使い始めて10ヶ月程経過
3.
SmalltalkでRDB操作 • O/Rマッパーは「Glorp」一択 – 20年 •
使っていて涙目。置き換える –記述が面倒 –スキーマの更新に追随するのが大変 –謎エラー –キャッシュの使い方がイマイチ
4.
記述が面倒 スキーマの更新に追随するのが大変 • 1つのテーブル定義(DDL)を、3メソッドに分解、 翻訳して定義(Smalltalk)する • Smalltalk側のクラス定義が先、RDBが後 •
外部キー参照やJOINが扱いにくい • メタプログラミングで実体が把握し辛い – 柔軟性もあまり良くない
5.
謎エラー • 時折、なんでもないクエリでエラー • 発生場所もランダムっぽい ということで、なにかと非難を浴びせたが ライブラリ側でマルチスレッド対応していない という、Smalltalkあるある 使い方の問題 濡れ衣
6.
キャッシュの使い方がイマイチ ① id: 1 value:
abc id: 2 value: def id: 1 value: abc id: 2 value: xyz id: 3 value: ghi RDB Session Cache Pharo id: 1 id: 1 value: abc RDBとSmalltalkイメージが1対1で対応していることが前提
7.
キャッシュの使い方がイマイチ ② id: 1 value:
abc id: 2 value: def id: 1 value: abc あいう id: 2 value: xyz id: 3 value: ghi RDB Session Cache Pharo A id: 1 value: abc あいう save 同じ
8.
キャッシュの使い方がイマイチ ③ id: 1 value:
abc id: 2 value: def id: 1 value: abc id: 2 value: xyz id: 3 value: ghi RDB Session Cache Smalltalk id: 1 id: 1 value: abc Client X id: 1 value: abc わをん save 他者がRDBを更新すると、そこで状態ズレが生じて終了
9.
SQLマッピングフレームワーク 「Kobati」 • SmalltalkHub – http://smalltalkhub.com/#!/~kaminami/Kobati •
過去のスライド – https://www.slideshare.net/kazukiminamitani/sqlkobati • MyBatis for Javaの思想を参考 • 設定は全てXMLに記述 – DBコンフィグ – SQLのテンプレート – SELECT結果とオブジェクトのマッピング • メタメタしない、SQLをほぼそのまま扱う。キャッシュしない • PostgreSQL専用、固有のSQL拡張も気軽に利用できる
10.
利用状況 ① • 主要な箇所は概ね置き換え済み –
150テーブル – SQL 10000行 – 650メソッド • Webアプリ主導の単なるデータ・ストレージから、 RDBらしい利用形態に • JOINしまくりのクエリから、構造を持つオブジェク トを組み立てて利用 – SELECT句を固定 – WHERE句とORDER BY句をPharo側のビルダーで組み 立てて渡すパターンを確立
11.
利用状況 ② • 簡単なことしかしていないこともあり、フレー ムワーク由来の問題はほぼ出ない –
DB設計、発行するSQLの問題に集中できる • 単位時間あたりに取り扱えるクエリ数はGlorp の1.5〜2倍程度
12.
評価 • 良い – 任意のSQLが利用できるので、小回りが効く –
ラウンドトリップ早い – 記述したSQLを解析用途などに転用しやすい • 悪い – ボイラープレートなコードが多い • 隠されたコードがないので状況の把握は楽 – 公開情報があまりない • Glorpを新規採用して良いことはない
13.
今後 • GitHubにリポジトリ移動(予定地) – https://github.com/kaminami/Kobati
Download now