ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

2007年~2011年ごろまで はてなダイアリー に書いてた記事を引っ越してきました。

OSC 2008 Fallに行ってきました。

興味のある所だけ覗いてきたのでメモ。

10/3 : symfonyアプリのベンチマーク

  • アクセス数は期待値でも良いので予め決めておくと良い。リクエスト/秒(分)とレスポンスタイム。
  • CPU数1, 2, 4位まではリニアにスケールする。8になると、カーネルの設定が関係してくるのか倍にはならなくなった。
  • symfonyはロードするファイルが多い為か、APCの導入は効果が高い。
    • 但し、APCPHPファイルのパース部分を担当する為、ロジックが重いなどの部分には効果が薄い。
  • symfonyのキャッシュ機能は、適切に使うとかなり効果が高い。
    • キャッシュを適用した部分はPHPの処理をスキップしたのと同等なので、素のPHPやHTMLと変わらなくなる。
  • JMeterで実験する時は、スレッド数を1から徐々に上げていく。
  • DBサーバ側の負荷が高いと、不安定になる。
  • テストマシンの性能にも注意!テストマシン側がCPU100%とか行ってしまうと、正確な値とは言えない(一杯一杯で動いている為)。

ちょうど先日、CakePHP1.2RCと1.1、さらにsymfony1.1とでのベンチマーク結果がPHP勉強会で発表された事もあり、個人的にはかなり興味深い話でした。またサンプルとはいえ、実際の値を見れた事も良かったです。

10/3 : OSSライセンスとコンプライアンス

  • 組込NW機器などでライセンス違反の訴訟が最近増え始めている。
  • ソフトウェアにおける「使用」と「利用」の違い。
    • 「使用」はコンピュータ上で実行するだけ。このとき出てくるのがEULAとか。OSSの場合はこれは自由に実行できる。
    • 「利用」はソースを弄ったり他の自作ソフトに結合したりすること。ここでOSSライセンスが出てくる。
    • 但しインストールについては複製権の行使として「利用」とみなされるかグレーゾーンらしい。
  • BSD系ライセンス:BSD, OpenSSL, APL2.0, zlib, MITライセンスなど。
    • バイナリのみ頒布OK。但し、ドキュメントなどユーザーに見えるところに元のライセンスとかcopyrightとか。
    • APL2.0の場合は「NOTICE」ファイルがあればそれも含める。忘れやすいらしい。
  • MPL*1, LGPL, GPL系ライセンス:頒布にあたり、ソース開示が必要。

受発注の関係でも注意が必要で、発注側がOSSを利用する事を知っていて、OSSライセンスの性質も把握していれば良いのですが、受注側が発注には内緒でOSSを組み込んだ場合が一番リスクが高い、とのこと。
これからのご時世、組込NW機器やパッケージ頒布形態のソフトウェア販売では特に注意が必要なようです。

10/4 : テスト駆動開発

ディノにまで乗り込んでさんざんいちゃもんつけまくったかいがあって、「設計」と「テスト」の対象範囲を明確にしてくれたので良かったと思います。どうしてもそこの意識のズレが結構違和感として後を引くと思っていましたので。
内容についてはもくもく会で伺ったお話の再確認でした。

  • 「設計」って、コーディング時もやってます。クラス名、メソッド名、戻り値や引数を考えるのを、TDDでは「設計」として取り扱います。
  • 「テスト」はTDDでは主に単体テストを対象とします。
  • 「レッド・グリーン・リファクタリング」のマントラ
  • DocTestでサンプル。

*1:Mozilla Public License