White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

Code Reading:10

聴いてきた。heapqとpythonのtest手法のお話。
ちょっと細かい感想はtwitterに書いてたので翌朝にでも上げるとして、おおざっぱな感想を。


heapqは配列単体でツリー構造を作るにはよさげですね。heapqの実装ってpythonなのかしら?pythonのtestはいずれやってみたいとは思ってるのですが、一番テストしたいのがhttpのpostとかだからなぁ。。しかもtwitter側の挙動で反応変わるし。そこが面倒い。むしろそれ以外をテストしろって話か。


あとコード書く気が無ければソースでも読んでろって話ですね。。

ログ

  • heapqの実装
  • anacondaのソース。次へを押すとfrom * importをexecして動的に画面オブジェクトを作ってる
  • firstboot:なんで子プロセス作った後に待つのか不思議
  • ヒープとは。a[k]<a[2k+1] and a[k]<[2k+2]になる配列
  • ランダム探索には向かない。スケジューラ等に向いてる
  • heapsortについて
  • heapq python標準ライブラリ 2.3新規追加 最小ヒープ
  • heapqの使い方。heappush, heapify, heappop, heapreplace, nsmallest/nlargest
  • http://bit.ly/1464B5 デモ
  • heapq使ったもの:twisted
  • twisted モジュール ルーカスフィルム
  • pymotwの紹介
  • heapの最大の特徴ってツリーを配列単体で表せる、ってことだっけ?
  • 標準ライブラリで学ぶpythonのテスト手法
  • pythonの標準モジュール:testのカバレッジ高い
  • >テストで欠陥が存在しないことは証明できない
  • 単体テスト(UnitTest):モジュール、メソッド単位のテスト
  • モジュール→関数
  • 正常な引数を与えて正しい結果が帰ってくるか 異常になる引数を与えて異常になる結果が帰ってくるか
  • テストの利点:開発と並行してバグ発見できる、プログラムの修正、リファクタリングがしやすくなる
  • 品質管理を自動化できる
  • pythonのテスト手法:doctest, UnitTest
  • doctest, 書きやすいとは思うんだけど、ソース中に書くのがなあ
  • CookieLibのソース
  • あとnetwork周りでテストするとき、ハード系で正常/異常が分かれるんだけど、どう記述すんだろ
  • DOCTESTの欠点:冗長、クラスのテストに弱い、複雑な(thread,network,時間で結果が変わる,オブジェクト生成、環境整備を伴うもの)に向かない
  • Lib/test/test_cookie.pyにユニットテスト
  • unittest。unittest.TestCaseを継承。test_なんとかで始まるメソッドがテストになる
  • より複雑な例:sets.py
  • 網羅率の測定:メソッド、モジュール、条件分岐毎のテスト
  • テストを始めるには:doctestから始める、カバレッジ100%目指さない、他のテストコードを読む
  • ツール、テスティングフレームワークを使う。nose,pytest
  • Q:ネットワークの相手が環境変わるときのテストは? A:予め環境を作る必要あり
  • テストが書きづらい:リファクタリングのサイン
  • Q:doctestは今後どういう位置づけになるの? A:標準モジュールでは使われない
  • カバレッジを上げる方法:テストを先に書く
  • Jtestとかのpython版みたいなのあるのかなぁ。