Joel on Software に、「漏れのある抽象化」という項目がある。 TCPは、下層にある信頼性のないネットワークに対する完全な抽象化を提供しようとしているが、しかし、ときどきネットワークは抽象化から漏れ出て、あなたは、抽象化があなたを守ってくれない何物かの存在を感じ取る。そうしてこれは、私が「漏れのある抽象化の法則」と名付けた法則の一例になっている。 自明ではない抽象化はすべて、程度の差こそあれ、漏れがある。 漏れのある抽象化の法則が問題である理由の1つは、抽象化が、それが意図されているほどには私たちの生活を楽にはしてくれないことにある。誰かをC++プログラマとして鍛えていると、char*とかポインタ演算とかについて教えずに済めばいいのにと思う。すぐにSTLのstringに進むことができたらいいのに。しかしある日、彼らが"foo"+"bar"のようなコードを書いて、とても奇妙なこ
はじめに みなさん、DRY原則はご存知でしょうか? DRY = Don't repeat yourselfの略で「繰り返しを避けること」という意味ですよね。 良いコードを書くための重要かつ基本的な原則なので、みなさんよくご存知だと思います。 ですが、DRY原則はテストコードを書く場合は必ずしも最善にはならない場合があります。 他の人が書いたテストコードを見ていると、テストコードにDRY原則を適用したために、かえって悪いコードになっているケースをときどき見かけます。 この記事ではなぜテストコードをDRYにすると良くないのか、ということを説明します。 追記:タイトルを変更しました @t_wada さんのコメントを受けて、タイトルを見直しました。 「テストコードはDRYを捨ててベタ書きする」 => 「テストコードの期待値はDRYを捨ててベタ書きする」 【注意】この記事は画一的なテストコードの書き
Dockerコンテナ内からホストマシンのルートを取る具体的な方法(あるいは/var/run/docker.sockを晒すことへの注意喚起) 2015/11/04 dockerの -v オプションを使ってホストマシンのディレクトリをマウントするときは、マウントする範囲に注意が必要(特に/var/run/docker.sockをマウントしてはならない)という話を書きます。 元ネタは@lvhが書いてるDon't expose the Docker socket (not even to a container)という記事で、1ヶ月前くらいにHacker Newsで話題になってて知りました。 この元記事で紹介されているいくつかの危険なマウントのパターンに関する情報が、最近dockerを使い始めた自分に有用な情報だったので、自戒も込めて要点を書いておきます。 TL;DR /var/run/docke
注意 本件記事ですが、私の不適切な行動(拾ったスクリプトを検証なく走らせる)が原因です。「dockerは(特に何もしなくとも)危険」との誤解を皆様に与えた点、ご迷惑をおかけいたしました。申し訳ございません。 拡散されている記事を削除するのはさらなる誤解を招きかねないと思いましたので、冒頭に注意を付記しております。以下の記事は、「自分が何してるかをきちんと検証できないとセキュリティホールを生み出す」という意味で参考にして頂ければ幸いです。 追記 Twitterやはてブで言及いただきました皆様、ありがとうございます。 本件はpullしてきたイメージが悪意ある開発者によるものかどうかにかぎらず、不適切な設定をしていると起こり得ます。 ※コメント欄に質問への回答という形で、私がそのときに走らせていたイメージの一覧を挙げておりますが、どのイメージも評判あるものだと思います。 皆様におかれましては「あ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く