コーディング時のチェックポイント
ストーリー
「コードを書いているとき、何に気をつければいいんですか?」
「大きく4つのカテゴリがあるよ。変数名、コメント、エラーハンドリング、セキュリティ」
「4つ...覚えられるかな」
「一度に全部じゃなくていい。1つずつ意識していこう」
1. 変数名・関数名
なぜ重要か
コードは書く時間より読む時間のほうが圧倒的に長いです。 わかりやすい名前をつけることは、品質に直結します。
チェックポイント
× 悪い例:
let d = new Date();
let n = users.length;
function proc(x) { ... }
○ 良い例:
let currentDate = new Date();
let userCount = users.length;
function validateEmail(email) { ... }
| チェック項目 | 確認ポイント |
|---|---|
| 意味が伝わるか | d → currentDate のように名前から内容がわかるか |
| 命名規則に準拠しているか | キャメルケース、パスカルケースなどチームのルール通りか |
| 略語を避けているか | btn → button、msg → message |
| 動詞から始まる関数名か | getData、validateInput、calculateTotal |
2. コメント
なぜ重要か
コメントは未来の自分やチームメンバーへのメッセージです。 3ヶ月後の自分はコードの意図を覚えていないと思いましょう。
チェックポイント
javascript
// × 悪いコメント: 何をしているかを書いている(コードを見ればわかる)
// iに1を足す
i++;
// ○ 良いコメント: なぜそうしているかを書いている
// APIのレスポンスが0始まりのため、表示用に1を加算
i++;| チェック項目 | 確認ポイント |
|---|---|
| 「なぜ」が書かれているか | コードの意図・背景を説明している |
| 古くなっていないか | コード変更時にコメントも更新したか |
| TODOコメントは必要か | 残すべきTODOと消すべきTODOを判別したか |
| コメントアウトされたコードがないか | 不要なコードは削除する(Gitに履歴がある) |
3. エラーハンドリング
なぜ重要か
「正常に動くコード」を書けるのは当たり前。 「異常なときに壊れないコード」 を書けるのがプロです。
チェックポイント
javascript
// × エラーハンドリングなし
const data = JSON.parse(response);
const name = data.user.name;
// ○ エラーハンドリングあり
try {
const data = JSON.parse(response);
if (!data || !data.user) {
throw new Error('ユーザーデータが取得できません');
}
const name = data.user.name;
} catch (error) {
console.error('データの処理に失敗しました:', error.message);
// 適切なエラー処理
}| チェック項目 | 確認ポイント |
|---|---|
| nullやundefinedの確認 | 変数がnullになる可能性を考慮しているか |
| try-catchの使用 | 失敗する可能性のある処理を囲んでいるか |
| エラーメッセージ | ユーザーに親切なメッセージを表示しているか |
| 境界値の考慮 | 空の配列、0、マイナス値などを考慮しているか |
よくあるエラーパターン
入力が空だったら? → バリデーションが必要
ネットワークが切れたら? → タイムアウト処理が必要
データが存在しなかったら? → nullチェックが必要
数値が想定外だったら? → 範囲チェックが必要
4. セキュリティ
なぜ重要か
セキュリティの問題は、ユーザーの個人情報漏洩や金銭的被害につながります。 新人でも最低限の意識は必要です。
チェックポイント
| チェック項目 | 確認ポイント |
|---|---|
| 機密情報のハードコード | パスワード、APIキーがソースコードに直書きされていないか |
| 入力値の検証 | ユーザー入力をそのまま使用していないか |
| エラー情報の露出 | スタックトレースがユーザーに見えていないか |
| HTTPS | 通信が暗号化されているか |
javascript
// × 危険: APIキーのハードコード
const API_KEY = "sk-abc123456789";
// ○ 安全: 環境変数から取得
const API_KEY = process.env.API_KEY;javascript
// × 危険: ユーザー入力をそのまま使用
const query = `SELECT * FROM users WHERE name = '${userInput}'`;
// ○ 安全: パラメータ化クエリを使用
const query = `SELECT * FROM users WHERE name = ?`;コーディング時チェックリスト(まとめ)
markdown
## コーディング時チェックリスト
### 変数名・関数名
- [ ] 名前から意味が伝わるか
- [ ] チームの命名規則に準拠しているか
### コメント
- [ ] 「なぜ」が書かれているか
- [ ] コメントアウトされた不要なコードがないか
### エラーハンドリング
- [ ] nullやundefinedの確認をしているか
- [ ] 失敗する可能性のある処理にtry-catchがあるか
- [ ] エラーメッセージが適切か
### セキュリティ
- [ ] 機密情報がハードコードされていないか
- [ ] ユーザー入力を適切に検証しているかまとめ
| カテゴリ | 重要ポイント |
|---|---|
| 変数名 | 意味が伝わる名前をつける |
| コメント | 「なぜ」を書く、不要なコードは削除 |
| エラーハンドリング | 異常系を考慮した堅牢なコード |
| セキュリティ | 機密情報の保護、入力値の検証 |
チェックリスト
- 各カテゴリのチェックポイントを理解した
- 良い例と悪い例の違いが分かる
- コーディング時チェックリストを活用できる
次のステップへ
コーディング時のチェックポイントが理解できましたか?
次のセクションでは、コミット前に確認すべきチェックポイントを学びます。 コードを書いた後、チームに共有する前の最終確認です 。
推定読了時間: 30分