|goに標準でついてるtemplateパッケージは便利なのだけど、マニュアルが長すぎるのでよく使う機能だけまとめておく。通常はmapのキーかstructのメンバを.Keyのようにドット付きで指定するとでその値が展開される。value>という文字列が出力されるが、structではエラーになる。reference"}).のようにドットだけを渡すと変数それ自体が展開される。"World")関数呼び出し関数はシェルのパイプのように連結させて呼びだせる。テンプレート内で呼ぶ関数はtemplate.FuncMapで渡す。Actionをつかえばよい。試してみたらなかなかよかったので紹介します。目次goconveyとはクイックスタートテストを書くターミナルから自動テストtipsまとめその他参考goconveyとはgopherのためのかっこいいテストツールです。以下のような特徴があります。UIアクセスすると、goconveyを起動したディレクトリ以下のファイルの更新を自動的に検知してテストを起動してくれます。UIの右上にあるベルのアイコンをクリックすると、デスクトップ通知も有効にできます。Textで直接そこにジャンプできます。1特定のディレクトリ以下のテストを実行しないようにすることもできます。テストに時間がかかるような大きなプロジェクトでも適当に必要なところだけ有効にできるので、ストレスがたまりにくいと思います。goconveyのテスティングフレームワークをつかうとさらにわかりやすい結果を出力できます。UIから文章を入力することでテストコードをある程度自動生成することもできます。BDDスタイルはあんまり得意ではないので詳細は省略します。ターミナルから自動テストブラウザなんて立ちあげたくない硬派な人向けにターミナルでファイル監視してテストを起動できるスクリプトも提供されています。requestだしたらすぐマージしてくれました。(例えば、$GOPATH/src/github.com/yourname/packagename)まとめgoconveyを簡単に紹介しました。UIだけでも試す価値はあると思います。ビデオでの解説もあります。ぶっちゃけこの記事を読むより動画を見たほうが早いです。↩ginkgoやtestifyのテストも実行できます。|http://www.huffingtonpost.jp/2013/11/10/cancer-test_n_4252707.html高校生がすい臓がん発見の画期的方法を開発したという記事が話題になってます。この検査法の改善が統計的にどういう意味をもつのか実際にベイズの定理をつかって計算してみます。ここでは以下のような問題を考えることとします。あるガン検査法は、被験者ががんの場合はp1の確率で陽性になり、被験者ががんでなければp2の確率で陰性になります。被験者ががん患者である確率がp3のとき、がん患者が検査の結果実際に陽性だと判定される確率を求めなさい。Xを被検査者はガンであるという事象、Yを検査の結果が被検査者はガンであると示す事象として、それぞれ以下のように置き換えることができます。Aが起こらないという事象(補事象)を表します。検査結果が真陽性となる確率と偽陰性となる確率を足したものなので、また、なので、となります。以上の結果に実際に値をあてはめてみます。p2をひとまとめに誤検出の確率と仮定してp1=p2=qおくと、P(Y|X)が70%となるようなqは、q=0.99990となります。このことから、99.99%の精度をもつ検出方法でも実際には30%も見逃してしまうということがわかります。q'=1-(1-q)/400とおいてがん患者が検査の結果実際に陽性だと判定される確率を再度計算するとP(Y|X)=0.99892となります。30%見逃していたのが1%程度まで減ったということです。これはすばらしい成果といえるのではないでしょうか。最初は30%も見逃すとかどんなひどい検査だったんだ、などと思ってしまうかもしれませんが、上記の計算で実際はそれほど単純な話ではないことがわかると思います。↩この問題は統計学入門の練習問題4.7を参考にしています。