LoginSignup
31
27

More than 5 years have passed since last update.

わかりやすいコードを書こう!

Last updated at Posted at 2015-02-01

わかりやすいコードを書くために必要なこと

  • コメントを必要な限り書く。
  • 関数をこまめに分ける。
  • 名前を適切につける。
  • 関数の名前は時間をかけて考える。
  • 空白、改行もしっかり行う。
  • 誰でもわかるコード(ある意味バカなコード)を書く。

コメントについて

  • コメントは、コードと設計に関する技術的な注意書きのために用いるべきです。
  • コメントは、「コードで表現できないこと」に対して使用すべきです。
  • 十分に時間をかけて最善のコメントを残すように心がけましょう。

退化したコメント

  • 発見したら、最新化するか、必要性が薄ければ取り除いてしまいます。

冗長なコメント

  • 削除します。
  • 関数に対してコメントを書くだけで大丈夫です。
  • 関数の中にコメントが描けるということはそれは複雑かそれとも関数化ができるはずです。

コメントアウトされたコード

  • コメントアウトされたコードは、そこに居座り続け、腐敗していきます。
  • コメントアウトされたコードを見つけたら、削除しましょう。

関数について

多すぎる引数

  • 関数引数の理想は0です。
  • 1~2までは許されます。
  • 3以上になってしまったら、構造体などを利用してラップしましょう。

フラグ引数

  • プログラムを汚くし、わかりにくくするので、避けるべき習慣をつけましょう。
  • 適切な命名をして、2つの関数に分割します。

死んだ関数

  • どこからも呼び出されないメソッドは、デッドコードです。
  • 見つけたら、直ちに削除します。
  • あると、読み手に迷惑をかける場合があります。

セレクタ引数

  • セレクタ引数とは、処理を選択するための引数のことです。
  • セレクタ引数は、大きな関数を小さな関数に分割することを怠けた結果です。
  • 1つの関数に振る舞いを選択するコードを入れるのはやめ、別々の関数に分けるようにしましょう。

多目的関数

  • 多目的関数とは、1つの関数で様々な処理を行う事です。
  • 関数の中にif文とfor文が2つ以上ある場合は関数を分けましょう。
hoge.cpp

// 多目的関数
void Hoge()
{
    for(auto i : bullets)
    {
        if(i->IsDeath())
        {
            // 何かしらの処理
        }
    }
}

// 分割します
void HogeA()
{
    for(auto i : bullets)
    {
        HogeB(i);
    }
}

void HogeB(Bullet bullet)
{
    if(bullet->IsDeath())
    {
        // 何かしらの処理
    }
}

このように組んでいくとわかりやすくなっていきます。
コードを書いている限りリファクタリングを行いましょう。

上記の内容ができればある程度見やすいコードにはなると思います。

以上です。

31
27
2

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
31
27