「失敗から学ぶRDBの正しい歩き方」を読んだ

失敗から学ぶRDBの正しい歩き方 (Software Design plus)

失敗から学ぶRDBの正しい歩き方 (Software Design plus)

  • 仕事でちょくちょく MySQL でインデックス貼ったり、クエリ見直していたのでちょうど良い (めちゃくちゃよい) 一冊だった
  • ORDER BY 狙いのキーの話はよく仕事でも思い出してやってるやーつ
  • DB設計は、事業の設計にも関係しているし、未来を予測できる能力と経験がものを言う感じはする
  • 目の前に delete_flag をなくしたいものがあるが、集計のやり方も見直さなければならないのでなかなか大変そうだ
  • トピック(リアルすぎる失敗体験)ごとに、より詳しい書籍の紹介やオンラインのリンクをたくさん載せてくれていたのでそっちも確認してみよう
  • PostgreSQL は触ったことないけど、つぎなんか作るときは使ってみよかな

started_at ってカラム

問題

最近、あるテーブルに started_at って名前のカラムをつけてしまったんだけど、あまりよくないっぽい。(あまり深く考えずに、created_at とか同様に過去分詞_atでいいだろと思って命名した。)

解説

startend は自動詞にも他動詞にもなれるんだけども、例えば Campaigns というテーブルに対して、start した datetime を格納するためのカラムを追加するときは、Campaign が主語になり、「キャンペーンが始まる」という意味の自動詞にするのが自然とのこと。こうすると、自然言語では「The Campaign starts at 9 PM today.」とかなるので、starts_at命名するのが自然っぽい。

現場

インターネット で検索してみたら、あるあるなのかなぁ 〜

他にも

認証の日時を記録するようなとき、

  • Authentication : 認証
    • created_at : 発行された日時
    • updated_at : 変更された日時
    • ○○_at : 失効する日時

こういうときは、expires_at が良いっぽい。

  • expires が created_at の後に起きるのに過去形じゃない
  • created_at, updated_at と合わせて expired_at にしたほうがよい

という意見もあるみたいだけども、クラス名と動詞との主従関係で考えると、expire は自動詞であり、Authentication は期限するものであって期限切れされるものではない。という理由らしい。時間的制約では考えない方がよいとのこと。

この指摘

は、この本に書いてあったことです。

問題解決力とコーディング力を鍛える 英語のいろは

問題解決力とコーディング力を鍛える 英語のいろは

他にも、網羅的に開発時にぶつかる英語で困ることをいろいろ学べまっす。サンプルコードも Ruby なのがわかりやすいです。おすすめでっす。

Google Pixel 3 を買った

f:id:whitech0c0late:20190302185414j:plain
Google Pixel 3

iPhoneAndroid端末を交互に買うという自分ルールで、Google Pixel 3 を(安くなってることもあって)購入した。

まだ、夜景は撮っていない。

Android 久しぶりだけど、なんとなくヨサソウ 👍

カレンダーで隣の月の余りの日を表示できるようにした

これで

ゴールデンウェークのように、月をまたぐ連休の確認もしやすくなった 🎉(はず)

Image from Gyazo

diff

github.com

github.com

感想

  • カレンダーで隣の月の余りの日って、英語でなんて言うんだ
  • スマホ対応したいけど、どうやればいいんだろう (media query とかでいい感じにできるのか)

合わせて読みたい

whitech0c0late.hatenablog.com