【読了】SQLアンチパターン
お久しぶりです、でぶねこです。2019年もすでに2ヶ月がすぎ、平成の終わりも近づいています。次の元号は一体何になるのでしょうね。技術書を読んだので久々にブログを更新します。2019年初記事です。
対象本:SQLアンチパターン
知る人ぞ知るテスト駆動開発の伝道師、和田卓人(@t_wada)さんが監訳された良書です。DBやSQLでやりがちな過ちをまとめてあり、それらに対する解決策を提示してくれています。
- 作者: Bill Karwin,和田卓人,和田省二,児島修
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/01/26
- メディア: 大型本
- 購入: 9人 クリック: 698回
- この商品を含むブログ (46件) を見る
結論:良書です。
とても読みやすく、面白かったです。オライリーの本は他にもいくつか読んだことがありますが、訳がひどかったり、内容が難しかったりして、読みにくい印象が強かったです。しかし、この本の訳に違和感はなく、内容もDBを使ってシステム開発をしたことがある人なら「あーあるある」といったことがほとんどだと思いますので、とても読みやすかったです。25章ありますが休日にまとまった時間を取って2-3日で読み終えることができました。
きっかけ
そもそも数年前に購入していましたが、一度も読まずずっと本棚に立ててありました(おい)。お陰で背表紙が日焼けしていました。。TwitterでフォローしているYama@採用するエンジニア(@yama_92x) さんの以下のツイートを見て、読まねば!と思った次第です。
【面接で挙げると「お、かなり勉強してるな」と思われる技術書4選】
— Yama@採用するエンジニア (@yama_92x) February 15, 2019
☑️ リーダブルコード
☑️ Webを支える技術
☑️ マスタリングTCP/IP
☑️ SQLアンチパターン
現場のエンジニアにとっても「定番」の書籍で、内容も良いです。
この辺りの基礎までやってる方は少ないので、差別化になりますね。
結果:私のアンチぶりはそこそこ。
前職でDBを使う機会が多かったですが、「うわー全滅だー」となるかと思いきや、意外と解決策に記載されていたことを無意識のうちにできており、逆に驚きました。前職の上司や先輩方にはDBやSQLが得意な人が多く、その人達と一緒に作業していたお陰かもしれません。以下に簡単にまとめてみました。
No. | アンチパターン名 | 私の結果 |
---|---|---|
1 | ジェイウォーク(信号無視) | ○:交差テーブルを使用していた |
2 | ナイーブツリー(素朴な木) | (当該経験なし) |
3 | IDリクワイアド(とりあえずID) | ☓:マスタテーブルとかにとりあえずIDつけていた |
4 | キーレスエントリー(外部キー嫌い) | ○:外部キーは全てつけていた |
5 | EAV(エンティティ・アトリビュート・バリュー) | ☓:まさにこの仕様で機能をつくっていた |
6 | ポリモーフィック関連 | (当該経験なし) |
7 | マルチカラムアトリビュート(複数列属性) | ☓:やっていたような。。 |
8 | メタデータトリブル(メタデータ大増殖) | (当該経験なし) |
9 | ラウンディングエラー(丸め誤差) | ○:OracleでNumber型を使用していた |
10 | サーティワンフレーバー(31のフレーバー) | ○:限定する値をデータで指定していた |
11 | ファントムファイル(幻のファイル) | (当該経験なし) |
12 | インデックスショットガン(闇雲ショットガン) | (当該経験無し) |
13 | フィア・オブ・ジ・アンノウン(恐怖のunkown) | ☓:そういうバグを仕込んだ気がする。。 |
14 | アンビギュアスグループ(曖昧なグループ) | ☓:やりがち |
15 | ランダムセレクション | (当該経験なし) |
16 | プアマンズ・サーチエンジン(貧者のサーチエンジン) | (当該経験なし) |
17 | スパゲッティクエリ | ☓:やりがち |
18 | インプリシットカラム(暗黙の列) | ○:調査の時などの一時的に使用するSQL以外はアスタリスクは使用していなかった |
19 | リーダブルパスワード | (当該経験なし) |
20 | SQLインジェクション | ○:プリペアードステートメントを使用していた |
21 | シュードキー・ニートフリーク(擬似キー潔癖症) | ○:欠番に対して特に何もしていなかった |
22 | シー・ノー・エビル(臭いものに蓋) | △:プログラムで構築するSQLは最終的にプリントして確認していたり、例外処理は入れていたが、やりがち |
23 | ディプロマティック・イミュニティ | △:DBについて文書化されていたが、あまりメンテナンスされておらず、自動テストもやっていなかった |
24 | マジックビーンズ(魔法の豆) | ☓:ドメインモデルについて無知なので、できていなかった |
25 | 砂の城 | (当該経験なし。というかインフラよりのことはほとんど関わっていなかった) |
おすすめです。
DBを使ってシステムを開発している方、SQLを日常的に書いているという方はぜひご一読ください。上司やチームメンバーのDBに対する知見やスキルをこの書籍で確認できるかもしれません。もし上司やチームリーダーの方針がアンチパターンだらけだったら、あなたがこの本でDBについて勉強して伝道師となるか、そのチームで学べることはないと見切りをつけ転職を検討するのもありかもしれませんね。。
久々にブログをかけてすっきりしました〜(^ω^)東海地方は今日はあいにくの雨ですが、残る休日をごゆっくりお過ごしください。ではでは。
MacBookProをHighSierraに上げてHomebrewしたらエラーになったお話
一気に夏が到来した三連休ですね。暑い。。。
手持ちのMacBookProのOSバージョンをHighSierraにアップデートしました。ここ1年ぐらいMacをあまり触っていなかったので、連休の機会に色々と調整しようと思った次第です。
アップデートはすんなりいきまして、さてさてPython3の環境構築でもしようかな、と思ってHomebrewしたら、、、
/usr/localに書き込み権限がないだのとエラーが出る。はて?
ググってたらドンピシャな記事があったので、参考にさせていただきました。ハマる人が少なくなると良いな、という思いでこの記事を書きました。
結論としては、「Homebrewを入れ直した方が早い」というドラスティックな解決法でした。 といってもコマンド一発で済みました。 入れ直したあとにhomebrewしたら問題なく動きました。
感謝です!
さてさて、これから少しずつPython君と戯れようと思います。
選択の後で思うこと。
こんにちは。あっ!という間に10月も終盤になりました。寒暖の差が激しくて電車やオフィスにはマスクを付けた人の姿が目立つようになりました。私も水、木あたりは風邪気味で会社に出社していました。これからもっと寒くなっていくでしょうから、体調管理に気をつけましょう。
さて、この2週間は私の人生の今後を考える大事な2週間になりました。悩んで、悩んで、悩み抜きました。悩み過ぎて疲れました。。。それによりブログを書くことも忘れてしまいました(言い訳w)。既に結論は出し、今は進むべき道を見て準備を始めているところです。(悩みの詳細については、落ち着いた頃に書くかもしれませんし、書かないかもしれません。)
この2週間で強く思ったことは、「社会にいる以上色々な人と関わりながら生きていくことが必要だが、出会った人全てを満足させることはでない」、ということです。当たり前のことですが、改めて痛感しました。
私たちは日々大小様々な選択を迫られます。これで良かったのか?と選択後に思わないことがベストですが、思ってしまうこともあるでしょう。人間なのでそこは仕方ありません。
しかし、一度決定したからには後悔の無いよう、選択した道でベストを尽くす。それが、選択しなかった道において関わる予定だった方々への、せめてもの報いとなるはずです。
選択した道で何が待っているかはわかりませんが、何があっても前を向いて進んで行きたいと思います。
抽象的な内容ですみませぬ。それでは良い週末ライフを=)
ブログの所要時間:15分
卒業大学でぶらりと散歩。
東海地方はこの週末とても天気が良かったですね。秋の運動日和、お出かけ日和でしたね。ただ、現在は雨がぱらついているようですね。夜散歩しようと思っていたので残念です。
さて、昨日はひょんなことから私が卒業した大学に散歩に行くことになりました。結構センチメンタルな気持ちになったのでブログとして残しておきたいと思います。完全に日記ですw
久々に卒業大学へ
昨日は名駅で知人とランチを食べた後に特にノープランだったため、私の卒業大学へぶらりと散歩でも行こうか?という話になりました。良い天気で緑も多い大学のため、とても気持ちのよい散歩ができました。
久々に訪れましたが色々な建物が新しくなっておりびっくりしました。よく通った食堂がリニューアルされていたり、昔はなかったところにコンビニがあったり、研究成果が認められた人の記念館が出来ていたり、といった具合です。
そのスタバで飲み物を買いながらゆっくろと構内を散策しました。レポート作成の時によく通った図書館、緑が多くダラダラするのに最適だった図書館前の広場、1,2年生の時に教養科目を受けた共通棟、よく食べに言ったお好み焼き屋さん(潰れてしまってました…)、研究や実験を行った専門棟などなど。その過程で現在では思い出さない色々な人や出来事を思い出し、とても懐かしい気持ちになりました。もう丁度10年ぐらい経ってますね。
懐かしの人々
1年の時に仲が良かったけど他大学の医学部に転入してしまった友達。ほぼ毎日一緒にいたのですが、大学が遠方だったためそれ以来連絡を取ることはしませんでした。立派なお医者さんになっていることを祈ります。
3年生までとても仲が良かったのに、4年生になる時に私の勝手でケンカをしてしまい、その後よそよそしくしか接することしかできなくなってしまった友達。最後の卒業式で、あの時はごめんと謝りましたが、結局それ以来連絡を取ることはありませんでした。彼の一人暮らしの家には急に押しかけて勝手をやらせてもらいました。逆の立場だったら帰れ!と怒っていたと思いますw別の知人から卒業後に教職を目指していたと聞きました。彼なら良い先生になれると思います。
研究室でお世話になった先輩方。実験や先生との人間関係がうまくいかず落ち込んでいた私を、親身になって研究面でも生活面でも支えてくれました。本当に感謝しています。優秀の方々ばかりだったので、大手の企業の研究職に就いたり、大学の教員となったと聞きました。きっとご活躍されていることでしょう。これらの方々も卒業後数回お会いした程度で連絡を取らなくなってしまいました。
つながり
私は出会った人と程よい繋がりを残すことが少し苦手です。とても仲が良く頻繁に連絡を取り合うか、まったく連絡を取らなくなるか、どちらかになることが多いです。勿論、今まで出会った人との全ての繋がりを維持していくことは、よほどマメな方でないと無理だと思いますが、保ちたい人間関係があるのであれば、半年ないし1年に1度は連絡をこちらから取ってみる、ということをした方が良いのでしょうね。
先のブログでも、物事は0より0.1でも続けていくことが大事だと思う、という記事を書きました。人間関係もそうなのだと改めて思いました。この年末にでも、久々に何名か声をかけてみようと考えています。
勿論それで連絡がつかなかったり、予定が中々合わない場合は、その出会いは今後も保てるものではないというサインなのだと思います。その場合は、お互い今はそれぞれ別の方向を見てそれぞれのステージで頑張っているんだと考えて、良い思い出だけをそっと心の中に閉まっておくことにします。
色々なことを思い出し、昨夜はセンチメンタルな気分で過ごしました。これまで出会った人の人生の幸運を祈ると共に、これからも色々な人に新しく出会うんだなと思うと、改めて1つ1つの出会いを大切にしていきたいと思う週末でした。
思い出に浸りながら書いたので長くなってしまいましたね^^; それでは残り少ないですが、良い日曜日の夜をお過ごしください。
・このブログの所要時間:40分
ラジオ体操第一、復活。
こんばんは。今日から秋の3連休ですね。今朝の近鉄名古屋駅の特急窓口にはいつもより多くの人が並んでいました。関西や伊勢神宮に足を伸ばす方が多いようですね。
さて、9月を振り返ると慢性的に疲れが抜けず、休日もいまいち楽しく過ごせない1ヶ月だったな、という思いがありましたので、10月頭に生活週間を少し見直しました。10月4日から以下の項目を生活の中に取り入れています。
朝食前のラジオ体操
3年前に半年ほど毎朝やっていたことをふと思い出しました。あの頃は残業や休日出勤が今より断然多かったのですが、特に体調を崩すこともなく乗り切れました。その頃は「ラジオ体操のおかけだ!」と周囲にも勧めていた記憶がありますが、悲しいかないつの間にかやらなくなってしまいました。。。
慢性的に疲れが取れないのは運動不足も一因だろうと思い、ラジオ体操をもう一度生活の中に取り入れてみようと思い立ちました。10月4日から毎朝着替えた後に、You tubeでラジオ体操第一を行っています。体操を終えた後は心臓が小気味のよい鼓動を刻んでおり、普段はまだ眠っている体や頭がいつもより冴えているように感じました。
しかし、生活や仕事においてまだ劇的な変化は感じるほどではありません。今後2週間、1ヶ月、数ヶ月と続けていき、経過報告をご報告できるように頑張りたいと思います。明日も起きたらやるぜよ。
それではおやすみなさい。良い連休をお過ごしください。
・本記事の所要時間:20分