私はGo TourとGoogled "golangパッケージ"を読んだことがありますが、中程度のサイズのアプリケーションを整理するためのGoのベストプラクティスについてのアドバイスはまだ見つかりませんでした。Goプログラム - パッケージなどを整理していますか?
概念的にいくつかの異なる部分(おそらく10^3-10^4 LOC)があり、他のアプリケーションで使用するために再利用可能なライブラリを作成するつもりはない場合、すべてのソースコードファイルはpackage main
?永続的に保存されたデータ
- の束を管理
- 何か:たとえば...
を明確にするために
、私のプログラムは、次の主要なチャンクを持つことになりますと言うことができます通常の作成、読み取り、更新、削除の操作を許可する
ヒト/座標
- 何か:たとえば...
- 何かが定期的にSOAPを使用して、Webサービスからのデータ更新をフェッチこれら
- 何かの間で仲介格納されたデータを表示することができ
- 何か。
これはMVCとデータのフェッチャーになります。人々は何をすべきかで周り見てから
は、私は今、私は
- は
package main
とその中のfunc main() { ... }
といくつかのmain.go
を入れてそこに $GOPATH/src/myprogramname
を作成する必要があります疑い。- 常にどこパッケージ名など、これらのサブディレクトリ内のファイル.GOは
package fetch
で始まる必要があり$GOPATH/src/myprogramname/model
$GOPATH/src/myprogramname/view
$GOPATH/src/myprogramname/control
$GOPATH/src/myprogramname/fetch
- のようないくつかのサブディレクトリを作成しますサブディレクトリ名と一致します。
main.go
の成長に合わせて私のmain.go
はおそらくimport (... "fetch"; "model"; "view"; "control")
- 、目的に応じて名付けられ、他の適度なサイズの.GOのファイルに分割します。
-
cd $GOPATH/src/myprogramname go build
することにより、上記のパッケージサブディレクトリに* .GOを含むプログラムの構築は、すべて私が行う必要があるということですか?それは物事を整理するための適切な慣用的なGoの方法ですか?私は知っているべきであるか、または考えているべきことがさらにありますか?いくつかの標準的なWebページやPDFが見落とされていますが、この情報を見つけるために読むべきですか?
要するに、私は10000行main.goにすべてが入っていることを望んでいません。よく知られている構造化プログラミングやOOの原則に従って、ファイル、サブディレクトリ、パッケージ、およびその他の組織単位にコードを編成するための慣用的なGoの原則は何ですか?
これは一般的なアドバイスですが、詳細を探していましたが、明確にするために質問を更新します。 – RedGrittyBrick
詳細をつけてこれ以上のことをすることはできませんでした。私はあなたのアップデートをチェックし、私の答えに提案を追加します:) – Chryor