基本原理
フォーマットされた基本原理
良いレイアウトは、プログラムの論理構造を強調し、この原則の状態でフォーマットされました。
コンピュータプログラムの任意の解釈
レイアウトは、プログラムの構造に関する有用なヒントです。
良いレイアウトとは何ですか
ただ美的配慮でプログラムを書いていないためにいくつかのスタイルで。心理的要因のプログラムを通常の方法で書かれた - プログラマは、他のプログラマはこれらのルールの議論に従うことに強い感覚を持っています。
宗教としてのレイアウト
レイアウトだけでなく美的関係なく、プログラミングフォーマットをめぐる議論は、むしろ哲学を議論するよりも、より多くの宗教の闘争のような音を意味する論理問題の味を、持っています。
ターゲットの良いレイアウト
- コードの論理構造を正確に表します。
- 一貫して、コードの論理構造を示します。
- 読みやすさを向上させます。
- 修正をスタンド。
レイアウトテクニック
- ブランク;
- 空白は、読みやすさを向上させることができます。空白、タブ、改行、空白行を含め、プログラムの構造を示すための主な手段です。
- グループ化;
- 空行;
- インデント;
- ブラケット。
レイアウトのスタイル
- 純粋なブロック構造。
- 純粋なブロック構造を模倣します。
- 開始エンド(中括弧)を使用すると、ブロックの境界を指定されました。
- ラインレイアウトの終わり。
レイアウト制御構造
フォーマット制御構造のブロックポイント
- インデント始まるエンドペアを使用しないでください。
- 開始エンドは二回インデントさせないでください。
その他の考慮事項
- 段落間の空白行を使用するには、
- コードブロックの前と後に均一に単一の文形式;
- 複雑な式の場合、区画線を条件。
- ノー
goto
; case
ステートメントは、ラインレイアウトの例外の端を持っていません。
レイアウト単一の文
文の長さ
共通やや時代遅れのルールは、文の長さは、次の理由のために、80文字に制限されるべきであるれます。
- 読みにくい文で80文字以上。
- 80文字の制限は、深くネストされた奨励していません。
- 文の行は、バーコードが片側2に印刷されている場合は特に、収まらない長い80文字以上8.5×11インチサイズの用紙です。
文が明確に見えるようにするために、スペースを使用します
- 使用スペースは、論理式を読みやすくします。
- 配列参照を読み取るために、それより簡単にするために、スペースを使用します。
- それが簡単にサブルーチンのパラメータを読み取るために作るためにスペースを使用します。
その後の行の書式を設定します
- 明確な継続行;
- スペースの標準数にインデント制御ステートメント以降の行。
- 割り当て等号を整列しないでください。
- フォローアップのインデントの標準量への割り当てのために。
行ごとに1つのだけの文を書きます
- 個別の行に配置されたそれぞれの文は、プログラムの複雑さに関する正確な視点を提供することができます。
- 最近のコンパイラの場合は、ライン上の複数のステートメントは、任意の手掛かりを提供していませ最適化します。
- 別のライン上の各ステートメント、ちょうど上から下に読み取ったコードではなく、トップダウンでなく、左から右に読みます。
- コンパイラの行番号が連続して誤りを指摘するために別のライン上の各ステートメントは、あなたが構文エラーを見つけることが容易になります。
- 各個別の行に声明、および単一の文を編集しやすい - コメントするには、一時的に変更された行または列を削除します。
レイアウトデータの宣言
- ラインデータに1つずつ宣言します。
- 変数宣言は、その最初の使用の場所に近くなければなりません。
- 宣言順の合理的な組織。
- C ++は、変数名の近くにアスタリスクを置くか、ポインタ変数を宣言するときにポインタ型を宣言してください。
ノートレイアウト
- メモは、コードの対応するくぼみと一致しなければなりません。
- 各コメント行を別々に少なくとも1つのブランク行。
サブルーチンレイアウト
- サブルーチンの部分によって分離された各ライン。
- 標準インデントなどサブルーチンパラメータ。
レイアウトクラス
クラス・インタフェースのレイアウト
クラスインターフェースのレイアウトは、クラスのメンバーは、一般的に以下の順序で表現されなければならない場合。
- 説明ヘッドクラスとコメントのその完全な使用。
- コンストラクタとデストラクタ。
- 公共のサブルーチン;
- 保護されたサブプログラム;
- プライベートサブプログラムとデータメンバー。
クラスレイアウトの実装
クラスには、一般的に次の順序で配置された実装する必要があります。
- クラスはコメントに記載したファイルの内容のヘッド。
- クラスデータ。
- 公共のサブルーチン;
- 保護されたサブプログラム;
- プライベートサブルーチン。
レイアウトファイルとプログラム
- ファイルには、一つのクラスでなければなりません。
- クラス名に関連付けされなければならないファイルに名前を付け、
- 明らかに、ファイル内のサブルーチンを分離。
- アルファベット順のサブルーチン;
- C ++の場合は、慎重に順番にソースファイルの内容を整理します:
- 記述ファイルのコメント。
#include
ファイルの行。- クラス定義に使用するための定数の複数;
- 複数のクラスで使用する列挙。
- マクロ関数定義。
- クラスで使用される定義の複数種類の;
- グローバル変数と関数輸入。
- グローバル変数と関数のエクスポート。
- 現在のドキュメントで使用されるプライベート変数と関数。
- 様々なクラスの定数の定義、および列挙型の定義を含む各クラス、。
チェックリスト:レイアウト
一般的な問題
- []フォーマットは、コードの論理構造が何を示すために主にありますか?
- []あなたのレイアウトプログラムは、それを使用するために統一することができますか?
- []あなたのレイアウトプログラムは、それを維持するためにあなたのコードが容易になりますか?
- []あなたのレイアウトプログラムと、それは、コードの可読性を助けますか?
レイアウト制御構造
- []あなたのコードが始まるエンドのペアまたは避けるために
{}
、まだ二重のインデントを? - []隣接するブロック間まだ空行によって分離されましたか?
- []アカウントに複雑な表現形式の可読性それを取るために?
- []ブロック一つだけの文のレイアウトが一貫しますか?
- []
case
一貫性のある文の書式設定やその他の制御構造はまだ? - []には、
goto
それが目立つ許可するかどうかの文をフォーマット?
レイアウト単一の文
- []可読性論理式、配列の添字とサブルーチンパラメータと未だ空間を使用しますか?
- []ラインの不完全な文の終わりには、明らかにそれの終わりに間違った方法ですか?
- まだ標準の凹みの数として[]次の行?
- []ほとんどで、行ごとに1つだけのステートメントはいますか?
- []各ステートメントには副作用が書かれていませんか?
- []行あたりせいぜいデータを宣言?
ノートレイアウト
- 彼らはコードのコメントや注釈をインデントするには、[]同じ量?
- []簡単な注釈スタイルは、それを維持するには?
サブルーチンレイアウト
- []あなたは、各サブプログラムのパラメータをフォーマットする簡単な方法を理解し、変更、それに注釈を付けますか?
- []空白行を使用することは、まだサブルーチンのさまざまな部分を分離しますか?
レイアウトクラス、ファイルやプログラム
- これは、クラスやファイルの大部分は[]との1対1の関係ですか?
- []ファイル内の複数のクラスには、ルーチンのすべての種類は、まだクラスにグループ分けされている場合は?すべての種類は明らかにまだ特定されていますか?
- サブルーチン空白行[]ファイルは明らかにまだ分離しますか?
- []組織のは良い形が存在しない場合には、すべてのサブプログラムはまだアルファベット順にありますか?
点数
- 主なタスクは、コードの論理的組織の視覚的なレイアウトを指定することです。タスクを実施するかどうかを評価するための指標が精度、一貫性、読みやすさとメンテナンスの容易さが挙げられます。
- 他の指標が最も重要であるよりも、目に喜ば見えます。他の指標は、コードとし、質の良い達している場合は、その後、レイアウトも効果はかなりよさそうだします。
- 純粋なスタイルでのVisual Basicのコードブロック、および伝統的な慣行は、Java、プレーンブロックのスタイルを使用するので、これらのプログラミング言語ならば、プレーンブロックのスタイルを使用してください。C ++では、純粋なブロックまたは開始端をシミュレートブロック境界が有効です。
- 具体的には、オブジェクトコード構造自体。一貫して技術革新にいくつかの習慣に従ってください。レイアウト仕様はダメージの読みやすさを持続することはできません。
- 信仰の事項の設計レイアウトの多くの側面。私たちは、客観的ニーズや主観的な好みのエリアを区別するようにしてください。ディスカッション形式のパラメータに基づいて選択することが、明確な目標を設定してください。