SQLアンチパターン の商品レビュー
DB設計・クエリ・アプリ開発におけるSQLアンチパターン集。 アンチパターンの定義、解決策だけでなく、用いても良い場合についても触れている。 25もの例があるので、各フェーズごとに本書を読み返して当てはまるものがないかチェックするようにすると良い。 TDDの和田さん親子が共訳して...
DB設計・クエリ・アプリ開発におけるSQLアンチパターン集。 アンチパターンの定義、解決策だけでなく、用いても良い場合についても触れている。 25もの例があるので、各フェーズごとに本書を読み返して当てはまるものがないかチェックするようにすると良い。 TDDの和田さん親子が共訳してるのでエモい。
Posted by
パターンに対する解決策だけでなく、用いても良いパターンがあるのは、選択肢の幅が広がりよかった。 翻訳にあたり追加された25章は要らない。
Posted by
⬜️感想 ・「あ、これ弊社のシステムでやってるわ」っていうのがちらほら見られた(爆) ただ、どうしてもアンチパターンを使用せざるを得ない場合も多い(特にRDB以外のデータモデルを定義するときは、本に載っている解決策を使用できない場合がある)。そういう場合でも、アンチパターンである...
⬜️感想 ・「あ、これ弊社のシステムでやってるわ」っていうのがちらほら見られた(爆) ただ、どうしてもアンチパターンを使用せざるを得ない場合も多い(特にRDB以外のデータモデルを定義するときは、本に載っている解決策を使用できない場合がある)。そういう場合でも、アンチパターンであることと、想定される問題点をきっちり理解した上で使用したい。 データベース設計者には必読の一冊だと思った。kindleじゃなくて紙本も買っちゃおうかな。 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 ⬜️学び:SQLクエリ設計やテーブル設計の勘所を理解する ・「汎用的な属性」には落とし穴があるぞ! ・属性でメタデータを管理しない ・中間テーブルや従属テーブルで解決できる場面は多い ・インデックス ・外部参照 ・そのIDは本当に必要か ・ファイルをDBの中に置くか、外に置くか ・疑似キーの振り直しをしない ⬜️学び:業務内で特に意識すべきアンチパターンを把握する ・カンマ区切りで複数の値を属性に入れるパターン(ジェイウォーク) →検索性の欠如、更新のしにくさ、バリデーションチェックができない ・同一テーブル内で、自身の親を属性で管理する(ナイーブツリー) →深い階層のカラムを検索しにくい、ノードの削除がしにくい(外部キー制約があるため) ・サブカテゴリを設定する属性を作る(EAV) →必須属性を設定できない、データ型を使用できない、参照整合性を強制できない ・同一属性を複数用意する(マルチカラムアトリビュート) →属性が分かれているため検索しにくい、値の追加削除がしにくい、値のユニーク保証ができない、テーブル設計時に必要な箱の数を知るのは難しい ・テーブルや列を複製して使用する(メタデータドリブル) → 必要なタイミングでの複製を忘れるとエラーが発生する、データの一意性の保証がしにくい、テーブルを跨いだクエリ実行がしにくい、列を追加する際に複製した全てのテーブルに行う必要がある ・ENUMで入力値の制限を加える →ENUMの中身を知るクエリは作るのが難しい、入力可能な値を増やすクエリを作るには現在入力可能値を知る必要がある、入力可能値は削除できない、
Posted by
やはり名著。タイトルから判断するとSQLについてのみ語られていそうな印象を受けるかも知れないが、DB設計に関するトピックなども語られている。 バックエンドのエンジニアなら間違いなく一読しておくべき著書だと思う。
Posted by
前半は特に為になるアンチパターンと解決法の紹介があり、また本質じゃないけどSQLのマイナーな構文を大量に摂取できてよかった。なんとなくでSQLを使ってきた人間は読むべき(私のことだ)。2千円分くらいの価値はある。 過半分(特に後半)は当たり前すぎることにページを割いていてさらっと...
前半は特に為になるアンチパターンと解決法の紹介があり、また本質じゃないけどSQLのマイナーな構文を大量に摂取できてよかった。なんとなくでSQLを使ってきた人間は読むべき(私のことだ)。2千円分くらいの価値はある。 過半分(特に後半)は当たり前すぎることにページを割いていてさらっと読んだ。 新入社員への研修とかに使えそうな本だと思った。
Posted by
- ネタバレ
※このレビューにはネタバレを含みます
データベースの設計においてのアンチパターンにはどのような種類があるのかを検討し始めたときに手に取った書籍です。 25章に分けて、SQL/データベースの設計・調査においてのアンチパターンを目的・アンチパターンの手法・解決策のアプローチの小項目にわけて論じています。 ただ、潔癖にアンチパターンを非難しているわけではなく、許容する状況もあることを認識することができました。 この書籍を論理のハンマーとして実装者を叩くために掲げるのではなく、 そのパターンを使うべきかを検討するハンマーとして、課題に対して叩くように意識して取り組みたいと思いました。 特に、17章で言及されていたアンチパターンは何回か踏んだこともあったので、よくよく自分を自制するのにも繰り返し目を通すようにしたいと思いました。
Posted by
- ネタバレ
※このレビューにはネタバレを含みます
当時よりJSON型などの選択肢が増えているため、何も考えずに本書に従うのではなくちゃんと技術的差分踏まえ検討する必要はある。 とはいえこういう本は他人を説得するために便利。
Posted by
RDBを用いた開発でのアンチパターンが「論理設計/物理設計/クエリ/アプリケーション」の4つの観点から書かれている本。 章の数は多いものの、各章のボリュームが少ない&構成が決まっておりとても読みやすい。 製品開発経験があると、自分の経験と照らし合わせて「分かるわぁ…」とあるあるネ...
RDBを用いた開発でのアンチパターンが「論理設計/物理設計/クエリ/アプリケーション」の4つの観点から書かれている本。 章の数は多いものの、各章のボリュームが少ない&構成が決まっておりとても読みやすい。 製品開発経験があると、自分の経験と照らし合わせて「分かるわぁ…」とあるあるネタを共感できて良い。 より詳細なコメントは下記に記載。 https://fatherofikura.hatenablog.com/entry/book/2019_21_00
Posted by
ある程度データベースを業務で使った人なら「あーあるある」と言いたくなる選りすぐりのパターンがよく含まれている。 しかしながら、「本当にこれが最適解?」と言われているものもあるので、その辺りは注意して読むのが良いかも知れない。 後ろの辺りはSQLインジェクション対策など、わりと一般...
ある程度データベースを業務で使った人なら「あーあるある」と言いたくなる選りすぐりのパターンがよく含まれている。 しかしながら、「本当にこれが最適解?」と言われているものもあるので、その辺りは注意して読むのが良いかも知れない。 後ろの辺りはSQLインジェクション対策など、わりと一般的なものになっている。 最後の25章は日本語版で書き足されたもののようだが、どうにも本書の中では毛色が違うものとなっている。
Posted by
業務で割とよくある実装パターンがアンチパターンであるのだと気づかせてくれた。柔軟なシステムを作るのであれば、この本を読んでアンチパターンを頭に入れておくべき。ただ、ネット上で意見が分かれるパターンもあったので全てをアンチパターンだ!と考えてはいけない。
Posted by