コンテンツにスキップ

02.共通スタイルガイド

このドキュメントは、プログラミング言語やファイル形式に依存しない、プロジェクト全体で統一する具体的な記述スタイル(フォーマット)の基準値を定めます。これらのルールは、主にリポジトリルートの .editorconfig ファイルや、Prettier の設定によって自動的に強制されることを目指します。


1. 文字エンコーディング (Character Encoding)

  • 基準値: UTF-8
  • 理由: 現在最も広く使われている文字エンコーディングであり、多言語対応においてデファクトスタンダードであるため。BOM(Byte Order Mark)は付けません。

2. 改行コード (Line Endings)

  • 基準値: LF (Line Feed)
  • 理由: Windows, macOS, Linux間で不要な差分が発生するのを防ぎ、Gitの挙動を安定させるため。Windows環境の開発者は、Gitのcore.autocRlf設定をtrueにすることを推奨します。

3. インデント (Indentation)

  • 基準値: 半角スペース (Space)
  • 理由: タブ文字は、環境によって表示幅が異なる可能性があるため、インデントには半角スペースを使用します。
  • サイズ:
    • 原則: 2スペース (JSON, YAML, HTML, CSS, JavaScript, TypeScriptなど)
    • 例外: 4スペース (C#, Python, C/C++など、各言語コミュニティの慣習で4スペースが主流の場合)
    • ※具体的なサイズは、各言語の規約および.editorconfigの設定に従います。

4. 1行の最大文字数 (Max Line Length)

  • 基準値: 80〜120文字 の範囲でプロジェクトごとに決定します。
  • 理由:
    • 可読性: 1行が長すぎると、コードの水平スクロールが発生し、可読性が著しく低下します。
    • レビュー効率: 左右分割ビューでのコードレビューが容易になります。
  • 運用: Prettierや各言語のフォーマッターで、この文字数に基づいた自動改行を強制します。

5. 末尾の空白 (Trailing Whitespace)

  • 基準値: 許可しない (削除する)
  • 理由: 不要な差分を生み出し、バージョン管理のノイズとなるため、全ての行の末尾にある不要な空白は削除します。エディタの保存時自動トリム機能を有効にすることを強く推奨します。

6. ファイル末尾の改行 (Final Newline)

  • 基準値: 全てのファイルは、末尾に単一の改行を持つ
  • 理由:
    • 多くのUnix系ツールとの互換性を保ちます。
    • ファイル末尾に行を追加した際の差分が、1行の追加として正しく表示されるようになります。(末尾改行がないと、既存行の「変更」+新規行の「追加」として扱われる場合がある)