C++ の最も基本的なことは学んだのですが、コードを整理して C++ プロジェクトを開始する方法がわからないような気がします。プロジェクト/コード編成に関するガイドを検索しましたが、運が悪かったです。
だから、よくコード化された実際のプログラムを見つけて、それがどのように構成されているかを確認したいのですが、何も見つかりません。C ++で本当によく構成されたプログラムを知っている人はいますか? できればオープンソース、端末ベース、UNIX のみ。
ありがとう。
C++ の最も基本的なことは学んだのですが、コードを整理して C++ プロジェクトを開始する方法がわからないような気がします。プロジェクト/コード編成に関するガイドを検索しましたが、運が悪かったです。
だから、よくコード化された実際のプログラムを見つけて、それがどのように構成されているかを確認したいのですが、何も見つかりません。C ++で本当によく構成されたプログラムを知っている人はいますか? できればオープンソース、端末ベース、UNIX のみ。
ありがとう。
これは、主にいくつかのことに依存しています。
小さなプラットフォーム抽象化レイヤーを使用して、謙虚な C++ プロジェクトを開始したばかりです。おそらく、ヒントや提案が得られるでしょう。ソースコードはここで見ることができます (現在はまったく機能せず、qmake を使用してビルドしています): http://sourceforge.net/p/ambrosia/git -> browse
私がやったこと: - (現在) プラットフォームごとに 1 つのソース ファイルに実装されている、プラットフォームに依存しない関数定義を提供する 1 つのプラットフォーム抽象化ヘッダー。- 事実上どこでも必要なものを含むいくつかのヘッダーを含む 1 つのグローバル ヘッダー。- コードの目的ごとに論理的に編成されたいくつかのサブフォルダー。
一般に、コーディングを開始する前に最初に行うことは、命名規則を決定することです。
変数名、クラス名、名前空間、メソッド名など。
次に、ヘッダーファイルとcppファイルのコードの区切りと、それらが存在するディレクトリ(同じディレクトリまたは異なるディレクトリ)を決定する必要があります。
ディレクトリ名は意味のあるものにする必要があります(ここではより多くの規則があります)。つまり、多くのコンポーネントで使用されるユーティリティメソッドを提供するクラスをサブディレクトリec/commonまたは/utilに配置する必要があります。
クリアケースなどのバージョン管理システムを決定する必要があります。
また、非常に重要なポイント(IMHO)は、ロギングがどのように行われるかです。これは実装され、すべてのモジュールに一貫している必要があります。
準備ができたプロジェクトを研究する場合のように、これらは焦点を当てるべき強みです。コードのすべての規則と基本的な関係に気付くには、かなり研究する必要があるため、時間がかかる場合があります。さらに、ある規則が別の規則よりも優先される理由がわかりません。
C ++アプリでコードを編成することに関して、広く受け入れられているルールはありません。たとえば、名前空間を使用し、名前空間ごとに個別のフォルダーを作成し、その名前空間に関連するすべてのヘッダーとソースを対応するフォルダーに配置することを好みます。したがって、プロジェクトルートには、main()、makefile、および場合によっては他のいくつかのファイル。ただし、他の人は異なる好みを持っているかもしれません。
たとえば、Google Chrome のソース コードを見てみることをお勧めします。これは大規模ですが、Google が作成したものであり、コーディング標準を真剣に考えていると私は信じています。