最近のトラックバック

2021年7月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
無料ブログはココログ

« 2007年9月 | トップページ | 2007年11月 »

2007.10.15

HttpWebRequestのアホ

 今日ハマったのはSystem.Net.HttpWebRequest。非同期に受信すべくBeginGetResponseを呼ぶものの、常に呼び出したスレッドでコールバックが呼ばれる。何かプロパティの設定があるのかと思っても見つからず。今回はhttpsでの接続でHTTPのPOSTメソッドだったのだが、これが関係あるのかは不明。
 だが、存在しないサイトにアクセスしにいってもDNS解決待ちでBeginGetResponseが悠々とブロックしにょるので呆れるばかり。なんてイモな実装なんだマイクロソフトよ。

 Webで探すと、それっぽい記事は見つかった。でも回答をみても.NET Frameworkの問題だとしか書いてない。

 まあ結論としては、別スレッドをこしらえて自前で同期するか、ThreadPool.QueueUserWorkItemあたりを使うかだな。BeginGetResponseは使用禁止!
 それにしてもこんな基本的(なはず)の問題がWebにも情報が少ないってのは、やっぱり.NETはみんないまいち使っていないのか?

 なおこの前書いた新連載はこちらにて公開となりました。全部読むにはユーザ登録が必要なのでちょっと面倒だけども、こんな感じで毎月ちょこちょこ書いていきます。これくらいなら仕事の合間の息抜きの範囲でできるしね。

2007.10.11

近況、ソースコードサイズの話

 またもやだいぶ久々の更新。ここ最近、自宅の引っ越し(高円寺から神楽坂へ。同棲生活だよん)、Bellagioの作りこみでめちゃくちゃな忙しさだったけれどようやく落ち着きが出てきた。しかし神楽坂はすばらしい。飲み屋の充実ぶりは酒好きにはたまらん。

 それと、MoneyZineというサイトに月1回の連載を持つことになりました。第一回は昨日入校して、来週月曜に公開の運びです。

 Bellagioは終盤に入ったと思ってからが長い。発注系の通信部分はちょっと甘く見ていたな...。ソースコードの規模ベースではもうOmegaChartの2倍をはるかに超えているのだが、削った/当初バージョンでは先送りした機能もたくさんあるのになんでこんなにでかくなるんだろ。

 それが気になって、軽く調査してみることに。過去のバックアップから作成した、Bellagioプロジェクト開始からのソースコード行数のグラフはこちら。

 2月に急増してるのは、Poderosaのフレームワークと結合したから。時間とともにおおむね直線で(月間6000行くらいのペースで)増加してる。
 なお、想定している全機能が完成するころには、このペースだと12~15万行にはなるでしょう。

 さらに、ネットをぶらぶらしてたところ、COCOMO工数試算なるものを発見。これは行数を入れると工数見積もりをしてくれるというものだ。上の数値は空白・コメントを含んだものなので、Poderosa由来のコードものぞいた大体の値として55000行を入力してみると、なんと161.28人月!、期間も17.25か月かかることになっている。
 僕はこれに10か月を投入してここまで達成していて、ほかにコードを書いた人はいないから、常人の16倍の働きをしたことになる。1日半で1人月をこなすペースか。
 この見積もりは9.35人でやることになっているので、それを一人にすることでコミュニケーションコストの削減効果は大きいので自分に16倍の能力があるとは全く思っていないが、世間の標準的な生産性はあまりにも低い。1人月あたり340行なんてふざけてるの?って感覚だけども。

 あと見過ごせないのは、誰かの命令を聞くこともなく、無茶な要求を拒否する自由もあって、価値のあるものを作っている感触もあって、なおかつそれなりのお金ももらえているということだ。これが精神的にはプラスに作用してやる気が出てくるという効果も見過ごせない。興味無いテーマのソフトを、あれこれ指図受けながらいやいや作ってたらそりゃ生産性はガタ落ちだろう。

 まあソフトウェアの工数見積もりほどいい加減なものもこの世にないので、話半分ではありますがね。

« 2007年9月 | トップページ | 2007年11月 »