2011-01-27 14 views
10

LotsofC++projectsラクダの命名規則を使用してください。 STL命名規則を使用している唯一のプロジェクトは、(STLのプロトタイピングの多くが行われている)ブーストと思われます。私は、STLに先行するプロジェクトがいくつかあることを知っていますが、STLを使用するほとんどの新しいコードベースは、ラクダの命名規則に固執しています。STL命名規則を使用しているのはなぜですか?

だから私の質問は以下のとおりです。

  • なぜSTLの命名規則を使用して誰もがありませんか?
  • 新しいプロジェクトにはSTLの命名規則をラクダの場合よりも使用することをお勧めしますか?
  • いくつかのプロジェクトでは、'STLタイプ'クラス(limited_stacksimplify_type)と他のすべてのためのラクダケースのSTL命名規則を使用しています。これは、インフラストラクチャをアプリケーションコードから分離する優れたアプローチのようです。これをお勧めしますか?

(私が命名規則が死に議論されていることを知っている。それでも、私はこの質問は前に回答されていなかったと思います。特に、分割命名規則のアイデアは議論の価値が、私の意見では、ある。)

+0

これはまだスタイルのもう一つの質問です.... –

+7

プログラマーがstdlib命名規則を使用し、@ andreasがそれを見ない場合、それは起こりましたか?間違いなく、*これらの規則を使用している人はいます。 –

+4

実際のプログラマーはアンダースコアを使用しています! –

答えて

3

まず、私の答えは、私の経験だけに基づいて、かなりの主観的なものであり、外部のデータやリソースに裏打ちされていないことを強調したいと思います。

大会はそれだけです:大会です。どのものを使用するのではなく、あなたとあなたが現時点で作業しているコードを維持するプログラマーのために、読みやすく快適なものを選択することが重要です。

私はCamelCaseをC++で使用しています。視覚的には私の目が気に入っています。一方、私はC言語でアンダースコアと小文字の関数名を使用しています。これは、どの言語が私のために使われたのかを簡単に見分ける方法になります。

他のプログラマは他の理由をもっているでしょう - そのほとんどは多かれ少なかれ主観的なものになるでしょうし、彼らや彼らが所属する開発者にも当てはまります。

他の言語をご覧ください。 C#はCamelCaseを優先し、最初の文字は大文字にします。なぜ最初のものを小文字にしておくよりも良いのでしょうか?

Zendフレームワークを使用するPHPプログラマーは、Zend命名規則にも精通しています:http://framework.zend.com/manual/en/coding-standard.naming-conventions.html

Drupal APIもPHPですが、アンダースコア、小文字、モジュール/テーマ固有の接頭辞を使用しています。

ライブラリ、フレームワーク、さらには言語全体でも、何らかの理由でメーカーが好むような命名規則がある場合があります。それはあなたの通常の命名規則を使用して終了するよう強制しません:)。だから、あなたの質問に対する答えは、そんなにばかげた方法で置くことができます。個々のプログラマーはそれに慣れているからです。

2番目の質問については:いいえ、私はどんなプロジェクトでも他のコンベンションを使用することをお勧めしません。あなたに最適なものを選んでください。あなたが選択の余地がない唯一の状況は、何らかの理由で単一の規約(例えば一貫したAPI)に固執したい開発チームにいる場合です。

3番目の質問:はい、このように表示できます。 UmbraModuleまたはTCODConsoleは、Umbraまたはlibtcod APIの一部です。 STLに関しては、私はそれを名前空間にしたくない。 std::*をすべて接頭辞として付けることは、それが別のライブラリの一部であるかどうかを示す非常に明確な指標です。したがって、インフラストラクチャ/アプリケーションのコードは明確に区別されます - CamelCase vs.

+1

リーディングキャップバリアントは、キャメルケースと区別するためにStudlyCapsと呼ばれることがあります。 –

+0

ああ、ありがとう、私はそれを知らなかった! – mingos

+0

thisIsCalledCamelCase、ThisIsCalledPascalCaseの間。 http://www.dofactory.com/topic/1141/camelcase-pascalcase-vs-camelcase-pascalcase.aspx – Kaiserludi