ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ

Y Watanabe
Y WatanabeSofrware Developer at ビズリーチ (BizReach)
#ccc_a1
ツール比較しながら語る
O/RマッパーとDBマイグレーション
JJUG-CCC 2018 Fall
日本Javaユーザーズグループ
クロスコミュニティカンファレンス
ベルサール西新宿 2018-12-15
Y.Watanabe
#ccc_a1
(ストップウォッチ スタート確認)
#ccc_a1
Who?
● 渡辺 祐
● (株)ビズリーチ
● SREグループ
○ Site Reliability Engeneering
● twitter: @nabedge
● nabedge@gmail.com
3
#ccc_a1
Software Design 2019 / 1月号に寄稿しました
第2特集
リリースモデルの変更にどう対処する?
Javaのバージョン問題に前向きに
取り組む方法
第3章
Javaをバージョンアップしやすくする
アイデア
進化に臆さず,そのメリットを
享受するために
4
#ccc_a1
今日、伝えたいこと
● アプリケーションの寿命 < DBの寿命
● 流れの速さのギャップに、アプリケーションのテク
ノロジーで、うまいこと付き合う方法ってなんだろ
う?
5
#ccc_a1
さっそくですがアンケート
● MyBatis(iBatis)
● SpringのJdbcTemplate
● Hibernate
● QueryDSL
● jOOQ
● Doma
● DBFlute
● S2JDBC
● Flyway
過去1年であなたが実際に仕事で使ったものは?
6
#ccc_a1
ただし!
● 銀の弾丸は無い
● エンジニアが現場の状況にあわせて
ツールをチョイスして運用するしかない
7
#ccc_a1
もくじ1
1. タイプセーフなO/Rマッパーの特徴
2. DBマイグレーションツールとは?
3. Flywayとは?
8
#ccc_a1
もくじ2
4. 開発のスタート地点は?
CREATE/ALTER文? ER図? テーブル定義書.xls ?
JPAのエンティティクラス.java @Table, @Column
5. 開発用DBはどこにある?
ローカルPC? 共有DBサーバ?
9
#ccc_a1
もくじ3
6. O/Rマッパーのソースコード自動生成を
どのタイミングでやるか
7. 自動生成したコードをgitに入れるか
8. 自動生成したコードとドメインオブジェ
クトのコードを分けるべきか
10
#ccc_a1
もくじ4
9. テストデータをどうやって投入するか
10. 実際に実行されるSQLを見たい
11. RDBMSの独自関数を使いたい
12. テーブル定義書をどう作るか
11
#ccc_a1
もくじ5
13. 複数のO/Rマッパーを同じプロジェクトで使う
or乗り換えるためのヒント
12
#ccc_a1
(盛り込み過ぎ...)
13
#ccc_a1
1. モダンなO/Rマッパーの特徴
14
#ccc_a1
● Hibernate 2001〜
● Spring-JDBC(JdbcTemplate) 2001〜
● iBatis/MyBatis 2005〜
● S2JDBC 2008〜
● QueryDSL 2008〜
● DBFlute 2008〜
● jOOQ 2010〜
テーブル作成済みのDBサー
バからメタデータを読み取っ
てO/Rマッピング用Javaソー
スを自動生成する方式
古い順に並べて超ざっくり分類
SQLを手で埋め込む方式
素人にはおすすめできない(*1,2)
15
#ccc_a1
SpringのJdbcTemplate
List<Book> books = jdbcTemplate.query(
“SELECT ISBN, TITLE FROM BOOKS”
+ “ WHERE ISBN = ? ”,
new Object[]{“hoge”}, // “?”のところに入れたい引数
new BeanPropertyRowMapper(Book.class)
);
16
#ccc_a1
MyBatis
<!-- xmlファイル -->
<select id="selectBook" parameterType=”String”
resultType="Book">
<![CDATA[
SELECT ISBN, TITLE FROM BOOKS
WHERE ISBN = #{isbn}
]]></select>
// Javaコード
List<Book> books = bookRepository.select(“hoge”);
17
#ccc_a1
いま紹介したのは旧来型O/Rマッパー
● メリット
○ とにかくSQLを手で書かないと気が済まない人
● デメリット
○ タイプセーフではない
○ BOOKをBOOKSと書いても実行するまで(バグるまで)ミ
スに気づけない
※想定しているテーブル名はBOOKです。前のページは
わざと間違いを書いています。
18
#ccc_a1
jOOQ(ジュークと読む)
//テーブルのメタデータ情報クラス
Book book = Tables.book;
// SQLを組み立てて実行
List<BookVo> books = dsl
.select(book.isbn, book.title)
.from(book)
.where(book.isbn.eq(“hoge”))
.fetchInto(BookVo.class); // PoJoであれば手作りクラスでも可
タイプセーフ=間違えたらコンパイルエラーでわかる
赤字は自動されたJavaコードを
使っている箇所
19
#ccc_a1
DBFlute
List<Book>books = bookBhv.selectEntity(
condition -> {
condition.query().setBookIsbn_equal("999");
}
); 赤字は自動されたJavaコードを
使っている箇所
20
#ccc_a1
うたぐり深い人へ、本当の話。
1. jOOQはもっと複雑なSQLを組み立てることも可能です。
a. 参考文献
https://docs.google.com/presentation/d/1MvsMo38Bt-2h4b_ZDSSXNSgq_UuweXx9P0HmlbO
y8k8
2. 正直に言うと、DBFluteは group by をサポートしていません。
a. そういうことは「外出しSQL」で書く方向。
b. 外出しSQLの結果マッピングや呼び出しコードの自動生成をサポート。
21
割愛
#ccc_a1
QueryDSL
● jOOQと似てる(ので、サンプルコードは省略)
● NoSQLも積極的(Lucene拡張、MongoDB拡張)
● 2016年9月、QueryDSLのメインなコミッターが
「やりきったから、別の仕事やるわ。」
と事実上の開発停滞宣言。*3
● jOOQ陣営「QueryDSLおつかれ。俺たちはまだやるぜ」宣言。*4
● 2018年5月 約2年ぶりのバージョンアップ
22
#ccc_a1
いま風なO/Rマッパーの共通項
● タイプセーフなJavaコーディングでCRUDを書く
○ ミスったらコンパイルエラー
● DBにピッタリ合わせたJavaコードでCRUDを書く
○ DB変更の影響範囲がコンパイルエラーでわかる
● 上記を実現するために、
○ テーブル作成済みのDBサーバから自動的にメタデータを
読み取って、Javaソースコードを自動生成
23
#ccc_a1
2. DBマイグレーションツールとは?
24
#ccc_a1
ここで言うDBマイグレーションとは
DBに対する変更=DDL文の適用=を管理するツール
● O/Rマッパー同梱型
○ Ruby on Rails
○ DBFlute
○ Hibernate(?)
● 専用ツール型
○ LiquiBase
○ MyBatis Migration
○ Flyway
25
#ccc_a1
「いまの状態のDB -> 変更のDDLをあてる -> 次の状態のDBになる」
1. 「次の状態のDB」のフルDDL(CREATE文)を手で作っておく
2. 「今の状態から変更するためのDDL」も手で作っておく
3. DBFluteの”save-previous”コマンドで今の状態のDBの定義情報を保存
4. 3と1を使ってDBFluteの”alter-check”コマンドで下記を検証できる
今の状態 + 変更のDDL = 次の状態
5. 4の結果を見たDBAは安心して「変更のDDL」を本番DBで実行
6. 開発者はDBFluteの”replace-schema”で手元の開発DBを再構築
26
DBFluteのマイグレーション機能
#ccc_a1
LiquiBase
● 却下。
● 巨大なXMLファイルを手でメンテし続ける前提だから
27
割愛
#ccc_a1
MyBatis Migrations
● 時間が無いので割愛。
● 考え方はFlywayとよく似ている
28
割愛
#ccc_a1
3. Flywayとは
(これが近年の本命)
29
#ccc_a1
基本的な考え方
DBマイグレーションツールが無い世界で
DBA担当がDBに向かってやる基本動作は
究極、これだけ。
1. DDL文を FooBar-0001.sql ファイルに書いて保存。
2. 順に、一度だけ、実行する。
30
#ccc_a1
DB担当者の基本動作を
そのままソース管理&実行管理する
ツールが Flyway だと思えばいい
31
#ccc_a1 32
src/main/resources/db/migration/
V1.1__foo_init.sql <- 去年のサービス開始のとき
V1.2__hoge_alter.sql <- 先月の機能追加のとき
V1.3__add_foobar.sql <- 来週のための機能追加
1. DBに対する変更を.sqlファイルで積み重ねてゆく
2. flywayを実行
$ ./gradlew flywayMigrate
#ccc_a1 33
3. 管理テーブルに無いsqlファイルだけが実行対象となる
> SELECT ... FROM SCHEMA_VERSION
version | script | success
---------+-----------------------+---------
0.1 | << Flyway Baseline >> | true
1.1 | V1.1__foo_init.sql | true
1.2 | V1.2__hoge_alter.sql | true
1.3 <- このレコードは未だ無いのでV1.3__add_foobar.sqlが対象
4. sqlファイルの追加や変更がない状態でもう一度 flywayMigrate して
も、全て実行済みでSCHEMA_VERSIONに記録されていれば、何も起きな
い(べき等性)
#ccc_a1
補足
● 運用中のDBに、途中から導入することも可能
○ Flyway
■ “flyway baseline” でググる
○ DBFlute
■ 詳しくはマニュアルを
■ O/Rマッパーとして使わずとも、他のマイグレーション
支援コマンド群だけ使うことが可能
34
#ccc_a1
ちょっと休憩
35
1. 水を飲む
2. 時間を確認
20分くらい?
#ccc_a1
4. 開発のスタート地点はどこ?
36
#ccc_a1 37
A. 手書きのDDL(を積んでゆくだけ)
最初にCREATE TABLE、 運用しながら ALTER,
CREATE/DROP INDEX, CREATE/DROP TABLE...
B. ER図をまず書く。(そこからDDL文を自動生成)
C. JPAのエンティティクラスを手書きし、Hibernate-JPAでDDL文
を自動生成
D. テーブル定義書.xlsと手書きのDDLを同時に書き続ける
#ccc_a1 38
A. 手書きのDDLをテキスト形式で積み上げる
この方法以外はすべて、なんだかんだで...
● ツールのセットアップと使い方が難しい
● 引き継ぎが難しくなる
● ツールが有償かつツールにロックインされる
● バージョン管理システムとの相性が...
#ccc_a1
5. 開発DBサーバはどこにあるべき?
39
#ccc_a1 40
A. 共有DB方式
チームのエンジニア全員のPCからサーバ室の1台のDBサー
バに接続
B. ローカルDB方式
それぞれのエンジニアのPCに自分専用の開発DBを構築
#ccc_a1
ローカルDB方式 = Docker時代のデファクト
41
$ docker run mysql:5.7
$ ./gradlew flywayMigrate
● 不要なカラムを削除したい
● 不適切な名前のカラムを
RENAMEしたい
● 新しい機能のために新しい
テーブルを追加したい
● 並行して作業できる
● ただしFlywayの場合はsqlファイルのバージョン番号
だけは衝突しないように話し合う
$ docker run mysql:5.7
$ ./gradlew flywayMigrate
#ccc_a1
6. O/Rマッパーのソースコード自動生成を
どのタイミングでやるか
7. 自動生成したコードをgitに入れるか
42
#ccc_a1
ローカルDB方式 + 自動生成型O/R + Flyway の場合
1. エンジニアはそれぞれやりたいDB変更をDDLで書く
書いたら手元PCで ./gradlew flywayMigrate (手元のDBが変更される)
2. エンジニアはそれぞれ手元でO/RマッパのJavaコード生成を実行
自動生成したJavaコードはコミット対象外!(理由は後述)
3. 2.に合わせてアプリのJavaコードも書く
4. 手元のPCでアプリを起動 -> 動作確認
5. プルリクを作る -> masterブランチにマージ
(続く)
43
#ccc_a1
※以下はエンジニアのPCではなくCIサーバが実施
6. 全てのソースコードツリーをチェックアウト
7. CIサーバ内部でDockerでローカルDBを起動
8. ./gradlew flywayMigrate (ローカルDBの再構成)
9. ./gradlew [O/RマッパのJavaコード自動生成コマンド]
10. ./gradlew build ->全てのコードがjar/warファイル化される
11. アプリをデプロイする前に ./gradlew flywayMigrate -DdbHost=...
※今度はDBの向き先をデプロイ先環境内のDBにしておく
12. jar/warをデプロイ
44
#ccc_a1
前頁のポイント
● DB変更とアプリケーションコードの変更を
同じブランチ/プルリクエストで作業できる
○ FlywayのマイグレーションSQLがバッティングしないように、変更内容
と適用順序をエンジニア間で要調整
● O/Rマッパーの自動生成Javaコードはgitコミットしない
● そのかわりに開発者のPCと CIサーバそれぞれで
必要なタイミングで自動生成を実行
45
#ccc_a1
O/Rマッパーの自動生成コードもコミットしたい場合
● マイグレーションSQL文のコミットと、
O/RマッパーのJavaコード自動生成の
実行&コミットを、同時にやるべき。
● ということは、5頁前のような並行作業だとコンフリクトを起こし
やすくなる。
○ 特に自動生成したJavaコード部分のコンフリクト
● ということは、直列にしか作業できない(かもしれない)
46
割愛
#ccc_a1
DBFlute = 自動生成コードをコミットする前提
● 例:他のカラムから導出、計算した結果を入れるプロパティを、
自動生成したエンティティクラスに追加
● 例:共通のWHERE句を組み立て易くするために検索条件生
成クラスに自作のメソッドを追加
(正確には加筆用の継承クラスがあらかじめ自動生成される)
47
#ccc_a1
8. O/Rマッパーが自動生成したJavaコードと
ドメインオブジェクトのコードを
分けるべきか?
注:DDDのそれというよりはDTOに近いかも
48
#ccc_a1
がぜん、分けるべき。
49
RDB
Repository
Logic
O/Rマッパー
自動生成したentity
クラス
ドメインクラス
/DTO
ドメインクラス
/DTO
Controller
ドメインクラス
/DTO
● setter/getterで地
道に詰め替え
● MapStruct,
Dozer, etc
長寿
長寿に
なりがち
コロコロ変
わる
#ccc_a1
ドメインクラスと自動生成クラスの名前衝突に注意
テーブル名
BOOK
O/Rマッパが自動生成したエンティティクラスやメタデータクラス名
Book.java
丹念に手作りしたいDDD的なドメインクラスの名前
Book.java
50
名前衝突
#ccc_a1
// jOOQでのカスタム例
public class FooPrefixGeneratorStrategy extends DefaultGeneratorStrategy {
@Override
public String getJavaClassName(final Definition definition, final Mode mode) {
String name = super.getJavaClassName(definition, mode);
switch (mode) {
case POJO:
return name + "Vo"; // エンティティクラスは BookVo.javaになる
case DEFAULT:
return 'Foo' + name; // メタデータクラスは FooBook.javaになる
}
return name;
}
51
(正確にはTablesクラスの内部クラス)
#ccc_a1
ちょっと休憩
52
1. 水を飲む
2. 時間を確認
35分くらい?
#ccc_a1
9. テストデータの投入方法は?
53
#ccc_a1
テストデータは必須。しかし....
54
● 空っぽのテーブルでアプリケーションの動作確認はできない
● テストデータは固定ではない。特に日付。
○ 「発売前の本」のつもりのデータが常に 2018-12-15 だったら?
#ccc_a1
DBFluteの場合
55
‘replace-schema’コマンドが
1. 全てのテーブル、インデックスを DROP -> CREATE
2. xls, tsv, csvファイルがあればテストデータとしてINSERT
csvファイル上の “$sysdate.addDay(7)” は
コマンド実行時刻の7日後の値がDBカラムに入る
#ccc_a1
他の方法
56
A. RDBMSのcsv, tsvのバルクロード機能
a. 日付の相対指定が難しい
B. INSERT文を用意して実行
a. 大量の手書きINSERT文が今後のDB変更に耐えられるか?
C. 上記A,Bのハイブリッド
a. csvで入れて相対日付カラムはUPDATE文
D. FlywayのJava-Based Migration
a. DB定義変更用PJとは別PJとしてテスデータ用PJを作っておく
b. SQL文ではなくJavaコードを作っておく
c. INSERT文よりは楽。日付の相対指定も可能。
#ccc_a1
Flyway公式マニュアルによると
57
出典 *10
src/main/java/db/migration/V1_2__Another_user.java
src/main/resources/db/migration/V1_3__HogeHoge.sql
./gradlew flywayMigrate でファイル名順に実行される
ループして値を変えながらINSERTすればいい
#ccc_a1
10. O/Rマッパが作るSQLを見たい
58
- 手書きのSQL以外は信用しないタイプのエンジニアのため
に -
#ccc_a1
DBFluteの場合
● デフォルトでこんな感じ
○ SqlLogHandlerでさらに細かい制御も可能
59
出典 *5
結果データも出てる
呼び出し元クラス
#ccc_a1
jOOQのデバッグログ
60
出典 *6
#ccc_a1
O/Rマッパーを問わない方法もある
● JDBCドライバの中継器として稼働しつつ
実行しようとしているSQLをログ出力
(正確にはプリペアドステートメントだけのことがほとんど)
○ p6spy
○ log4jdbc
61
#ccc_a1
11. RDBMSの独自関数を使いたい
62
#ccc_a1
DBFluteの場合
● sql_calc_found_rowsくらいならデ
フォルト対応
● 外出しSQLならなんでも書ける
● フォーマットは2-Way-SQL
● 呼び出し側コード
(WHERE句の調整等)も
自動生成
63
出典 *7
#ccc_a1
jOOQの場合
64
出典 *8,9
#ccc_a1
12. テーブル定義書をどう作るか
65
#ccc_a1
自動生成 一択
66
#ccc_a1
DBFluteの場合
67
‘doc’コマンド一発
#ccc_a1
SchemaSpyの場合
● jarを直接実行、あるいはdocker run (*11)
● ER図も自動生成
68
#ccc_a1
13. 同じプロジェクトで
複数のO/Rマッパーを同時に使う
or乗り換えるためのヒント
69
#ccc_a1
● 複数のO/Rマッパを好きに混ぜて使って、
いいとこどりできたら幸せ。
● 一つのWeb/DBプロジェクトの開発で、
2つ以上のO/Rマッパーを混ぜて使うことは
無理?、危険?
● トランザクション管理ェェ...
70
#ccc_a1
※ Spring Frameworkを使っているとして
71
#ccc_a1 72@Autowired OrderBhv orderBhv; // DBFlute
@Autowired DSLContext dsl; // jOOQ
@Transactional
public void order(String isbn, Long memberId) { // 本を購入するメソッド
Order order = new Order();
order.setIsbn(isbn);
order.setMemberId(memberId);
orderBhv.insert(order);
Book book = Tables.Book;
dsl.update(book)
.set(book.STOCK, book.STOCK.minus(1))
.where(book.ISBN.eq(isbn))
.execute();
}
● DBFluteでINSERT
● jOOQでUPDATE
● 一つのトランザクション
(BIGIN〜 COMMIT)
で実行されていればOK
DBFlute
jOOQ
#ccc_a1
2つのO/Rマッパが使用する
javax.sql.DataSource オブジェクトが
確実に同じ(インスタンス)であれば
正しくトランザクション管理できる。
73
#ccc_a1
@Bean
public javax.sql.DataSource dataSource() {
// コネクションプール機構を使うとして(ここではHikariCP)
HikariConfig config = new HikariConfig();
config.setJdbcUrl(...);
config.setUsername(...);
config.setPassword(...);
HikariDataSource ds = new HikariDataSource(config);
// return ds; // ←こうじゃなくて↓こう
return new TransactionAwareDataSourceProxy(ds);
}
74
詳しくは TransactionAwareDataSourceProxy でググる。
#ccc_a1
まとめ
75
#ccc_a1
Java/DB開発の今どきの手法とツール
● O/Rマッピングライブラリ
○ ソースコード自動生成によるタイプセーフ方式
○ 外部SQLファイル実行方式
● 実行したSQLのロギング
● DBマイグレーションの自動化
● テストデータ投入の自動化
● テーブル定義書の自動作成
● トランザクションに気をつけて複数のO/Rマッパーを同時に使用
76
選択肢と使い方をよく吟味して、レッツ快適開発!
#ccc_a1
Thank you !
77
#ccc_a1
参考文献
1. Hibernateはどのようにして私のキャリアを破滅寸前にしたか
https://www.kaitoy.xyz/2017/02/23/how-hibernate-ruined-my-career/
上記の原文 https://medium.com/@ggajos/how-hibernate-almost-ruined-16f31ba7d381
2. 我々はいかにして技術選択を間違えたのか?
https://blog.cybozu.io/entry/2016/12/28/101500
3. https://groups.google.com/forum/#!msg/querydsl/fNFXliG8P-k/7dy2aAotVQ0J
4. https://blog.jooq.org/2014/05/29/querydsl-vs-jooq-feature-completeness-vs-now-more-than-ever/
5. http://dbflute.seasar.org/ja/manual/function/genbafit/implfit/debuglog/index.html
6. https://www.jooq.org/doc/3.11/manual/sql-execution/logging/
7. http://dbflute.seasar.org/ja/manual/function/ormapper/outsidesql/howto.html
8. https://www.jooq.org/doc/3.11/manual/sql-execution/query-vs-resultquery/
9. https://www.jooq.org/doc/3.11/manual/sql-building/plain-sql
10. https://flywaydb.org/documentation/migrations#java-based-migrations
11. https://hub.docker.com/r/schemaspy/schemaspy/
12.
78
1 of 78

Recommended

Java ORマッパー選定のポイント #jsug by
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
90.2K views66 slides
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 by
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
148.7K views45 slides
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 - by
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
3.2K views30 slides
Javaのログ出力: 道具と考え方 by
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Taku Miyakawa
74.3K views67 slides
今こそ知りたいSpring Batch(Spring Fest 2020講演資料) by
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
8.5K views53 slides
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版) by
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)Takuto Wada
70.7K views89 slides

More Related Content

What's hot

Where狙いのキー、order by狙いのキー by
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーyoku0825
39.6K views109 slides
PlaySQLAlchemy: SQLAlchemy入門 by
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門泰 増田
21.4K views91 slides
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える by
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるpospome
65.3K views119 slides
アーキテクチャから理解するPostgreSQLのレプリケーション by
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
30.2K views69 slides
Redisの特徴と活用方法について by
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
101.6K views65 slides
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界 by
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界Y Watanabe
6.8K views19 slides

What's hot(20)

Where狙いのキー、order by狙いのキー by yoku0825
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku082539.6K views
PlaySQLAlchemy: SQLAlchemy入門 by 泰 増田
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田21.4K views
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える by pospome
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome65.3K views
アーキテクチャから理解するPostgreSQLのレプリケーション by Masahiko Sawada
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada30.2K views
Redisの特徴と活用方法について by Yuji Otani
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani101.6K views
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界 by Y Watanabe
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
Y Watanabe6.8K views
マイクロにしすぎた結果がこれだよ! by mosa siru
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru132.6K views
イミュータブルデータモデルの極意 by Yoshitaka Kawashima
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima23.8K views
マルチテナント化で知っておきたいデータベースのこと by Amazon Web Services Japan
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
超実践 Cloud Spanner 設計講座 by Samir Hammoudi
超実践 Cloud Spanner 設計講座超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座
Samir Hammoudi21.3K views
SPAセキュリティ入門~PHP Conference Japan 2021 by Hiroshi Tokumaru
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru99.6K views
世界一わかりやすいClean Architecture by Atsushi Nakamura
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura47.1K views
ドメイン駆動設計のための Spring の上手な使い方 by 増田 亨
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨138.1K views
マイクロサービス 4つの分割アプローチ by 増田 亨
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨41.4K views
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話 by Koichiro Matsuoka
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka88.2K views
ドメイン駆動設計サンプルコードの徹底解説 by 増田 亨
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨20.3K views
RLSを用いたマルチテナント実装 for Django by Takayuki Shimizukawa
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for Django
Takayuki Shimizukawa11.1K views
Twitterのsnowflakeについて by moai kids
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids24.8K views
例外設計における大罪 by Takuto Wada
例外設計における大罪例外設計における大罪
例外設計における大罪
Takuto Wada68.6K views

Similar to ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ

はじめての Azure 開発 by
はじめての Azure 開発はじめての Azure 開発
はじめての Azure 開発Yoshitaka Seo
1.3K views44 slides
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み by
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み慎一 古賀
1.9K views38 slides
Application Architecture for Enterprise Win Store Apps with DDD Pattern by
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternAtsushi Kambara
3.1K views284 slides
LightSwitch ~結局何ができるの~ rev 2 by
LightSwitch ~結局何ができるの~ rev 2LightSwitch ~結局何ができるの~ rev 2
LightSwitch ~結局何ができるの~ rev 2Yoshitaka Seo
1.8K views17 slides
Asp Net Mvc 基礎のキソ by
Asp Net Mvc 基礎のキソAsp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソYoshitaka Seo
3.4K views58 slides
Visual Studio 2010で楽しくデバッグ by
Visual Studio 2010で楽しくデバッグVisual Studio 2010で楽しくデバッグ
Visual Studio 2010で楽しくデバッグKazushi Kamegawa
1.9K views22 slides

Similar to ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ(20)

はじめての Azure 開発 by Yoshitaka Seo
はじめての Azure 開発はじめての Azure 開発
はじめての Azure 開発
Yoshitaka Seo1.3K views
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み by 慎一 古賀
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
慎一 古賀1.9K views
Application Architecture for Enterprise Win Store Apps with DDD Pattern by Atsushi Kambara
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Atsushi Kambara3.1K views
LightSwitch ~結局何ができるの~ rev 2 by Yoshitaka Seo
LightSwitch ~結局何ができるの~ rev 2LightSwitch ~結局何ができるの~ rev 2
LightSwitch ~結局何ができるの~ rev 2
Yoshitaka Seo1.8K views
Asp Net Mvc 基礎のキソ by Yoshitaka Seo
Asp Net Mvc 基礎のキソAsp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソ
Yoshitaka Seo3.4K views
Visual Studio 2010で楽しくデバッグ by Kazushi Kamegawa
Visual Studio 2010で楽しくデバッグVisual Studio 2010で楽しくデバッグ
Visual Studio 2010で楽しくデバッグ
Kazushi Kamegawa1.9K views
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto by Insight Technology, Inc.
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
Smart Tennis Lesson Serverless Design by Ryuji TAKEHARA
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless Design
Ryuji TAKEHARA1.3K views
LightSwitchで遊んでみた by Yoshitaka Seo
LightSwitchで遊んでみたLightSwitchで遊んでみた
LightSwitchで遊んでみた
Yoshitaka Seo1.1K views
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは by Jun-ichi Sakamoto
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto21.9K views
LightSwitch で遊んでみた Rev. 2 by Yoshitaka Seo
LightSwitch で遊んでみた Rev. 2LightSwitch で遊んでみた Rev. 2
LightSwitch で遊んでみた Rev. 2
Yoshitaka Seo1.2K views
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1 by Y Watanabe
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
Y Watanabe4.4K views
わんくまT78 mfcを始めようとしてみた by 伸男 伊藤
わんくまT78 mfcを始めようとしてみたわんくまT78 mfcを始めようとしてみた
わんくまT78 mfcを始めようとしてみた
伸男 伊藤3.3K views
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc. by YASUKAZU NAGATOMI
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
YASUKAZU NAGATOMI921 views
C#メタプログラミング概略 in 2021 by Atsushi Nakamura
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Atsushi Nakamura1.1K views
LightSwitch 結局何ができるの by Yoshitaka Seo
LightSwitch 結局何ができるのLightSwitch 結局何ができるの
LightSwitch 結局何ができるの
Yoshitaka Seo1.1K views
ASP.NET MVC Part 2 by Yoshitaka Seo
ASP.NET MVC Part 2ASP.NET MVC Part 2
ASP.NET MVC Part 2
Yoshitaka Seo10.2K views
[2001/05/30] .NET Developers Conference 2001 May / C#の生産性とパフォーマンス by Tatsuhiko Tanaka
[2001/05/30] .NET Developers Conference 2001 May / C#の生産性とパフォーマンス[2001/05/30] .NET Developers Conference 2001 May / C#の生産性とパフォーマンス
[2001/05/30] .NET Developers Conference 2001 May / C#の生産性とパフォーマンス
Tatsuhiko Tanaka254 views
デブサミ2013【15-D-4】Opsから挑むDevOps by Developers Summit
デブサミ2013【15-D-4】Opsから挑むDevOpsデブサミ2013【15-D-4】Opsから挑むDevOps
デブサミ2013【15-D-4】Opsから挑むDevOps
Developers Summit2.8K views

More from Y Watanabe

クラウド時代だからSpring-Retryフレームワーク by
クラウド時代だからSpring-Retryフレームワーククラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-RetryフレームワークY Watanabe
3.3K views46 slides
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩 by
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩Y Watanabe
4.6K views42 slides
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田 by
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田Y Watanabe
1.4K views21 slides
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所 by
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Y Watanabe
1.8K views24 slides
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略 by
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略Y Watanabe
3.4K views49 slides
properties, yaml, and me by
properties, yaml, and meproperties, yaml, and me
properties, yaml, and meY Watanabe
7.8K views20 slides

More from Y Watanabe(18)

クラウド時代だからSpring-Retryフレームワーク by Y Watanabe
クラウド時代だからSpring-Retryフレームワーククラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーク
Y Watanabe3.3K views
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩 by Y Watanabe
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
Y Watanabe4.6K views
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田 by Y Watanabe
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Y Watanabe1.4K views
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所 by Y Watanabe
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Y Watanabe1.8K views
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略 by Y Watanabe
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
Y Watanabe3.4K views
properties, yaml, and me by Y Watanabe
properties, yaml, and meproperties, yaml, and me
properties, yaml, and me
Y Watanabe7.8K views
テストゼロからイチに進むための戦略と戦術 by Y Watanabe
テストゼロからイチに進むための戦略と戦術テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
Y Watanabe4.7K views
The cost of learning - advantage of mixer2 by Y Watanabe
The cost of learning - advantage of mixer2The cost of learning - advantage of mixer2
The cost of learning - advantage of mixer2
Y Watanabe2.4K views
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話 by Y Watanabe
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
Y Watanabe4.7K views
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと by Y Watanabe
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
Y Watanabe13.4K views
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料 by Y Watanabe
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Y Watanabe25.8K views
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java by Y Watanabe
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe7.9K views
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク by Y Watanabe
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトークSeleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Y Watanabe11.9K views
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園 by Y Watanabe
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
Y Watanabe3.7K views
Mixer2によるdynamic css sprite 201309第三回渋谷java by Y Watanabe
Mixer2によるdynamic css sprite 201309第三回渋谷javaMixer2によるdynamic css sprite 201309第三回渋谷java
Mixer2によるdynamic css sprite 201309第三回渋谷java
Y Watanabe1.5K views
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT by Y Watanabe
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
Y Watanabe2.8K views
20130511 jjug ccc講演 さらばjsp JAXBとmixer2 by Y Watanabe
20130511 jjug ccc講演 さらばjsp JAXBとmixer220130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
Y Watanabe4.2K views
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug by Y Watanabe
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe5.4K views

Recently uploaded

Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
89 views26 slides
光コラボは契約してはいけない by
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけないTakuya Matsunaga
25 views17 slides
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PC Cluster Consortium
23 views36 slides
SSH応用編_20231129.pdf by
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdficebreaker4
380 views13 slides
SNMPセキュリティ超入門 by
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門mkoda
453 views15 slides
Windows 11 information that can be used at the development site by
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development siteAtomu Hidaka
90 views41 slides

Recently uploaded(12)

光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga25 views
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4380 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda453 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka90 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.76 views

ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ