# 共通ドキュメント

## プログラムの性能

### ユーザーが評価するプログラムの性能

- 障害の有無
- プログラム自体のレスポンス
- 対障害性能
- 価格

### 本当の性能

- 障害の有無
- プログラム自体のレスポンス
- 対障害性能
- 価格
- 保守性能

### 「動かなければ意味がない」

「動かなければ意味がない」は真だが「動けばいい」が通用するのは戦場だけ

### 保守性能について

どれほど高速に動作するプログラムも二度と機能追加できない、障害に対して対応できないならばまるで意味がない。

#### 保守性能を上げるためのソースコードの書き方

- 仕様とソースコードを一致させる
- 「他人が読んでも理解できるように」書く
- 不要な記述を残さない
- 処理の名前と処理の内容は一致させる

(ref:コーディング規約を読む事)

#### 仕様とソースコードを一致させる

仕様には「誰が誰に対して何をするか」記述してあるはず。「誰に対して」がクラスであり、「何をするか」がクラスのメソッドであり、「誰が」が呼び出し元であるべき

#### 「他人が読んでも理解できるように」書く

コードを読む人の思考を邪魔しないように書く。コードを読む人の思考を助けるように書く。

#### 不要な記述を残さない

所謂コメントアウト=理由も書かずに単にコメントブロックに追加しただけ だと「なぜ外したか」「本当は必要なんじゃないか」「バグだったから外したのか、仕様が変わったから外したのか」その他諸々を読む人に考えさせる事を強要する。邪魔なだけ

削除し、削除した理由をソース管理上のログに残しておけば十分。

#### 処理の名前と処理の内容は一致させる

外部から呼び出す処理名が処理内容と一致しないと外部プログラムを書く人は混乱する。