2017-03-20 8 views
0

それは2017です。私が知る限り、プログラマーがコードを編成する方法は変わりません。コードをファイルに配布し、ツリー構造(ネストされたディレクトリやファイル)で整理します。コードベースが大きく、クラス/コンポーネント間の関係が複雑な場合、この組織アプローチは私に非効率的な印象を与えます。ファイルが多いほど、1つのディレクトリにファイルが多くなったり、ディレクトリの深さが増えたりします。また、ディレクトリを直接処理するため、検索のようなツールを使わなくてもナビゲーションで時間と労力がかかります。ファイルシステムを使ってコードを編成することのメリット

A complex UML図:私たちは、複雑なものを描く/設計するためにCADを使用することができますhttps://github.com/CMPUT301W15T09/Team9Project/wiki/UML

から複雑なUML。マインドマップを同様の方法で作成することができる。これらのために、我々はファイルシステムに対処する必要はありません。似たようなことをして、ファイルシステムをブラックボックスに隠すことはできませんか?なぜ、基本的な組織の方法がずっと進化していないのか。

私は、新しい方法を得ることができないという利点は何ですか?ファイルシステムを使用してコードを整理することの継承上の利点は何ですか?

+0

「新しい方法を得ることから私たちを守ってくれる利点は何ですか?」 - 新しい方法の例がありますか?そうでない場合、質問は無意味です –

+0

私が考えることのできる最高のものは、マインドマップ/ UMLソフトウェアのようなものです。私たちは視覚化された方法(キャンバス)でプログラムを設計できます。しかし、さらに、クラス、メソッドをビジュアル化し、キャンバスの内部で個別に編集することができます。コードをファイルに整理する必要はありません。 – xhg

+1

"この組織のアプローチは、私に厄介で非効率的な印象を与える。 - これは主観的な前提であり、それで虚偽のものです(自分の主観的な経験で) – Dai

答えて

0

ソースコードの異なるディスク表現が試されています(たとえば、FlashがActionScriptをバイナリの.flaファイル内に保存する方法など)が一般的ではありません。誰も独自のファイル形式が好きではありません。また、Gitのようなテキストベースのソース管理システムを使用することができないということです。つまり、変更の競合を解決するためにテキストマージを行うことはできません。

ソースコードをツリー構造(ファイルごとに1つのOOPクラスや手続き型モジュールなど)でファイルに格納します。ネストされた名前空間はネストされたディレクトリで表されます。これは直感的です(ソース制御システムとの結合性を高めるためです)。

たとえば、Javaのように、ソースファイルに含まれるクラスと同じ名前を付け、そのパッケージを含むパッケージと同じディレクトリ名にする必要がある言語もあります。 C#やC++のような他の言語では、PrefabulatedAmulite.csというファイルの中にclass TurboEncabulatorがあると、コードベースに新しい人が混乱するため、意味があります。

+0

まず私の質問にお答えいただきありがとうございます。 オープンフォーマットが普及していることに同意します。 ソースコード管理に関しては、コードは常にテキストベースですが、組織は必ずしもGitの利便性を損なうものではありません。ファイルシステム(良い慣習でさえ)はツリーのような関係を扱う際には良いです。名前空間、サブ名前空間。しかし、ループ/サイクルの関係については、それをうまく処理することはできません。ディレクトリ構造を見るだけで、2つの異なるディレクトリにある2つのクラスの関係を簡単に観察することはできません。 – xhg

関連する問題