Skip to content

2015-12-22: リーダブルコードメモ #12

@kou

Description

@kou

「自分が書いたリーダブルコード」と「自分が見つけたリーダブルコード」をここにメモしていっていてください。目的は「リーダブルコードを見つける練習」です。単に「書く」「見つける」だけでなく、「メモとしてまとめる」ことまですることで「再利用可能な状態」(=他の人に説明できる、他の場面で同じ書き方を適用できる)まで自分の中で整理されることを期待しています。

1つのリーダブルコードにつき1つのコメントにしてください。

各コメントには次の内容を含めてください。

  • サマリー(あるいはタイトルあるいは一言説明)
  • 実際のコード
  • どうしてリーダブルだと考えたかの説明
  • 「見つけた」場合のみ:見つけた経緯(あるいはきっかけ)

コメントに書くときは次のテンプレートを使ってください。

### サマリー

(ここにサマリーを書く)

### 実際のコード

```java
(ここに実際のコードを書く)
```

### どうしてリーダブルだと考えたかの説明

(ここに説明を書く)

### 見つけた経緯

(「見つけた」場合のみ。ここに見つけた経緯を書く。)

以下は具体例です。


サマリー

自己記述的定数名

実際のコード

https://github.com/doraemon13x/doraemon13x-sezemi-2014-readable-code-2/blob/master/mission3.c#L9

exit(EXIT_FAILURE); /* エラーの場合は異常終了する */

どうしてリーダブルだと考えたかの説明

コマンドの終了ステータスは、正常終了するときは0、異常終了するときは0以外の値を返すのが通例です。そのため、このコードは次のようにしても通例通りの動きになります。

exit(1);

ただ、動くのは動きますが、EXIT_FAILUREという名前を使っている方が「失敗して終了するんだな」というのがわかりやすいのでリーダブルだと考えました。

なお、EXIT_SUCCESSというのもあるので、同様の理由で正常終了するときはそれを使うのがよいと思います。

見つけた経緯

ちゃんとエラー処理をしていて立派だなぁと思って読み進めたら異常終了することがわかりやすいコードだと気づきました。


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions