タグ

2013年7月20日のブックマーク (4件)

  • PHPで例外ベースのクラスを作る時に気をつけること « nia.note

    PHPでオブジェクティブ指向に基づいたコーディングを行う際に、クラスを例外ベースで書くか、エラーベースで書くか、私は良く悩んでいます。 というのも、PHPにデフォルトで導入されている関数の多くはPHP4の時代から存在しており、ほとんどがエラーベースになっているため、他のPHPプログラマが読んだ時に理解しやすいのです。 エラーベースのプログラムの方がコードが簡潔になることや、PHPにはFinallyブロックが存在しないことも、考えるべき点の一つです。また、オブジェクティブ指向のメリットとして挙げられるクラス単位でのコードの再利用もネックになります。例外ベースで書かれたクラスは、どのようなケースでどのような例外が投げられるのかを網羅したドキュメントを必要とします。 ここでは、「ソースコードだけで全てが理解できる」ことを前提に、PHPで例外ベースのクラスを作る時に気をつけることを書いてみたいと思

    oppara
    oppara 2013/07/20
    PHPで例外ベースのクラスを作る時に気をつけること « nia.note
  • MongoDBのDateで検索する際の落とし穴

    MongoDbはISODateとして残る。 javascriptのnew ISODate()で登録すると GMTで登録される。 #参考にGMTとUSTはグリニッジ標準時をご覧ください。 これをphpのstrtotime()とかで日付を取得して検索すると GMTとJSTの+9時間の時差が出る。 参考にphp.iniに「date.timezone = Asia/Tokyo」があった。 例) (1) new ISODate(2013-01-02 01:00:00) で登録 GMTで登録される。すなわち JST 2013-01-01 16:00:00である。 (2) 以下のようにphpで検索条件を作る。 $start_date = new MongoDate(strtotime('2013-01-02 00:00:00')); array("_id" => array ('$gte'=>$star

    oppara
    oppara 2013/07/20
    Let's try Mongodb.: MongoDBのDateで検索する際の落とし穴
  • 速報 Packerでさまざまな仮想マシンのテンプレートを作成する

    続報で、VagrantのBoxの作り方について書きました。こちら Vagrantの作者であるHashimotoさんが新たにPackerというツールをリリースした(昨晩!)ので速攻ご紹介。 このツールは、Amazon EC2のAMIやVirtualBoxやVMware用のOSのイメージを一貫性のあるインターフェイスで簡単に作ってくれるものです!たとえばVagrantの場合は以前はPatrickさんが作成したVeeweeを使うことが定番だったのですが、今後はそれに変わるものになってくるかもしれません。 (現時点はまだバージョン0.1なのでこれからどんどん良くなると思います!) インストールhttp://www.packer.io/downloads.html からビルド済みのファイルを入手します。もしくは自分でビルドすることも可能です(ビルドにはgoなどのツールが必要です)。 ファイルはzip

    速報 Packerでさまざまな仮想マシンのテンプレートを作成する
    oppara
    oppara 2013/07/20
    Packerでさまざまな仮想マシンのテンプレートを作成する | http://t.co/IbCj90kHIR
  • 初めてのChefの教室 (v1.2 Chef11対応版)

    *OTUBMM $ curl -L https://www.opscode.com/chef/ install.sh | sudo bash $ chef-solo -v Chef: 11.4.0 �PQU�ʹඞཁͳ3VCZͳͲΛશͯΠϯετʔϧ HFNͰΠϯετʔϧ͸ݹ͍ํ๏

    初めてのChefの教室 (v1.2 Chef11対応版)
    oppara
    oppara 2013/07/20
    初めてのChefの教室 (v1.2 Chef11対応版) // Speaker Deck