ルール
関数 なし 説明 コメントなし。
関数 説明 コメント は 難しい 理解
理解 ために 他の 開発者にとって
サポート言語: 45+はじめに
コメントのない関数は、開発者に実装の詳細のみから意図を推測させることになります。これにより、コードレビューが遅くなり、メンテナンス時のエラー発生率が高まります。説明の欠如は、検証、入力の期待、セキュリティ制約に関する前提も隠してしまいます。明確なドキュメントは誤用を減らし、チームがコードの動作をより迅速に理解するのに役立ちます。
なぜ重要なのか
セキュリティ上の影響: コメントの欠落は、検証、認可チェック、および信頼された入力に関する前提を隠し、誤用を容易にし、セキュリティリスクを高めます。
パフォーマンスへの影響: ドキュメント化されていない関数は誤って使用される可能性があり、その結果、繰り返しの高コストな操作、不要なパース、または非効率なデータ処理を引き起こします。
保守性: 意図が文書化されていない場合、開発者はロジックの読み込みやリバースエンジニアリングに多くの時間を費やし、リファクタリングとオンボーディングが遅れます。
コード例
❌ 非準拠:
// No explanation of expected input or security assumptions
function normalizeUser(user) {
if (!user || typeof user !== 'object') return null;
return {
id: String(user.id).trim(),
email: user.email.toLowerCase(),
roles: user.roles.filter(r => r !== 'guest')
};
}誤っている理由: この関数はセキュリティ関連フィールドを処理しますが、信頼できるソース、期待される構造、または入力制約に関する前提条件を文書化していません。
✅ 準拠済み:
/**
* Normalize user data from external input.
* Expects: `user` contains `id`, `email`, and `roles`.
* Rejects invalid structures and filters unsafe role values.
* Ensures normalized identifiers and lowercased email for consistency.
*/
function normalizeUser(user) {
if (!user || typeof user !== 'object') return null;
return {
id: String(user.id).trim(),
email: user.email.toLowerCase(),
roles: user.roles.filter(r => r !== 'guest')
};
}これが重要な理由:このコメントは、意図、期待される入力、およびセキュリティ制約を文書化しており、使用方法を予測可能にし、安全でない統合を防ぎます。
まとめ
意図、前提、または制約がシグネチャから明らかでない関数には、明確なコメントを追加してください。その関数が何を期待し、何を返し、セキュリティに関連するどのような動作をするかを文書化してください。これにより、レビューの品質が向上し、誤用が減り、コードベース全体で予測可能な動作が保証されます。

