タグ

ブックマーク / qiita.com/tanakahisateru (3)

  • GoF デザインパターン チートシート - Qiita

    ここまで読んでくださった皆さんに、ちょっとしたクリスマスプレゼント。マンガでわかる GoF デザインパターン 23 種チートシートです。これでもうデザインパターンは完全にマスターしましたよ。やったね! (注: ここからはあとがきポエムです) ところでみなさん、せっかくデザインパターンを学んだので、これを使ってプログラムを書こう、チートシートがあるからなんでも書けそうだぞ、なんて思っていませんか。ダメですよ。そんなことしたら 2000 年前後に起きた失敗を繰り返してしまいます。 実は GoF のデザインパターンは、ビジネス的には成功したけど、教育には失敗しました。最初に出版されたに「オブジェクト指向における再利用のための」という肩書が付いていましたが、これが当に良くなかった。 あの頃 (ポール・グレアムが LISP と Ruby を褒めるまで) は、「オブジェクト指向様こそが良い設計のす

    GoF デザインパターン チートシート - Qiita
  • PHP でどのように Exception/RuntimeException/LogicException を使い分けるか - Qiita

    PHP は各種プログラム言語の中でも比較的高級な (表現力が豊かで最適な記述を選ぶのに知識を必要とする) 例外モデルを持っていると言えます。そんな PHP の例外の各区分とその使い分けを整理し、PHP の例外モデルの設計意図を考察したいと思います。 PHP例外の分類 PHP の例外は Java とは異なり、(Error を合わせると) 合計 4 つの区分に分類されます。Java には 2 区分しかありません。(PHP では JavaError に相当するものは発生しません。PHPError は Java では RuntimeException の一種に分類されています) PHP Java

    PHP でどのように Exception/RuntimeException/LogicException を使い分けるか - Qiita
  • Node.jsの人はちゃんとsleepしてください - Qiita

    Node.jsでがんばりすぎると別のプロセスに迷惑だから長いことかかる処理は sleep() みたいなのを挟みながらやりたいなー。 と思ってググった結果がこうですよ。 binding = { sleep: function(s) { var e = new Date().getTime() + (s * 1000); while (new Date().getTime() <= e) { /* do nothing, but burn a lot of CPU while doing so */ /* jshint noempty: false */ } }, だめですね。これCPU使いまくり。 まあ、CPUがいくら発熱してもいいよって思っても、制御が別のタスクに行かないのはアウトです。たとえばこれがサーバのリクエストハンドラに使われてたら、みんな一定秒数遅れてページ表示される、んじゃなく

    Node.jsの人はちゃんとsleepしてください - Qiita
  • 1