.net column

.NET開発者のためのブログメディア

コーディング規約とは?コーディングの意味と目的・コーディングスタイルに関する内容

公開日時:   更新日時:
コーディング規約とは?コーディングの意味と目的・コーディングスタイルに関する内容
基本情報技術者試験の試験対策はこちら>>

SE
コーディング規約について教えてください。

PM
コーディング規約とは、エンジニアとして仕事をしていく上でのルールです。

コーディング規約とは


多くのプログラミング言語の表現にはある程度自由度があります。C#も自由度があります。

しかしながらその自由度を制約する決まりごとがあります。それがコーディング規約と呼ばれるものです。企業やプロジェクト単位で設けられるもの、企業や団体などが公開し、推奨するものなどがあります。

コーディング規約の意味

コーディング規約が存在することには意味があります。プログラミングの効率を上げるためです。

規制しすぎてもかえって効率が下がってしまうこともあります。つまり、バランスが必要となります。その為には、コーディング規約の目的を認識する必要があります。

次項でコーディング規約の目的を具体的に解説します。

コーディング規約の目的

プログラムとはコンピューターにさせたいことをプログラミング言語で記述したもののことです。プログラムが記述されたテキストファイルのことをソースコードといいます。

同じ内容のソースコードでも表現に幅をもたせることが許されています。改行やスペースやタブ文字の数など体裁を整えるためであったり、変数の文字種・文字数など、機能的な制限が起きないようにしたり、可読性を上げる、即ち読みやすくするためであったりします。

同じ実行結果が、異なるプログラムで実現されることも多々あります。異なる実行順で同じ結果になるケースや、異なるアルゴリズム、即ち異なる処理の組み合わせ・処理の構造などで同じ結果になるケースなどがあります。

ソースコードの表現に幅があることは、プログラマーにとってメリットですが、デメリットにもなり得ます。

プログラムのサイズが大きくなったり、古いプログラムを見直すことになったりした時、プログラミングをした時の記憶が薄れている分、解釈の手がかりが少なくなるため時間がかかります。

複数プログラマーによるプロジェクトの場合、短いプログラムであっても、それぞれのプログラマーがそれぞれの流儀でソースコードを書くと、プログラムの意図が読みにくくなり、解釈が困難になります。

一定の条件で同じ実行結果でも、選択するアルゴリズムや実行順の違いだけで、特定の条件での不具合の起こりやすさや修正のしやすさ、即ち保守性や、前述の可読性にも影響があります。

表現に一定の規則性や規準があれば、それらのデメリットを軽減できます。その為の決まり事がコーディング規約です。プログラミング作法、コーディング標準、コーディング規則などとも呼ばれます。

C#のコーディング規約

プログラムがネット上でオープンソースとして公開されることも多くなり、各プログラム言語のコーディング規約がメーカーや団体により公開されています。

C#では、「C#のコーディング規則」としてC#の統合環境を提供しているMicrosoftが公開している物がありますので、それを元に、C#のコーディング規約の要点として解説します。

「C#のコーディング規則」における目的

Microsoftが公開している「C#のコーディング規則」についてはコードを読む時に内容に重点を置けること、コードの迅速な理解、コピーや変更や保守が容易になること、ベストプラクティスがわかることを挙げています。

コードを読む時に内容に重点を置ける理由には、見た目の統一性を挙げています。つまり、レイアウトに惑わされずに読むことに集中できることになります。また、一定の様式が定まっていれば、書く時もレイアウトを考える負担が減るので利点になります。

コピーや変更や保守に関しては、既に述べた、保守性や可読性と同様な話です。

ベストプラクティスがわかるとは、つまり、C#を習得するにあたって最適な方法がわかるということです。実際、C#の機能の解説に相当する内容も含まれています。

ここでは保守性や可読性に関わるコーディングスタイルに関する内容について解説します。

C#のコーディングスタイルに関する内容

レイアウト規則、コメント規則が相当します。

レイアウト規則は、インデントとタブの設定、ステートメントと宣言の記述、メソッド定義やプロパティ定義の記述、複雑な条件式の作成時におけるかっこの使用が書かれています。

スマートインデント、4文字インデント、タブを空白文字として保存する設定やステートメントと宣言は1行で記述する、メソッド・プロパティ定義の間は1行あける、式の処理を明確化するためかっこを活用するなどの、いずれも基本的な内容です。

スマートインデントに関しては、一定の入力手順を想定した自動整形機能ですが、肝心なのは統一されたレイアウトとなるように入力することですので、効率に寄与する場合に使用する事になります。

他のインデックス設定に関しても、企業におけるプロジェクトであったり、過去の資産を生かした開発であったりする場合、デフォルトから変更すべきケースも考えられます。

コメント規則については、コードと別の行に記述する、テキストは大文字で開始しピリオドで終了する、「//」とコメントテキストの間に空白を挿入するとして、これも基本的な内容ですが、明確化されています。アスタリスク整形を使用しないように書かれています。

複数行に渡って使用するとコード部分と明確な区別がつきにくくなることを防げる上、「//」を使用したコメント行で統一できます。

C#の命名規則

その他コーディングにおける表現の統一性で重要なのは、関数や変数の命名規則です。特に明確に読みやすさに影響する内容は大文字小文字の問題です。多くの場合、コーディング規約で規定されます。

Microsoftの「C#」のコーディング規則には記載されていませんが、.NETのドキュメントに「大文字の使用規則」として記載されています。

大文字に関して命名規則にはCamel方式とPascal方式があります。

Camel方式は次のように、最初の単語のみ小文字で記述し、それ以降は大文字で書きます。名前の最初に付く頭文字は「io」などのようにすべて小文字で書きます。

Pascal方式は次のように、各単語の最初の文字を大文字で書きます。名前の最初に付く頭文字は全て大文字で書きます。

注意すべき点は複合語の扱いにあります。複数の単語を組み合わせた複合語は、両方式共に一つの単語として扱います。

C#では変数や関数・メソッド定義のパラメーターはCamel方式で記述し、関数の名前はPascal方式で記述します。

SE
コーディング規約によって、ソースコードの品質が一定に保たれるわけですね。

PM
そうです。ここではC#でのコーディング規約を見ていきましたが、参加するプロジェクトや言語によっても異なります。

C#のコーディング規約の目的を意識してプログラムの品質を上げよう

C#のコーディング規約の目的と、コーディング規約の例について解説しました。

コーディング規約は読みやすく、修正しやすく、不具合の起こりにくいソースコードを作ることが目的で、プログラムするにあたっても、規約によってレイアウトなど形上の部分でなく、プログラムの内容に集中して開発が出来ます。それがソースコードの品質を上げることに繋がります。

コーディング規約の目的を把握し、意識してプログラミングに活かしていきましょう。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags