13
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

超基本的なコーディングの注意点

Last updated at Posted at 2014-07-08

社会人1年目のメモが見つかったので転載。
基本C言語の話なんだけど他でも流用できるかも。
本当に基本的なことだけですが

規約(コンベンション)を守ること

ソースコードで、コンベンション(いわば決まりごと)は守りましょう。
少なくとも、コードのルールの一貫性を持つようにしましょう。

assert()を使おう!!

  • 条件が真になるときはassert()をつかう
  • 引数のチェック
  • 仮定の有効性のチェック
  • ありえない状態(switch-case文のdefault:は実行されないはずなのに、実行される…等)をチェック

ステップ実行をしよう

開発環境のステップ実行は便利な機能なので使いましょう。
Visual C++にもついてます。
プログラムがどのような流れで実行されているかがよくわかります。

  • 変数のチェック
  • 関数がきちんと使われているかチェックする

ブレークポイントも活用しましょう。
ブレイクポイントをつけると、プログラムの実行がそこで止まります。
それから、変数の値を変えて、エラー処理がきちんと行われるかもチェックしましょう。

関数について

  • 関数の戻り値にエラーコードを埋めてはならない

  • 正しいときはその値、エラーの時はNULL、EOF、-1…等(<=デバッグしずらくなる)

  • 多目的な関数をつくってはいけない

    • 異なる機能ごとに分割すべき

構造体の初期化処理

  • 構造体の初期化を忘れない。また、ユーザが変数の内容を意識しないように設計する場合、きちんと初期化処理を関数化する

マジックナンバー(意味のわからない数字)をつかわない

  • 意味のある数字で区別するように、enumか#defineを使う

ユニットテストは成功と失敗は自明でなければならない

  • 文字列を返す関数をテストするのに、そのままコンソール上に出力してチェックしていたが、きちんと期待する文字列と比較を行い、assert()をつかって真になるようにしなくてはならない。
  • テストはできる限り自動化する
  • 恒真のときはassert()を使う

ソースコードを読む

ソースコードを読むためのツール

バグ報告の書き方

  • 具体的に・正確に
  • エラーが起きた状況を性格に再現できるようにする
  • 環境もきちんと報告する
  • エラーメッセージはメモする
  • 症状を報告する。自分の診断と混合させない(余計な情報になる可能性があるため)

## バグ報告についてのリンク

13
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?