2009/11/07
久々(?)にプログラミング談義
最近思ったプログラミングの真理。
列挙子やdefineなどのシンボルに対して、
名前を変えただけのラッパーを作ると、
管理が大変になるだけでメリット無
関数のラッパーは必要な分だけあるのが理想的で、移植性やカスタマイズ性を向上させる効果がありますが、シンボルのラッパーは、移植性やカスタマイズ性を逆に減退させてしまうことがあります。むしろ予期せぬバグになる恐れすらあります。
私が使っている外部モジュールに、
int func_test( A a )
という関数があったします。Aは外部モジュールで定義されている列挙子型とします。
このとき、私のモジュールに、
int my_func_test( B b )
{
/* bをaに置き換えたり、なんかいろいろしたり・・・ */
func_test(a);
/* なんかいろいろ */
return res;
}
というようなラッパー用関数を作成したとします。また、Bは列挙子型で、Aのラッパーとします。
さて、外部モジュールに変更が入って、Aの中身が変化しました。具体的には、列挙子型のメンバーが減りました。このとき、どうなるでしょうか? その変更にあわせて、私がBを変更するのを忘れていたら・・・致命的なバグになる可能性が生じます。私がやるべきことは、Aの変更にあわせてBを変更することと、上記のbをaに置き換えている部分を適切に変更することです。それをしないとどんな動作になるかわかったものではありません。
で、こういった変更が発生するのはどういうときか、なのですが、同じプロジェクトの中ではあまり発生しません。しかし、別のプロジェクトに移植するときに往々にして起こりえます。ハードが新しくなれば、そのハードのドライバーモジュールが"微妙に違う"のは当たり前です。前のハードでは対応していた列挙子が、今回のハードでは非対応となって削除されている、なんてことが起こるわけです。
ここで、私がもし大量のラッパー列挙子を抱えていた場合、そのような修正をミスなく全てやり尽くす必要があるわけです。
できるわけねー。
まぁ、私の担当部分は幸いなかなかに上手くできていて、リネームだけの無駄なラッパー列挙子は存在していません。2個下の層のシンボルをそのまま使っています。それでいいと思います。
私が考える本当に必要なラッパーは、関数、および、新たにシンボル化するための列挙子型です。もともと列挙子型になっているものに対して、新たな列挙子を用意するのは非常に危険だと私は思います。
列挙子やdefineなどのシンボルに対して、
名前を変えただけのラッパーを作ると、
管理が大変になるだけでメリット無
関数のラッパーは必要な分だけあるのが理想的で、移植性やカスタマイズ性を向上させる効果がありますが、シンボルのラッパーは、移植性やカスタマイズ性を逆に減退させてしまうことがあります。むしろ予期せぬバグになる恐れすらあります。
私が使っている外部モジュールに、
int func_test( A a )
という関数があったします。Aは外部モジュールで定義されている列挙子型とします。
このとき、私のモジュールに、
int my_func_test( B b )
{
/* bをaに置き換えたり、なんかいろいろしたり・・・ */
func_test(a);
/* なんかいろいろ */
return res;
}
というようなラッパー用関数を作成したとします。また、Bは列挙子型で、Aのラッパーとします。
さて、外部モジュールに変更が入って、Aの中身が変化しました。具体的には、列挙子型のメンバーが減りました。このとき、どうなるでしょうか? その変更にあわせて、私がBを変更するのを忘れていたら・・・致命的なバグになる可能性が生じます。私がやるべきことは、Aの変更にあわせてBを変更することと、上記のbをaに置き換えている部分を適切に変更することです。それをしないとどんな動作になるかわかったものではありません。
で、こういった変更が発生するのはどういうときか、なのですが、同じプロジェクトの中ではあまり発生しません。しかし、別のプロジェクトに移植するときに往々にして起こりえます。ハードが新しくなれば、そのハードのドライバーモジュールが"微妙に違う"のは当たり前です。前のハードでは対応していた列挙子が、今回のハードでは非対応となって削除されている、なんてことが起こるわけです。
ここで、私がもし大量のラッパー列挙子を抱えていた場合、そのような修正をミスなく全てやり尽くす必要があるわけです。
できるわけねー。
まぁ、私の担当部分は幸いなかなかに上手くできていて、リネームだけの無駄なラッパー列挙子は存在していません。2個下の層のシンボルをそのまま使っています。それでいいと思います。
私が考える本当に必要なラッパーは、関数、および、新たにシンボル化するための列挙子型です。もともと列挙子型になっているものに対して、新たな列挙子を用意するのは非常に危険だと私は思います。
2009/11/07
マウスで斜め線を描く難しさよ
気がついたら2時間くらいかけてこんな絵↓を描いていたんですが、私は一体何をしたいんでしょうか?

我ながら謎であります。いやまぁなんとなく自分の立体感覚を試してみたくなったといいますか? 左足の立体表現が神がかっていると我ながら思います。まぁマグレですが。しかし最初は平面的にしかならなくて、いろいろ修正して、ほんのわずかにアレなニュアンスを入れることで上手くいったわけで、結構嬉しい感じ。なお、影は入れてるところと入れてないところがあって全くもって適当至極ですが、まぁいろいろと面倒になったのと、今回は別に影には着目していなかったので、これでいいのです。
ちなみに、マイクロソフトの最強ソフト「ペイント」で鉛筆と消しゴムのみ使用です。コピペは無しですが、範囲選択と移動は使用。インターフェースはもちろん、愛用の\3,980のマウス。
今回は作成途中の段階でもいくつか保存していったので、そういう作成過程的なものもアップしてみようかと思ったのですが、とりあえず今日はもう面倒なので放置の方向で。
ではでは。

我ながら謎であります。いやまぁなんとなく自分の立体感覚を試してみたくなったといいますか? 左足の立体表現が神がかっていると我ながら思います。まぁマグレですが。しかし最初は平面的にしかならなくて、いろいろ修正して、ほんのわずかにアレなニュアンスを入れることで上手くいったわけで、結構嬉しい感じ。なお、影は入れてるところと入れてないところがあって全くもって適当至極ですが、まぁいろいろと面倒になったのと、今回は別に影には着目していなかったので、これでいいのです。
ちなみに、マイクロソフトの最強ソフト「ペイント」で鉛筆と消しゴムのみ使用です。コピペは無しですが、範囲選択と移動は使用。インターフェースはもちろん、愛用の\3,980のマウス。
今回は作成途中の段階でもいくつか保存していったので、そういう作成過程的なものもアップしてみようかと思ったのですが、とりあえず今日はもう面倒なので放置の方向で。
ではでは。
2009/11/05
何この完璧な策
やばい・・・意外とまじでウオッチリストは使えるかもしれない・・・。
マイリス情報が非常に有用ですな。自分はオフしてるのに他人のは見たいという最悪な私ですが、まぁそれはおいといて、今日はウオッチリストのおかげで絶対自力では見つけられなかったであろう動画を見つけることができました。ありがたやありがたや・・・。
ちなみに動画はコチラ↓です。
sm8089853
sm7961595
sm7128346
1個目が一番好みです。2個目はわりとポップで、私にしては珍しく歌詞に一票ってところでしょうか、楽しい。3個目はジャズですねぇ、上手いですねぇ、最初の「まじでうおぉ〜」が最高でした。
てかこういう作品はニコニコでしか聴けないもんなぁ・・・。貴重であります。
まぁこんな感じで、自分のお気に入りのPをウオッチリストに登録すれば、マイリス情報からいい曲情報がいっぱい入ってくるのではないかという策なわけです。ウオッチリスト埋まるくらい好みのPを登録しまくろうと思います。
マイリス情報が非常に有用ですな。自分はオフしてるのに他人のは見たいという最悪な私ですが、まぁそれはおいといて、今日はウオッチリストのおかげで絶対自力では見つけられなかったであろう動画を見つけることができました。ありがたやありがたや・・・。
ちなみに動画はコチラ↓です。
sm8089853
sm7961595
sm7128346
1個目が一番好みです。2個目はわりとポップで、私にしては珍しく歌詞に一票ってところでしょうか、楽しい。3個目はジャズですねぇ、上手いですねぇ、最初の「まじでうおぉ〜」が最高でした。
てかこういう作品はニコニコでしか聴けないもんなぁ・・・。貴重であります。
まぁこんな感じで、自分のお気に入りのPをウオッチリストに登録すれば、マイリス情報からいい曲情報がいっぱい入ってくるのではないかという策なわけです。ウオッチリスト埋まるくらい好みのPを登録しまくろうと思います。
2009/11/03
しかもウオッチリストは強制公開という・・・
ニコニコにウオッチリストって機能が追加されていることに気づいたので、仕様を確認してみた。
感想:これはなかなか機能的にはいいかも・・・
でも、なんでもかんでもニコレポすんじゃねーって感じ。なぜデフォルトでいろいろオンなのかが意味不明。さっそく公開/非公開設定でオフりまくりましたが、どれほど効果があるのかもよくわかりません。過去のニコレポは消えるんでしょうかね?謎ですね。
ちなみに、試しに閣下をウオッチリストに入れてみたら、閣下のマイリス追加報告が普通に見れて、「うほっwwwこれ大丈夫なのか?ww(プライバシー的な意味で)」となりました。エロ電波ミク曲の存在を知りました。ありがとうございます。たぶん2度は聞かないけどw まぁ公開マイリストへの追加だけをレポするんであればたぶんプライバシー的には問題ないんでしょうけど、その辺仕様がよくわかりません・・・。
あと、ウオッチリストに入れるまでもなく閣下のIDがわかってしまいましたねぇ。いいんですかねこれ・・・。公開マイリストを一つでも持っている人はIDを他人から見られ、ウオッチリストに入れられる可能性があるわけですが・・・うーむ・・・。
ま、私は誰からもウォチられるようなことはしてないしいっか。堂々とR-18動画も見てますが・・・間違ってマイリスしたらどうなるんだろうか?www
感想:これはなかなか機能的にはいいかも・・・
でも、なんでもかんでもニコレポすんじゃねーって感じ。なぜデフォルトでいろいろオンなのかが意味不明。さっそく公開/非公開設定でオフりまくりましたが、どれほど効果があるのかもよくわかりません。過去のニコレポは消えるんでしょうかね?謎ですね。
ちなみに、試しに閣下をウオッチリストに入れてみたら、閣下のマイリス追加報告が普通に見れて、「うほっwwwこれ大丈夫なのか?ww(プライバシー的な意味で)」となりました。エロ電波ミク曲の存在を知りました。ありがとうございます。たぶん2度は聞かないけどw まぁ公開マイリストへの追加だけをレポするんであればたぶんプライバシー的には問題ないんでしょうけど、その辺仕様がよくわかりません・・・。
あと、ウオッチリストに入れるまでもなく閣下のIDがわかってしまいましたねぇ。いいんですかねこれ・・・。公開マイリストを一つでも持っている人はIDを他人から見られ、ウオッチリストに入れられる可能性があるわけですが・・・うーむ・・・。
ま、私は誰からもウォチられるようなことはしてないしいっか。堂々とR-18動画も見てますが・・・間違ってマイリスしたらどうなるんだろうか?www
2009/11/02
ようやく仕込みができてきたというところでしょうか
最近仕事が充実しているせいか、プライベートで精神的に無気力になるということがあまりありません。休日に体がダルいのはしょっちゅうですが。
やっぱりソフトウェアの構造考えたり、コーディングしてる時間は幸せですなぁ。←ある意味病気です
今回はだいぶ頑張って早めに汎用性を考えた作りこみをしたので、後々楽になる予感です。もう新機種作る度に苦労するなんてことはないはず。フフフのフ。まぁ、各機種毎のいやらしい不具合というのはまだまだいっぱいある予感ですが(実際、やらしそうなやつをすでに3点ほど見つけている)、だいぶ私の中では完成に近づきつつあります。そしてそれが一通り終わったら、今度は新しいことを試すチャンスが出てくるわけで、つまりはムフフというわけです。
ムフフフフフフ
やっぱりソフトウェアの構造考えたり、コーディングしてる時間は幸せですなぁ。←ある意味病気です
今回はだいぶ頑張って早めに汎用性を考えた作りこみをしたので、後々楽になる予感です。もう新機種作る度に苦労するなんてことはないはず。フフフのフ。まぁ、各機種毎のいやらしい不具合というのはまだまだいっぱいある予感ですが(実際、やらしそうなやつをすでに3点ほど見つけている)、だいぶ私の中では完成に近づきつつあります。そしてそれが一通り終わったら、今度は新しいことを試すチャンスが出てくるわけで、つまりはムフフというわけです。
ムフフフフフフ
