2004年06月11日

プログラムを作るって難しい

Posted by nene2001 at 13:43 / Tag(Edit): / 1 Comments: Post / View / 0 TrackBack このエントリーを含むはてなブックマーク

Location::GeoToolのOO(オブジェクト指向)化バージョンを作っている。
が、本当にプログラムを作るのって難しい。

単に経緯度フォーマット変換・測地系変換・距離方位計算プログラムでも、どこまで再利用しやすく作るかというのを追求し出したら、ああでもないこうでもないときりがない。
特にOO化では、設計に思想が必要になってくるし、思想がちょっとずれてれば極度に「使えない」モジュールになっちゃうし…。

今はPerlで全部内部計算してるわけだけど、これじゃ遅くて使えん or もっと正確な計算アルゴリズムを、というような人がいた場合に、各計算エンジンだけ内部で差し替えられるようにしたり、
同じように対応している測地系や経緯度フォーマットも、データを動的に追加すればさくっと対応できるようにしたりしたいんだけど、
その辺を追求しようとするとああでもないこうでもない、となっちゃう。
単に技術的に可/不可の問題だけでなくて、後方互換の問題まで考えたりすると、この機能入れるのにこうしちゃうと後方互換なくなっちゃうなあ、今のうちならたいしてこのモジュール使ってる奴いないから今のうちに全部換えちゃうか、いやどうせ将来に渡って誰もほとんど使わねーよ、今それに拘泥してたらいつまでたってもFIXできねえから、もっといい方法考えてから実装したら、いやいやむしろ……てな感じ。

OO化でも、今の実装は、Jcodeあたりの発想を真似てて、
$obj->datum_wgs84->format_mapion->array
とかでデータ取るようにしているんだけど、単に
$obj->getdata('wgs84','mapion')
でいいんじゃないの?いや、それじゃ測地系とフォーマット片方だけ指定したい時どうするのよ、ハッシュリファレンスで渡す?それも格好悪いなあ
とか思ったり、

測地系計算やフォーマット変換も誤差の出る計算なので、いちいち変換してると
$obj->datum_wgs84->format_mapion->array

$obj->format_mapion->datum_wgs84->array
の間で同じになるはずの値が変わってくるとかの可能性も出てくる。
そこで、今はどれだけ変換のネストが深くなっても、オリジナルのデータを保持して、そこから最終のデータ出力メソッドが実行されたときに、まとめて変換するようにしている。
でも、一方で、別開発として
Class::DBIあたりのサブクラスで位置情報に関連したデータ構造を持ったデータベーステーブル(GISデータベースではないもの)上で、位置ベースの汎用検索とかを実装したモジュールを作りたいと思ってるんだけど、
それとLocation::GeoToolの連携を考えたりした場合、クラスとしてデフォルトの測地系・フォーマットを持っていて、どんな値を入れても自動で即座にデフォルトの測地系・フォーマットに変換されて、Class::DBIを通じてデータベースにさくっと突っ込める、という形にした方がスマートかなと考えたり…。

考えども考えども、悩みは尽きぬ。
問題を先送りにしちゃうと後で後方互換をなくさざるを得なかったり、もしくは後方互換を保つためにえらい苦労をしないといけなくなったりしてしまう。
体に不安を抱えているだけに後で苦労が増えるのがとにかく怖いので、最初に考えすぎて今度はなかなか動けなくなってしまう。

誰か相談…ていうかね、別にそんな深刻な話ではなくて軽く「これどうかねえ」レベルで意見を聞ける同レベル以上の人間が一人そばにいるだけで、全然違うんだけどなあ…。
ないものねだりしてもしょうがないけど。

Related query words in Google & Yahoo
Related Books from Amazon
Trackback to this entry
TrackBack URL :
Trackbacks
トラックバックはありません。
Comments

ども、前にコメントもらった七転八起ゴロ寝のBoです。
まだ、見てないんですけど。なんだか凄く役立ちそうなもの作ってますね!!
自分も現在、地図関係をいじってるんですっごく期待してます。
ボクのレベルだと、モジュール製作までうんぬん言えないんですけど。
陰ながら応援してますので、がんばってください。
ってか、ネネさんは凄いなぁ。自分は自分のアプリを作るだけで精一杯なのに
何か、草の根GIS的なものの底上げを目指してるみたいで!!
ともかく、がんばってください。

Posted by: Bo at 2004年06月11日 23:58
Post a comment












Remember personal info? 
2004年06月
Su Mo Tu We Th Fr Sa
    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      

About Me

Navigation

Search
Google
Web
kokogiko.net
Archives
Recent Entries
Recent Comments
Recent Trackbacks
Generic Viagra(Generic Viagra)
Google MapsライセンスとgoSVGによるオープンソースGIS生き残り戦略
Adobe もクラウドをはじめた!各社のクラウドサービスの特徴は?(ラボブログ)
Amazon EC2のランニングコストはそんなに安くなかった
「ここギコ!」の人が涙も出ないような状況になっていることについて(僕だけが幸せになればいいのに。)
人員がクラスタ化できている職場と言うのはうらやましい そろそろ限界です
GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(ここギコ!)
GoogleMapsと連動したいなら幾何データ型よりPostGIS
GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(ここギコ!)
「ジオメディアサミット関西」が開催されます。
GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(ここギコ!)
MySQL4.1以降での空間情報の扱い方
なんか天から2兆円降ってくるらしいので みんな思い思いのところに募金なり寄付するのはどうか(ここギコ!)
「冷静に」「熱く」「マジ反論」でこの内容はある意味すごい
「亡びつつある日本の言語」と「日本語」、そして「普遍語」につらつら思うこと(ここギコ!)
国連人権委、アイヌ・琉球文化の保護を日本に勧告
「亡びつつある日本の言語」と「日本語」、そして「普遍語」につらつら思うこと(ここギコ!)
政治と祭祀が不可分と考えるなら、全ての祭祀を引き受けるのが筋
「亡びつつある日本の言語」と「日本語」、そして「普遍語」につらつら思うこと(ここギコ!)
Googleさんの技術でアイヌ語訳ができないだろうか
Hatena bookmarked
My del.icio.us

Banners

Syndication
Powered by
Get it!!