Submit Search
Upload
マジックビーンズ
•
31 likes
•
23,014 views
Akira Suenami
Follow
SQLアンチパターン読書会でマジックビーンズについて発表しました。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 25
Download now
Download to read offline
Recommended
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
SQLアンチパターン 26章「とりあえず削除フラグ」 2015/08/31 @ GMO Yours #ronsakucasual https://atnd.org/events/68902
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
NTT DATA Technology & Innovation
押さえておきたい、PostgreSQL 13 の新機能!! (Open Source Conference 2021 Online/Hokkaido 発表資料) 2021年6月26日 株式会社NTTデータ 技術開発本部 先進コンピューティング技術センタ 藤井 雅雄
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
・OSC徳島 ・PostgreSQLカンファレンス ・JJUG CCC の登壇資料です
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
2013/04/20 デブサミ 2013 アワード & リバイバル
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
yoku0825
2015/08/31 論理削除Casual Talks #1
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
ichirin2501
題の問題に対して、InnoDBのバッドノウハウ紹介
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
2014/08/29 YAPC::Asia 2014
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
より詳細なCQRSに関する資料はこちら https://little-hands.hatenablog.com/entry/2019/12/02/cqrs 参考資料:http://little-hands.hatenablog.com/entry/jjug2017fall 社内新規プロダクトでDDD, CQRSの思想をベースとしたアーキテクチャを構築し、コマンド(更新系処理)ではSpring Data JPA(Hibernate)を、クエリ(参照系処理)ではjOOQを採用しました。 結果としてそれぞれのORMの良いところを生かした組み合わせのアーキテクチャが構築できたので、その経緯と得られた知見についてお話ししたいと思います。 以下のようなトピックを考えています。 ・CQRSの定義とメリットデメリット ・DDD,CQRSを検討するにあたってのORMの選定ポイント ・構築したアーキテクチャ CQRSはDDDと切り分けて単独でも適用することができるので、DDDについてご存知ない方もご覧いただけます。日本語の文献は意外と少ないので、この辺りの分野に興味がある人の参考になれば幸いです。
Recommended
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
SQLアンチパターン 26章「とりあえず削除フラグ」 2015/08/31 @ GMO Yours #ronsakucasual https://atnd.org/events/68902
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
NTT DATA Technology & Innovation
押さえておきたい、PostgreSQL 13 の新機能!! (Open Source Conference 2021 Online/Hokkaido 発表資料) 2021年6月26日 株式会社NTTデータ 技術開発本部 先進コンピューティング技術センタ 藤井 雅雄
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
・OSC徳島 ・PostgreSQLカンファレンス ・JJUG CCC の登壇資料です
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
2013/04/20 デブサミ 2013 アワード & リバイバル
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
yoku0825
2015/08/31 論理削除Casual Talks #1
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
ichirin2501
題の問題に対して、InnoDBのバッドノウハウ紹介
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
2014/08/29 YAPC::Asia 2014
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
より詳細なCQRSに関する資料はこちら https://little-hands.hatenablog.com/entry/2019/12/02/cqrs 参考資料:http://little-hands.hatenablog.com/entry/jjug2017fall 社内新規プロダクトでDDD, CQRSの思想をベースとしたアーキテクチャを構築し、コマンド(更新系処理)ではSpring Data JPA(Hibernate)を、クエリ(参照系処理)ではjOOQを採用しました。 結果としてそれぞれのORMの良いところを生かした組み合わせのアーキテクチャが構築できたので、その経緯と得られた知見についてお話ししたいと思います。 以下のようなトピックを考えています。 ・CQRSの定義とメリットデメリット ・DDD,CQRSを検討するにあたってのORMの選定ポイント ・構築したアーキテクチャ CQRSはDDDと切り分けて単独でも適用することができるので、DDDについてご存知ない方もご覧いただけます。日本語の文献は意外と少ないので、この辺りの分野に興味がある人の参考になれば幸いです。
日本語テストメソッドについて
日本語テストメソッドについて
kumake
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
更新日時を排除していくことでそこそこのモデルを書けるようになる手法です。
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
Java/Spring Boot/MyBatis/Thymeleafを使った、ドメイン駆動設計のサンプルコード。ビジネスルールに焦点を合わせ、計算モデルで複雑さを整理し、型指向のプログラミングで実装する、その具体例。
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
ichirin2501
mysql,innodb,foreign key
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
yoku0825
2017/10/23 MyNA(日本MySQLユーザ会)会 2017年10月 https://atnd.org/events/91275
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
JJUG-CCC 日本Javaユーザーズグループクロスコミュニティカンファレンス 2018/12 登壇資料です。
データベース設計徹底指南
データベース設計徹底指南
Mikiya Okuno
DBエンジニアのための技術勉強会(第3回)で使用した資料です。主にリレーショナルモデルと正規化について解説しています。リレーショナルモデルの限界について正しく認識してこそ、リレーショナルモデルを理解したと言えると思います。
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
質問への回答(35件)を、ブログにまとめているのでこちらご覧ください https://little-hands.hatenablog.com/entry/2019/08/31/genba_de_ddd 「Mix Leap Study 特別編 - レガシーをぶっつぶせ。現場でDDD! コラボカンファレンス」登壇資料 ブログ:https://little-hands.hatenablog.com/ Twitter:https://twitter.com/little_hand_s 質問箱:https://peing.net/ja/little_hands
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
2021/11/24 「イミュータブルでゆこう」イベントの資料です。 データをリソースとイベントに場合分けして考えようという至極単純な話を1時間ほどしました。
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
PostgreSQLのロール管理とその注意点 (Open Source Conference 2022 Online/Osaka 発表資料) 2022年1月29日 NTTデータ 技術開発本部 先進コンピューティング技術センタ 加藤 慎也
What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDB
Mikiya Okuno
db tech showcase 2016 Tokyo で発表した資料です。MySQL 5.7の新機能のうち、InnoDBについてまとめてあります。
Tackling Complexity
Tackling Complexity
Yoshitaka Kawashima
設計ナイト2022 「トランザクションスクリプト」でのディスカッション枠スライドです。
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
Ohyama Masanori
PGCon Japan 2015 の発表資料です。
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
2017/05/26のDB比較セミナーで使用した資料です。 NoSQLであるRedisについて説明しています。
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
DBマイグレーションツールのFlywayとER図生成ツールのSchemaSpyの紹介です。
MySQLとPostgreSQLの基本的なバックアップ比較
MySQLとPostgreSQLの基本的なバックアップ比較
Shinya Sugiyama
MySQLとPostgreSQLの基本的な論理バックアップと物理バックアップ
SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)
Tomoaki Uchida
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
2015/10/03 phpcon 2015 updated at 2016/01/13 about default_password_lifetime's default will be 0
SQLアンチパターン読書会 第10章 サーティワンフレーバー
SQLアンチパターン読書会 第10章 サーティワンフレーバー
tkfuji
2013年10月17日開催のSQLアンチパターン読書会 の資料。「第10章 サーティワンフレーバー(31のフレーバー)」。
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
増田 亨
2011/6/20 redajp
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
Tomoharu ASAMI
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門
normalian
わんくま東京勉強会#35で使用したセッション資料。ASP.NET MVCの活用法が載ってます。
More Related Content
What's hot
日本語テストメソッドについて
日本語テストメソッドについて
kumake
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
更新日時を排除していくことでそこそこのモデルを書けるようになる手法です。
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
Java/Spring Boot/MyBatis/Thymeleafを使った、ドメイン駆動設計のサンプルコード。ビジネスルールに焦点を合わせ、計算モデルで複雑さを整理し、型指向のプログラミングで実装する、その具体例。
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
ichirin2501
mysql,innodb,foreign key
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
yoku0825
2017/10/23 MyNA(日本MySQLユーザ会)会 2017年10月 https://atnd.org/events/91275
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
JJUG-CCC 日本Javaユーザーズグループクロスコミュニティカンファレンス 2018/12 登壇資料です。
データベース設計徹底指南
データベース設計徹底指南
Mikiya Okuno
DBエンジニアのための技術勉強会(第3回)で使用した資料です。主にリレーショナルモデルと正規化について解説しています。リレーショナルモデルの限界について正しく認識してこそ、リレーショナルモデルを理解したと言えると思います。
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
質問への回答(35件)を、ブログにまとめているのでこちらご覧ください https://little-hands.hatenablog.com/entry/2019/08/31/genba_de_ddd 「Mix Leap Study 特別編 - レガシーをぶっつぶせ。現場でDDD! コラボカンファレンス」登壇資料 ブログ:https://little-hands.hatenablog.com/ Twitter:https://twitter.com/little_hand_s 質問箱:https://peing.net/ja/little_hands
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
2021/11/24 「イミュータブルでゆこう」イベントの資料です。 データをリソースとイベントに場合分けして考えようという至極単純な話を1時間ほどしました。
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
PostgreSQLのロール管理とその注意点 (Open Source Conference 2022 Online/Osaka 発表資料) 2022年1月29日 NTTデータ 技術開発本部 先進コンピューティング技術センタ 加藤 慎也
What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDB
Mikiya Okuno
db tech showcase 2016 Tokyo で発表した資料です。MySQL 5.7の新機能のうち、InnoDBについてまとめてあります。
Tackling Complexity
Tackling Complexity
Yoshitaka Kawashima
設計ナイト2022 「トランザクションスクリプト」でのディスカッション枠スライドです。
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
Ohyama Masanori
PGCon Japan 2015 の発表資料です。
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
2017/05/26のDB比較セミナーで使用した資料です。 NoSQLであるRedisについて説明しています。
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
DBマイグレーションツールのFlywayとER図生成ツールのSchemaSpyの紹介です。
MySQLとPostgreSQLの基本的なバックアップ比較
MySQLとPostgreSQLの基本的なバックアップ比較
Shinya Sugiyama
MySQLとPostgreSQLの基本的な論理バックアップと物理バックアップ
SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)
Tomoaki Uchida
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
2015/10/03 phpcon 2015 updated at 2016/01/13 about default_password_lifetime's default will be 0
SQLアンチパターン読書会 第10章 サーティワンフレーバー
SQLアンチパターン読書会 第10章 サーティワンフレーバー
tkfuji
2013年10月17日開催のSQLアンチパターン読書会 の資料。「第10章 サーティワンフレーバー(31のフレーバー)」。
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
増田 亨
2011/6/20 redajp
What's hot
(20)
日本語テストメソッドについて
日本語テストメソッドについて
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
データベース設計徹底指南
データベース設計徹底指南
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDB
Tackling Complexity
Tackling Complexity
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
Redisの特徴と活用方法について
Redisの特徴と活用方法について
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
MySQLとPostgreSQLの基本的なバックアップ比較
MySQLとPostgreSQLの基本的なバックアップ比較
SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
SQLアンチパターン読書会 第10章 サーティワンフレーバー
SQLアンチパターン読書会 第10章 サーティワンフレーバー
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
Similar to マジックビーンズ
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
Tomoharu ASAMI
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門
normalian
わんくま東京勉強会#35で使用したセッション資料。ASP.NET MVCの活用法が載ってます。
Laravelの検索機能の実装方法
Laravelの検索機能の実装方法
yoshitaro yoyo
Laravelにおける検索機能のハンズオンをした際の資料 at 2021/07
Mvc conf session_1_osada
Mvc conf session_1_osada
Hiroshi Okunushi
mvcConf @:Japan ~ ASP.NET MVC ブートキャンプ ~ の資料です
ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~
Yoshitaka Seo
ASP.NET MVC 2 概要 2010 Community Open Day セッション資料
型チェックのアノテーションによる保守・運用の改善
型チェックのアノテーションによる保守・運用の改善
gree_tech
「日本ソフトウェア科学会第35回大会」で発表された資料です。 https://jssst2018.wordpress.com/program/
はじめての ASP.NET MVC
はじめての ASP.NET MVC
jz5 MATSUE
http://pronama.azurewebsites.net/2015/04/11/asp-net-beginner-seminar-slide/
はじめてのASP.NET MVC5
はじめてのASP.NET MVC5
Tomo Mizoe
ASP.NET MVC5 の使い方を学習します。 HelloWorldからはじまって、映画のタイトル、監督、公開日等のCRUDができるWebアプリケーションを開発します。
MvcのFatモデルに立ち向かう
MvcのFatモデルに立ち向かう
Shun Hikita
UniStudy#2 発表資料です。
【アジャイル道場】Rails勉強会(view編)
【アジャイル道場】Rails勉強会(view編)
Sosuke Kimura
社内勉強用
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
The Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in Corporations
Koichiro Ohba
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
Masashi Shinbara
2015.06.27. PHPカンファレンス福岡
Rubyで作るtwitter風webアプリケーション
Rubyで作るtwitter風webアプリケーション
Naoto Hori
Jubatusでマルウェア分類
Jubatusでマルウェア分類
Shuzo Kashihara
機械学習×プログラミング勉強会 2012年5月11日
オープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアル
Akira Tanaka
SES2014 Workshop#4 で紹介したものに1枚追加しました
MVCのつぎは・・・
MVCのつぎは・・・
Net Penguin
MVC以外のアーキテクチャを列挙
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
Daisuke Nishino
Open棟梁について - OSSコンソーシアム https://www.osscons.jp/dotNetDevelopmentInfrastructure/OpenTouryo/
Tech fun rails_workshop
Tech fun rails_workshop
OMEGA (@equal_001)
2013/02/04にTechFUNでやったRails勉強会の資料です
scala+liftで遊ぼう
scala+liftで遊ぼう
youku
初心者によるLift入門…のようなもの。
Similar to マジックビーンズ
(20)
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門
Laravelの検索機能の実装方法
Laravelの検索機能の実装方法
Mvc conf session_1_osada
Mvc conf session_1_osada
ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~
型チェックのアノテーションによる保守・運用の改善
型チェックのアノテーションによる保守・運用の改善
はじめての ASP.NET MVC
はじめての ASP.NET MVC
はじめてのASP.NET MVC5
はじめてのASP.NET MVC5
MvcのFatモデルに立ち向かう
MvcのFatモデルに立ち向かう
【アジャイル道場】Rails勉強会(view編)
【アジャイル道場】Rails勉強会(view編)
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
The Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in Corporations
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
Rubyで作るtwitter風webアプリケーション
Rubyで作るtwitter風webアプリケーション
Jubatusでマルウェア分類
Jubatusでマルウェア分類
オープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアル
MVCのつぎは・・・
MVCのつぎは・・・
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
Tech fun rails_workshop
Tech fun rails_workshop
scala+liftで遊ぼう
scala+liftで遊ぼう
More from Akira Suenami
糖質とプログラミングと私
糖質とプログラミングと私
Akira Suenami
ヘルシープログラマ出版記念イベントで LT しました。
糖質制限超入門
糖質制限超入門
Akira Suenami
会社の忘年会で話した内容を多少リバイスして横浜道場忘年会で発表しました。
今年かかった麻疹まとめ2014
今年かかった麻疹まとめ2014
Akira Suenami
会社の開発忘年会でしゃべりました。
Symfony温泉2014 自己紹介LT
Symfony温泉2014 自己紹介LT
Akira Suenami
Symfony温泉'14で技術的な話はそこそこに(おいっ!!)糖質制限の話をしてきました。いい感じにキャラ立ちしてよかったと思います。 (ちなみにプレゼン中でも述べてますが、Symfonyはほとんど使ってませんw)
シュードキーニートフリーク
シュードキーニートフリーク
Akira Suenami
SQLアンチパターン読書会で発表担当しました。
Tdd is really dead ?
Tdd is really dead ?
Akira Suenami
会社の新卒歓迎会LTで発表した内容です。 まだTDDはおろか自動テストすら研修前で、TDDに対して変な先入観を持って欲しくなかったので、基本的にはやんごとなき方々の言葉の引用をメインにし、僕自身の意見は少なめにしています。
Wip prをやってみた
Wip prをやってみた
Akira Suenami
俺がモデルだ!問題に立ち向かう
俺がモデルだ!問題に立ち向かう
Akira Suenami
TDD Boot Camp Fukuoka 2013で発表したLTの資料です。 http://tddbc.doorkeeper.jp/events/3472
今年かかった麻疹まとめ
今年かかった麻疹まとめ
Akira Suenami
会社の開発忘年会で今年かかった麻疹について発表しました。こうやってみるといろいろな病気にかかった(笑)ものですが、そのぶん成長できた一年だったと思います。来年も麻疹を恐れず、積極的に新しいことにチャレンジしていきたいものです。
デザイナのためのGit講座
デザイナのためのGit講座
Akira Suenami
社内で非エンジニア向けに発表したので資料をあげておきます。コミットを擬人化してみました。
アジャイル開発振り返り
アジャイル開発振り返り
Akira Suenami
ここ3〜4ヶ月間で会社ではじめてスクラムを導入したのですが、それが一旦区切りを迎えたので、振り返りをして社内でシェアしました。
Xp祭りに行ってきた
Xp祭りに行ってきた
Akira Suenami
XP祭りに行ってきて、いろいろ刺激になったので社内で共有・報告をしました。
テストとの上手な付き合い方
テストとの上手な付き合い方
Akira Suenami
自動テストについて思っているところをつらつらと社内LTで発表した内容です。どこまで自動化できて、どこからは人の手でテストしないといけないかはプロジェクトの性質にもよると思いますが、基本的に自動化できるものは自動化していきたいところ。
More from Akira Suenami
(13)
糖質とプログラミングと私
糖質とプログラミングと私
糖質制限超入門
糖質制限超入門
今年かかった麻疹まとめ2014
今年かかった麻疹まとめ2014
Symfony温泉2014 自己紹介LT
Symfony温泉2014 自己紹介LT
シュードキーニートフリーク
シュードキーニートフリーク
Tdd is really dead ?
Tdd is really dead ?
Wip prをやってみた
Wip prをやってみた
俺がモデルだ!問題に立ち向かう
俺がモデルだ!問題に立ち向かう
今年かかった麻疹まとめ
今年かかった麻疹まとめ
デザイナのためのGit講座
デザイナのためのGit講座
アジャイル開発振り返り
アジャイル開発振り返り
Xp祭りに行ってきた
Xp祭りに行ってきた
テストとの上手な付き合い方
テストとの上手な付き合い方
Recently uploaded
生成AIがもたらすコンテンツ経済圏の新時代 The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代 The New Era of Content Economy Brought by Generative AI
Osaka University
、コンテンツ制作の主体をプロのクリエーターからユーザーへと移行させている現状をご存じの方も多いでしょう。現在、画像コンテンツ制作現場では生成AIがクリエーターを支援するツールとして利用されています。セミナーでは、画像生成における自動化の境界についての議論が予定されています。 AIの利用には著作権や倫理的な問題も伴いますが、クリエーターとAIが共存し、センシング技術と統合することで新しい形のコンテンツが生み出されることが期待されています。
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
Osaka University
AIの進化により、自動化、最適化、予測など、多くの業務プロセスが大きく変わりつつあります。しかし、その可能性を最大限に引き出すためには、AIを理解し、適切に活用するための新たな働き方が求められます。本セミナーでは、生成AIが業務プロセスの自動化や意思決定の高速化など、業務効率化にどのように貢献しているのか、さらに生成AIとリモートワークの組み合わせが、従業員の生産性向上にどのように結びつくのかを解説します。
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
ARISE analytics
人工知能学会 全国大会 (JSAI2024) で行ったポスター発表の内容です。
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
AI/IT系の会社だと「データ」は商売道具の一つかと思いますが、その「データ」って今の社会で一体どんな価値を持っていて、今後どのような責務を担わせるのが健全なのだろうか?という思考の発散をしてみました。 ※喋りメインだったのでスライドだけだと内容薄いと思います, 気になった方はhttps://x.com/wox_aiまで。
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
Hyper-V and SCVMM
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
HVAC2024第1回 技術講習会 スライド
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~ 2024/6/12~14まで幕張メッセで開催されました、インターロップ併設アプリジャパンの展示会場内ROOM Bで、10:30~11:10の枠で登壇させてもらいましたセッション資料を公開します。
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
kitamisetagayaxxx
MacWorldTokyo
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
インタラクション2024
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
設計ナイト2024にて発表した内容になります。
Recently uploaded
(10)
生成AIがもたらすコンテンツ経済圏の新時代 The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代 The New Era of Content Economy Brought by Generative AI
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
マジックビーンズ
1.
マジックビーンズ Twitter: @a_suenami
Github: a-suenami id: a_suenami
2.
自己紹介 • 末並晃(すえなみあきら)
• @a_suenami • 髪切りました / 痩せました • RubyとかPHPとかJavaScriptとか • いわゆる”Web系”エンジニア • どちらかというと自然キー/複合キー容認派 • どちらかというとNULL撲滅したい派
3.
マジックビーンズとは MVC アーキテクチャにおいて、
M ( モデル ) の設計や実装を単純化するために、 すべてのモデルをアクティブレコードの 継承クラスにするというアンチパターン
4.
アクティブレコードとは データベーステーブルあるいはビューの1行が1つのクラスにラップさ れ、オブジェクトのインスタンスがそのデータベースの1つの行に結合
される。このクラスはデータベースアクセスのカプセル化も行う。オブ ジェクトの生成後は、保存メソッドで新しい行がデータベースに追加 される。 オブジェクトが更新されると、データベースの対応する行も また更新される。 出典: http://ja.wikipedia.org/wiki/Active_Record
5.
アクティブレコードとは # 1
件取得 bug = Bug.find(1234) # SELECT * FROM bugs ! # 新規作成 bug = new Bug.new bug.summary = ‘保存時にクラッシュが発生’ bug.save # INSERT INTO bugs (summary) VALUES (‘保存時にクラッシュが発生’) ! # 更新 bug = Bug.find(1234) # SELECT * FROM bugs bug.summary = ‘保存時にクラッシュが発生’ bug.save # UPDATE bugs SET summary = ‘保存時にクラッシュが発生’ WHERE id = 1234 ! # 削除 bug = Bug.find(1234) # SELECT * FROM bugs bug.delete # DELETE FROM bugs WHERE id = 1234
6.
弊害1: モデルがデータベーススキーマに依存する •
アクティブレコードを用いると、n 個のテーブルがある場合、n 個の モデルクラスが必要になる。 • データベースをリファクタリングする際にモデルクラスだけでなく、 それを使う側のコードまで変更する必要がある。
7.
弊害2: CRUD 機能を公開してしまう
• アクティブレコードを用いると find, create, update, delete などの メソッドを公開メソッドとして直接呼び出せてしまう。 • ビジネスロジックとして実装されたメソッドを利用せず、公開 CRUD メソッドを利用できてしまう結果、要件を満たさないコード が書かれる可能性がある。 • 書籍中ではバグ担当者をアサインしたらメール通知するはずだが、 メール通知が迂回されてしまうという例で紹介されている。 • 仮に要件を満たせたとしても、公開 CRUD メソッドの利用はビジネ スロジックがアプリケーション層まで流出する結果になる。また、 複数箇所に同じロジックが重複する可能性がある。
8.
弊害3: ドメインモデル貧血症をもたらす •
モデルがデータアクセスオブジェクトとしてしか利用されず、ビジ ネスロジックの多くがアプリケーション層にあるコントローラーオ ブジェクトやサービスオブジェクトに記述されている状態を「ドメ インモデル貧血症」という。 • 参考: http://capsctrl.que.jp/kdmsnr/wiki/bliki/? AnemicDomainModel • CRUD メソッドを公開してしまった結果として起こりやすい。 • ビジネスロジックを持たないモデルと巨大で手続き的なサービスオ ブジェクトで構成されることになり保守性が低下する。オブジェク ト指向のカプセル化の考え方に完全に違反している。
9.
弊害4: ユニットテストが困難 •
モデル、ビュー、コントローラ、すべてのレイヤーにおいてユニット テストが困難になる。 • モデル: データベースと密結合になるため、本番と同等のデータベー ススキーマを準備して実際に接続する必要がある。 • ビュー: モデルが単なるデータコンテナとして使われると表示処理に も複雑なロジックが生じるため、実際のレスポンスとして返される HTML を生成し、それに対してテストする必要がある。 • コントローラ: ビジネスロジックがアプリケーション層に漏れだして いるため、ビジネスロジックのテストのために HTTP リクエストとレ スポンスをエミュレートする必要があり煩雑になる。
10.
“Railsの”アクティブレコードのさらなる弊害 Rails のアクティブレコードの場合、データベースに加えてフォームと
も密結合になる。 <%= form_for(@bug) do |f| %> <div class="field"> <%= f.label :summary %><br> <%= f.text_field :summary %> </div> <div class="field"> <%= f.label :description %><br> <%= f.text_area :description %> </div> <div class="actions"> <%= f.submit %> </div> <% end %>
11.
“Railsの”アクティブレコードのさらなる弊害 • テーブルとフォームが綺麗に対応しない場合にはモデルにフォーム
由来の実装が現れる。 • (例) メールアドレスの確認入力 • (例) 「利用規約に同意する」チェックボックス • バリデーションルールやエラーメッセージの管理もモデルの責務とし て実装される。 • Rails でアンチパターンに陥ると、モデルにはバリデーションルール のみがあり、ビジネスロジックはコントローラに流出してしまう。
12.
アンチパターンの見つけ方 • 「モデルにカスタム
SQL クエリを渡すにはどうすればいい?」 • モデルにカスタム SQL を渡す必要はない。クエリをカプセル化し、アプリ ケーション層から隠ぺいする。 • 「複雑なモデル操作をすべてのコントローラにコピーすればいいのだろうか、 それとも、親の抽象コント ローラクラスに 1 回だけコーディングすればいいの だろうか」 • どちらの方法でも安定性や保守性は得られない。複雑な手続きがあるのであ ればモデルのメソッドとして公開する必要がある。 • 「モデルのユニットテストを行うために、データベースフィクスチャをもっと書 かなければならない」 • モデルのテストではなくデータアクセスのテストをしている可能性がある。
13.
アンチパターンを用いてもよい場合 • アクティブレコードそのものは優れたデータアクセスパターンであ
り、それ自体はアンチパターンではない。 • テーブルの各行に対してシンプルな CRUD 操作ができるだけで十分 なアプリケーションも多く、その場合には DAO とモデルを同一の ものにすることで設計を単純化できる。 • プロトタイプ作成においては作業省力化の役に立つ。
14.
http://a-suenami.hatenablog.com/entry/2014/11/12/221805 “何が必要か/本当に必要かがわかるまでは開発しないか最低限の開発で検証を 重ねるのがいいと思いますし、その結果コアドメインが姿を表したらユビキタ
ス言語を構築してモデリングをするべきでしょう。逆にノンコアドメインにつ いてはフレームワークや既存のパターンを使って低コストに済ませてしまうの がよいと思います。”
15.
解決策 • モデルがアクティブレコードを「持つ」ようにする
• モデルを理解する • ドメインモデルの使用 • プレーンなオブジェクトのテスト • 現実的に考える
16.
レイヤー化アーキテクチャ • 「エリックエヴァンスのドメイン駆動設計」で紹介されているアー
キテクチャパターン。 • ある層の要素は同じ層の別の要素か、より下の層の要素にしか依存 しないことを原則とする。 ユーザ・インターフェース層ユーザへの情報の表示、ユーザからの入力の解釈を責務 として負う。 アプリケーション層 ソフトウェアがやるべき仕事を定義し、問題を解決でき るようにドメインオブジェクト間の調整をする。ドメイ ンに対する知識を持たず、薄く保たれる層。 ドメイン層ビジネス上の概念やビジネスルールを表す責務を負う。 インフラストラクチャ層上位のレイヤを支える技術的機能を提供することを責務 とする。
17.
オブジェクトの責務の割当てパターン ( GRASP
) • 情報エキスパート ( Information Expert ) • 生成者 ( Creator ) • 疎結合性(Low Coupling) • 高凝集性(High Cohesion)
18.
ドメインモデル • ドメインモデルについては「エリック・
エヴァンスのドメイン駆動設計」で詳し く述べられている。 • ドメインモデルとは対象ドメインに関心 事をアプリケーションで表現したもので あり、MVC アーキテクチャにおける本来 の「モデル」もそうであるべきである。 • エリック・エヴァンスの書籍では永続化 層とドメイン層の仲介役としてリポジト リパターンが紹介されている。
19.
プレーンオブジェクト • データベースの構造に依存しないプレーンなオブジェクトはテストしや
すく、またテストの実行速度も速い。 • 特に実装言語が Java の場合、それが特定のフレームワークやアーキテ クチャに依存してないことを強調するために POJO ( Plain Old Java Object ) と呼ばれる。 • 他の言語でも同様に POXO ( X は言語の頭文字 ) と呼ぶケースはあ る。 • ドメインモデルを正しく設計してビジネスロジックをそこに隠蔽すると、 コントローラやビューのテストではそれらのモデルをモックやスタブに 差し替えることができ、数多くの分岐をテストしなくてよくなる。
20.
Before & After
出典: 『SQLアンチパターン』P269, P276
21.
ちなみに… 若干古い書籍ですが、「エンタープライズ Rails」という書籍に
models/physical と models/logical を作成して、同様のことを 実現する方法が紹介されているのでご興味 ある人はぜひ。 ※まわし者ではありません。 ※時間なくて詳細を資料に盛り込めません でした、すいません。
22.
最後にちょっと小話。 Rails を使ってる場合の現実的な
落とし所について。
23.
公開メソッドについて • モジュールの
include で見た目の複雑性を下げる。 • コードレビューによるチェックで基底クラスの公開メソッドを使わ ないようにする。
24.
フォーム / サービスオブジェクトの利用
http://a-suenami.hatenablog.com/entry/2013/12/06/092146
25.
まとめ データベースとモデルは区別しましょう。 !
DOA の人とモデルの人は殴りあってないで もっと仲良くしましょう。(マジで)
Download now