2006-09-01から1ヶ月間の記事一覧

実装時にバグを減らす

以前に述べたバグの原因それぞれについて 実装段階でのバグを減らすTipsを挙げます。 怠慢によるバグ エラー処理を確実に行いましょう。関数を呼び出したら必ず戻り値をチェックするようにしましょう。 エラー処理が面倒であれば、例外処理によるエラーモデ…

設計時にバグを減らす

バグを減らすには、設計時に以下のことを気をつけます。 コンポーネント数を極力減らす 同様の機能を持ったコンポーネントを作らない コンポーネントの機能を限定する コンポーネント間の依存度を極力下げる コンポーネント間のインターフェイスは簡潔に 置…

バグを作らないための方法 続き

この間の続きです。

バグの原因

怠慢によるバグ これはエラー処理をサボったり、制約条件を きちんと記述しないことが直接的な原因である。 実装・設計期間が十分にとられているにも関わらず、 この手のバグが消えることはない。 その理由の一因として、エラー処理の煩雑さや、 契約プログ…

バグいろいろ

バグの原因の多くは、実装者の不注意から出る。 が、必ずしもそれだけというわけではない。 実際の開発を行う中では、仕様が明確でないケースや、 情報伝達の不備によるバグ発生などのケースが存在する。 ここではそれら雑多なケースは除外し、 実装者が作り…

バグを作らないための方法

仕事でなんかプレゼンしてとか言われたんで、 バグを作らないための方法ってテーマでやってみる。 んで、そのためのメモというかちらしの裏。

日記更新スローペース停滞中。 まったり更新モード。

変数名

引数とか変数名にa,b,c,dとかつけるのはやめてください。・゚・(ノд`)・゚・。 まじで勘弁。 関数シグネチャ見ただけでどんなパラメータを渡すのか、 それが変更されるのかどうかくらいわかるようにしてくれーウワァァァァァァヽ(`Д´)ノァァァァァァン! 10年前のC言語ソースを移植とか…

TO: fkm氏

じゃあ残りの5年間は何してたの?」と言われるような気がするのはσ(・ω・)だけだろうか? 私は高専卒で職業プログラマになりました。 高専時代、入学当初からC言語のプログラミングをはじめ、 3年目にはC++を習いましたね。 学生であった5年間に授業・プライ…

TO: tsugehara氏

たしかに前提がたくさん抜けている状況なので、 これ以上の議論をするには境界条件を定めないとまずそうですね。 ちなみにこの日記では特に1次ソースとかは参考にしていません。 というのも自分の経験から感じることをそのまま書きたいってのと、 単純に調…

昨日の続き

id:fkmさん、id:tsugeharaさんトラックバックありがとうございます。 あえてコメント等はせずにエントリーという形で追記させてもらいます。 (昨日の日記に付け足すと長くなっちゃうんで)

職業プログラマの技術力?

id:fkm:20060907のエントリ。 ソフトウェア関係に就職する場合、C言語の最低のラインはどのあたりまで知識としてもっておく必要があるのだろうか?ポインタと構造体と配列がわかっていれば十分なのだろうか、それともまだまだ上なのか…? 実際に働いてみる…

tsugehara氏からのtrackbackを受けての追記

あえて言語化するなら、技術屋がトップにいる企業と、コンサルがトップにいる企業で全然違うということ。 人材派遣系の会社は技術を求めてないし、パッケージ開発している会社は技術がなければ話にならない。 企業がどのように考えるかは、↑以外にも、企業の…

ソートについて

ソートにもいろいろあるんですよ。 単純な挿入ソートからバブルソートやマージソート、 ヒープソートに基数ソートにクイックソートなどなど。単純な計算量の違い以外にも安定なソートかどうかや、 メモリの使い方やら、データ構造による制約などなど。 それ…

データ構造について

単純に可変長のデータを追加して保持しておくためだけであれば std::listやstd::dequeなどの可変長コンテナを使うよりも、 std::vectorの方が速度的にも有利だし、 なによりコードをぱっとみてそう使うというのが一目で判る。 クラスのメンバー関数の一つを…

ソートいろいろ

ソートしたいがためだけにstd::listを使っているという ちょっとどうなのよっていうプログラムを見たんでちっと書いてみる。