記念すべきQiita投稿1回目です。宜しくお願いします。
はじめに
私はこれまでJavaをメインで使ってきましたが、半年前くらいにC#の開発にアサインされました。
既存コードを参考になんとなくコーディングしてきましたがあやふやな部分も多く、
今更ですが命名規則についてまとめておきたいと思いました。
スタイル
まずは命名規則に使われるスタイルのおさらいから。
覚えるの苦手でいつも忘れてしまう・・・
| 種類 | 説明 |
|---|---|
| キャメルケース camelCase |
最初の単語を小文字から始めて、それ以外の単語を大文字から始める。 単語と単語はそのままつなげる。 |
| パスカルケース PascalCase |
すべての単語を大文字から始める。 単語と単語はそのままつなげる。 |
| スネークケース snake_case |
すべての単語を小文字にする。 単語と単語はアンダーラインでつなげる。 |
| アッパースネークケース SNAKE_CASE |
すべての単語をすべて大文字にする 単語と単語はアンダーラインでつなげる。 |
命名規則
Java、JavaScript、C#で比較します。
| 種類 | Java | JavaScript | C# |
|---|---|---|---|
| クラス | Pascal | Pascal | Pascal |
| インターフェース | Pascal | - | "I" + Pascal |
| パッケージ / ネームスペース | camel | - | Pascal |
| メソッド | camel | camel | Pascal |
| メンバ変数 | camel | camel | Pascal |
| ローカル変数 | camel | camel | camel |
| 定数 | SNAKE_CASE | SNAKE_CASE | Pascal |
並べると違いがよく分かりますね。
Javaしかやってこなかった人間として感じた違和感の正体があらわになった気がします。
メソッドとメンバ変数はPascalなんですね。ここが違和感あり。
あと今のC#の現場で定数はアッパースネークケース使っている気がします。
ローカル変数だけcamelで他はPascalと覚えておけばよさそうですね。
おわりに
たぶんまだ忘れてしまうんだろうな・・・と思いながらもまとめてみました。
こんな感じで基礎的な知識でも気になったことを中心に、毎週投稿を目標にしたいと思っています。