2017/07/10 SQLアンチパターンNight Part2 https://connpass.com/event/59946/
![State of SQL Antipatterns in 2017](https://cdn-ak-scissors.b.st-hatena.com/image/square/4d19fa3b8d135ccf20d949d14f7d3e0a397dff92/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fed552b8d40b94cd49135be263f4ba94c%2Fslide_0.jpg%3F8282563)
2017/07/10 SQLアンチパターンNight Part2 https://connpass.com/event/59946/
おはこんばんちは。 がんばってブログを書きたいので、ちょうどいま読んでいるSQLアンチパターンという本を、噛み砕いて離乳食くらいの柔らかさにして晒してみます。すでに読んだ人はいますぐそっ閉じ、まだ読んでない人は、こちらも同様にそっ閉じしてお風呂に入ってすぐ寝ましょう。 SQLアンチパターン 作者: Bill Karwin,和田卓人,和田省二,児島修出版社/メーカー: オライリージャパン発売日: 2013/01/26メディア: 大型本購入: 9人 クリック: 698回この商品を含むブログ (45件) を見る かなり圧倒的に当たり前のことしか書いてないんですけど、そういう本こそが良書だっておじいちゃんの息子の息子が言ってた気がします。 アンチパターンが全部で25個、カッチョイイタイトルとともに紹介されています。「目的」「アンチパターン」「解決策」をそれぞれ示します。本書だと、「アンとパターンを
な、なるほど...!? いや、みんなちょっと誤解してるんじゃないか? よーし、お父さん、みんながSTIを使いたくなるようにちょっと頑張っちゃうぞ! STIとは STIは、単一の継承階層に所属するクラス群を、ただひとつのテーブルを使って永続化する手法です。 PofEAA Railsのドキュメントを漁ると、次のような記述が見つかります。 http://api.rubyonrails.org/classes/ActiveRecord/Inheritance.html Note, all the attributes for all the cases are kept in the same table. Read more: www.martinfowler.com/eaaCatalog/singleTableInheritance.html このリンク先は、リファクタリングで有名なMarti
概要 コピペコードが増えがちなサンプルアプリケーションの設計を例にとって、 STI(単一テーブル継承)とメタプログラミングでDRY(重複排除)してみる。 題材 ユーザが保持している楽曲をジャンルごとに管理するようなアプリケーション。 ユーザページでは、ジャンル別に登録曲を一覧(もっと言うとCRUD)できる。 こんなイメージですね。 kidachi_さん あなたの登録曲一覧 Rock ほげRock ふがRock Pops 未登録です。 Jazz ふーJazz ばーJazz 何も考えないで作ると、rock/pops/jazzそれぞれのモデル、ビュー、コントローラに 似たような記述・コピペが増えそうな予感を感じて頂けたでしょうか。 では、それを防ぐために、まずはSTIから。 (※追記) 実は上記だけの要件であれば userテーブル、musicテーブル、genreテーブルのみを用意して user
システムで扱われるデータの設計をしていると、「細部は異なるけれども、共通する部分を持つ」一連のバリエーションと呼べるものが出てくることが多々あります。 例えば、ある物販システムが扱う商品に、「食品」「衣料」「書籍」という区分があったとして、それぞれが次のようなデータ構造を持つとしましょう。 食品 商品ID, 名称, 取扱業者ID, 価格, 内容量, 消費期限, 品切れフラグ 衣料 商品ID, 名称, 取扱業者ID, 価格, サイズ下限, サイズ上限, 品切れフラグ 書籍 商品ID, 名称, 著者名, ISBN, 取扱業者ID, 価格, 品切れフラグ こうしたデータ型をオブジェクト指向プログラミング言語で扱う場合、まず共通する属性をまとめて「商品」を表す抽象クラスとして定義し、これを継承して「食品」「衣料」「書籍」を表す具象クラスを定義するのが一般的なやり方です。 //商品 class Pr
この記事は TIS Advent Calendar 2017 16 日目の記事です。 Clojure を仕事で使い始めてから三年が経ちました。未だに学びが多いですが、年数的には中堅 Clojurian と言える域に達してしまったので、自分なりの Clojure 観を整理したいと思い立ちました。自分にとって Clojure の最大の魅力は高速開発です。そしてそれは Clojure 自体の習熟難度と秤にかけても十分魅力的だという話を書きます。 どちらかと言えば Clojure 勉強し始めで、このまま進んでいいか迷っている人向けの内容です。 この記事は2017年時点での内容です。更新版・続編 → キメる Clojure チーム開発 そもそも Clojure とは 時は 2053 年、Skynet が人類を虐げる世界。エージェント Meier は Skynet のログにアクセスすることに成功し、S
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く