Architect Note


しがないPHPerのブログ

CoffeeScriptで竹内関数を解く

竹内関数といえばベンチマークによく使われる関数です。普通に書くと爆発的な回数の関数呼び出しが発生します。 function tarai(x, y, z) { if (x <= y) { return y; } else { return tarai( tarai(x - 1, y, z), tarai(y - 1, z, x), tarai(z - 1, x, y) ); }..


JavaScriptにRuby風のnewメソッドを加える

JavaScriptのオブジェクト指向はクラスベースの皮をかぶったプロトタイプベースです。機能的には十分なのですが、すっきり書く方法が公式に用意されていないので苦労します。一年前に、newを封印してJavaScriptでオブジェクト指向するなんて記事を書いたこともありました。 Rubyではnewは演算子でなくメソッドです。これをインスパイヤしてJavaScriptもnewメソッドを加えてみると、プロトタイプ的継承もすっきり書けるのではないかと思い、試してみました。ECM..


PHPでRSSを読むならXML_Builderにおまかせ!

RSSをPHPで読み込む、というよくある処理。PHP5ならSimpleXMLという超簡単にXMLが扱えるクラスがあるので、これを使うと楽です。 var_dump( simplexml_load_file( 'http://blog.tojiru.net/index.rdf' ) ); object(SimpleXMLElement)#1 (2) { ["channel"]=> object(..


PHPでXMLを生成するためのライブラリを公開しました

DOMのラッパーを書きました。XML生成コードを短くできます。


規模別PHPUnitでのテストの書き方いろいろ

最近になってPHPUnitをちゃんと使ってユニットテストを書くようになってきたのですが、まだまだTipsが足りないと感じます。個人的に実践している書き方をいくつか並べてみます。 追記:最初、シェバングと書いていましたが、オプションを渡せる数が決まっていたりOSによっては動かなかったりとあまり便利でないことがわかりました。。phpunit.xmlを書いた方がいいかも。 ちょっとしたテスト → シェルスクリプト化する PHPUnitは高機能なのですが、いかんせん..