冷やし中華はてなブログはじめました。
はてなブログはじめました
はてなブログ に移行しました。
おそらくもうこちらへの記事の追加はないです。
MultiServer
複数の port で待ち受けられるプログラムを簡単に書く方法を考えてみた。
続きを読む続・unable to remap が rebase で解決しなかった時の話
phozzil (1)
探してみたら IO_Bit というのもありました。
string をがっつり渡して、integer などに変換するインタフェースっぽい。resource から string にするまでは関与しないということらしい。
以下、これらを踏まえてのインタフェースについての考察を述べてみる。
string ≒ byte[] ?
PHP は基本的に resource からの入出力データインタフェースが string である。そのため、バイナリデータを扱うためには string に対して pack / unpack や ord を使うのが定石っぽい。
PHP の文字列は言語仕様を見ると Java における byte[] に近い *1 とは言え、ストリームからのデータが string を経由することを利用者が意識しないといけないのはあんまりスマートじゃない気がするため、resource を渡したオブジェクトから直接 readXXX したら、その型のデータで得られるインタフェースが望ましいのではないかと思っている。(つまり java.io っぽいやつ)
GX-W70HV(B) を買ってみた
去年の年末の話なんですけどね。(;^ω^)
ONKYO WAVIO ワイヤレススピーカーシステム DLNA対応 15W+15W ブラック GX-W70HV(B)
- 出版社/メーカー: オンキヨー
- 発売日: 2011/12/03
- メディア: エレクトロニクス
- クリック: 12回
- この商品を含むブログ (3件) を見る
phozzil (0)
そろそろなんかちゃんとしたコードを公開しないとプログラマとして淘汰されるなあと強迫観念みたいなものを感じてる今日この頃です。
ここ一年くらい業務でログ集計系のコードを書くことが多く、その際に毎回、ログをパーズするためのプリミティブなファイルシステム関数の一連のコードをおまじないのようにコピペすることに抵抗があったため、java.io みたいなクラス群にまとめられないかなと思った。
既にこの要求を満たすものがあれば、それを使えばいいわけであるため、調べてみると当然ながら既に同じようなことを考えている人はいた。
前者はまさに java.io のインタフェースに沿っているなあという印象で、後者はバイナリデータ周りの実装がきちんと整っている。ただし、いずれも名前空間を使っていない。
とりあえずこの 2 つのいいとこどりをしたものを書いてみるというところから始めてみることにしてみようと思う。
ちなみに repo はつくってあるけど、中身はまだない。
可読性
レビューで
$msg = $flag ? 'hoge(foo)' : 'hoge(bar)';
のようなコードを見て、まとめたいなあと思ったので、
$msg = sprintf('hoge(%s)', $flag ? 'foo' : 'bar');
と指摘したら、かえって可読性が落ちた。
何でもかんでもまとめるのは良くないなと反省した。