FC2ブログ

迷いの国のxxx HYPER

駄目駄目プログラマの独り言‥1

勉強してることを少しずつ書こうかなという気分。
多分荒んでいるからでしょう。

オブジェクト指向について。
新人教育とかでよく聞かれるんです。
「オブジェクト」と「インスタンス」の違いは何ですか?って。

そんな時、私はこう説明しようとします。
・「インスタンス」とは、「クラス」から生成された具体的な
 「オブジェクト」を指している

でもWikiを見ると微妙にニュアンスが違うんだなぁ。
オブジェクト
インスタンス

オブジェクトはクラスそのものやインスタンスを指すこともあるですね。
オブジェクト指向とはそういうものなんだと思いますが、
確かにその通りなのですが、やっぱり新人さんにはあまり曖昧にせずに
説明してあげたいところなのです‥。

オブジェクト指向がシステム設計に果たす役割は結構高いと私は思っています。
モジュールの設計がオブジェクト指向になっているか否かによって
実際のソースコードの出来にダイレクトに影響してくるような気がします。

まだまだ処理型な考え方やコーディングをしてしまいがちです。
特に不具合修正が重なったりしてくると、なかなか意図どおりに
「オブジェクト指向」になっていかなかったりして、悪戦苦闘します。

あとあとメンテしやすいように、出来るだけオブジェクト指向な、
結合度の低いモジュールを作れるように意識してコーディングしたいです。

でもデバッグしていくと、どうしてもメンバ変数やフラグが増えちゃうんだよ。嫌だなぁ‥。

あと、開発はやはりスパイラル型をオススメします。特にハツモノの時は余計。
結合してからクラス構成とか変えたくなることだってありますから。

明日はもう少しソースコードの話をしようかな‥



プログラム
| コメント:0 | トラックバック:0 |

境界値検査って大事よね。

開発していたアプリケーションを
Windows Vistaに対応させる為、
色々いじらなくてはいけなくなりました。
Vistaって、相当曲者だと思います。

で、VC++2003から2005に乗り換えたのですが‥。
こっちも細かいところで色々変更になっていてやっかいです。
STLのソースなんかも変更されてる。

で、仕様通りに動かないAPIを発見。
_mktime64
これ、MSDNによると、UTCの3000/12/31 23:59:59まで有効
(つまり-9hの日本では3001/1/1 98:59:59まで有効)
だと思われるのですが、
3001/1/1 08:00:00~3001/12/31 23:59:59を指定すると、
仕様の-1を返さない上、例外が発生して処理が停止してしまいます。

3002年を指定すると、仕様通り-1を構造体に代入して
正常に動作するんですけど‥。

2003と2005のソースを比較+ステップ実行してみたら、
<ctime.h>というヘッダの定義 
_MAX_YEAR64が1099から1100に変更されてました。
で、この定義を使っているmktime64.cを確認すると
-----------------------

続きを読む
プログラム
| コメント:0 | トラックバック:0 |

お仕事メモ。

今の会社に入ってから、
STLを頻繁に使うようになった。

C言語って文字列使いにくいし、
メモリ確保するようなプログラムでは、
リークなんてのもよく聞く話で。

で、このSTL。メモリ確保・解放を自動的にしてくれるし、
文字列もstd::stringなんて便利なものがある。

でも、やっぱりメモリの心配はしなくてはいけない。
そこで。

std::vectorのpush_backで
メモリ確保に失敗した場合、
std::bad_allocがthrowされる。

あまりやりたくはないけれども次のコードでテストできる。

続きを読む
プログラム
| コメント:0 | トラックバック:0 |
<<前のページ| ホーム |