0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

現場独自のPythonコーディング規約を作りたいときのサンプル

Last updated at Posted at 2024-09-27

いきなりサンプルです。
自由に書き換えて使用してください。

# 【プロジェクト名】Pythonコーディング規約

## 1. はじめに

本文書は【プロジェクト名】におけるPythonコーディングの規約を定めるものです。本規約は、コードの可読性、保守性、一貫性を高めることを目的としています。

## 2. 基本方針

- PEP 8に準拠することを基本とします。
- 本規約で特に定めのない事項についてはPEP 8に従ってください。
- 本規約はプロジェクトの進行に伴い、適宜更新されることがあります。

## 3. ファイル形式

- 文字エンコーディングはUTF-8を使用します。
- 改行コードはLF(\n)を使用します。
- ファイル末尾には空行を1行入れてください。

## 4. インデント

- インデントには4つのスペースを使用します。
- タブ文字は使用しないでください。

## 5. 行の長さ

- 1行の最大長は100文字とします。
- docstringやコメントの場合は72文字を超えないようにしてください。

## 6. 命名規則

### 6.1 変数名
- スネークケース(例: user_name)を使用します。
- 1文字の変数名は避けてください(ループカウンタを除く)。

### 6.2 関数名
- スネークケース(例: calculate_total)を使用します。

### 6.3 クラス名
- パスカルケース(例: UserAccount)を使用します。

### 6.4 定数
- すべて大文字のスネークケース(例: MAX_RETRY_COUNT)を使用します。

### 6.5 モジュール名
- すべて小文字(例: user_management)を使用します。

## 7. インポート

- インポートは以下の順序で記述し、それぞれのグループの間に1行空けてください:
  1. 標準ライブラリ
  2. サードパーティライブラリ
  3. ローカルアプリケーション/ライブラリ

- `from X import *` の使用は避けてください。

## 8. コメント

- コードの意図が明確でない場合にのみコメントを追加してください。
- コメントは常に最新の状態に保ってください。
- 日本語コメントを使用する場合は、コードブロックの前に記述してください。

## 9. ドキュメンテーション

- すべての関数、クラス、メソッドにdocstringを記述してください。
- docstringはGoogle形式を使用します。

例:
<pre>
def calculate_area(radius: float) -> float:
    """円の面積を計算します。

    Args:
        radius (float): 円の半径

    Returns:
        float: 円の面積

    Raises:
        ValueError: 半径が負の値の場合
    """
    if radius < 0:
        raise ValueError("半径は正の値である必要があります")
    return math.pi * radius ** 2
</pre>

## 10. 例外処理

- 具体的な例外をキャッチしてください(`except Exception:`の使用は避ける)。
- 例外をキャッチした場合は適切なエラーメッセージをログに記録してください。

## 11. 型ヒント

- すべての関数とメソッドに型ヒントを付けてください。
- 複雑な型ヒントには`typing`モジュールを使用してください。

## 12. テスト

- すべての新しい機能に対してユニットテストを作成してください。
- テストカバレッジは最低80%を維持してください。

## 13. バージョン管理

- コミットメッセージは以下の形式に従ってください:
  <pre>
  [タイプ] 簡潔な説明

  詳細な説明(必要な場合)
  </pre>
  タイプは以下のいずれかを使用:
  - feat: 新機能
  - fix: バグ修正
  - docs: ドキュメントのみの変更
  - style: コードの意味に影響を与えない変更(空白、フォーマット、セミコロンの欠落など)
  - refactor: バグ修正でも新機能の追加でもないコード変更
  - test: 不足しているテストの追加や既存のテストの修正
  - chore: ビルドプロセスやドキュメント生成などの補助ツールやライブラリの変更

## 14. コード品質ツール

- flake8を使用してコードの品質をチェックしてください。
- pylintスコアは最低8.0を維持してください。

## 15. セキュリティ

- 機密情報(パスワード、APIキーなど)をハードコードしないでください。
- ユーザー入力は必ず検証し、適切にエスケープしてください。

## 16. パフォーマンス

- 大きなデータセットを扱う場合は、ジェネレータやイテレータを使用してください。
- 頻繁に実行される処理では、リスト内包表記やジェネレータ式を活用してください。

## 17. 規約の適用

- コードレビューの際に本規約への準拠を確認してください。
- CIプロセスに静的解析ツールを組み込み、自動チェックを実施してください。

## 18. 規約の更新

- 本規約の変更提案は【担当者名/チーム名】に提出してください。
- 規約の更新は定期的(四半期ごと)に検討し、必要に応じて改訂します。

以上

プロジェクトの具体的なニーズや既存の慣行に合わせて適宜調整してください。
また、チームメンバーからのフィードバックをもらい、全員が理解し、遵守できる規約になるようにブラッシュアップしてください。

0
2
0

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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?