プロジェクト構造とガイドライン



私のポストを読むと、最小限のGo Webサービスの出発点を持つべきです.最初のプロジェクトでは、プロジェクトのベースにあるすべてのコードを1つのフォルダーに保存するのは簡単ですが、いくつかの時点で再構築する必要があります.
パッケージ
すべてのGOコードはパッケージに編成されます、そして、それは単に数から成ります.ファイルを移動します.パッケージはGOコードにアクセスするエントリポイントです.
  • 複数のファイルを使用するベストプラクティス
    A .できるだけ多くのファイルにあなたのコードを分離すること自由に感じなさい.
    それはあなたの周りの道をナビゲートするのは簡単です
    C .緩急カップルサービスのセクションまたはアプリケーション
  • キープタイプ
    コアの型をファイルの先頭にグループ化しておくことはよくあります.
  • 責任によって組織する

  • 他の言語では、モデルやタイプによって型を編成しますが、goでは、関数の責任によってコードを整理します.
  • godocを使い始める
    GoDocはGoプログラムを抽出して生成するドキュメントです.これはWebサーバーとして実行し、Webページとしてドキュメントを紹介します.
  • は、メインにあなたのビジネスロジックを書きません.ゴー
  • 命名規則
  • パッケージ名は小文字でなければなりません.SnakeRoundケースやキャメルケースを使用しないでください.
  • はUtil、一般的な、スクリプトなどの過度に使用する用語を避ける
  • は、単体形式
  • を使います
  • renameは同じ規則に従うべきです
  • import (
    gourl "net/url"
    myurl "myApp/url"
    )
    リポジトリ構造例:*
    `` fooApp/
    サークル.気象研
    Dockerfile
    CMD
    FACSRV
    メイン.試み
    フックロ
    メイン.試み
    PKG
    FS
    ファイル.試み
    テスト.試み
    模擬.試み
    モッケンテスト試み
    マージ
    マージ.試み
    メルゲイトテスト.試み
    API
    API.試み
    アピワンテスト.試み

    あなたが気づいたように、機能的なテストがあります.ファイルを同じディレクトリに移動します.Goでは、単位でテストを保存します.行け.goこれらのファイルを実行し、テストを実行するボックスのテストコマンドを実行します.
    パッケージ構造で使用する一般用語
  • /Cmd
    このフォルダには、プロジェクトの主なアプリケーションエントリポイントファイルが含まれ、ディレクトリ名にはバイナリの名前が一致します.
  • /pkg
    このフォルダには、他のサービスを消費するのに最適なコードが含まれます.これはAPIクライアント、または他のプロジェクトに便利であるかもしれませんが、独自のプロジェクトを正当化しないユーティリティ関数を含むことができます.
  • /内部
    このパッケージは、サービスで使用されるプライベートライブラリコードを保持しており、サービスの機能に固有であり、他のサービスと共有されません.
  • gomod
    どうぞ.mod fileはモジュールのモジュールパスを定義します.これは、ルートディレクトリ用のインポートパスであり、依存関係の要件です.
  • gosumはすべての依存関係チェックサムを含み、goツールによって管理されます.行くのチェックサム.sum fileは、直接的および間接的な依存関係のチェックサムを検証するのに使われます.
  • 例えば

    ├── 許可
    ├── READMEMD
    ├── 設定.試み
    ├── 行け.mod
    ├── 行け.合計
    ├── clientlib
    │ ├── リブ.試み
    │ └── libountテスト.試み
    ├── CMD
    │ ├── クライアント
    │ │ └── メイン.試み
    │ └── modlibサーバ
    │ └── メイン.試み
    ├── 内部
    │ └── 認証
    │ ├── Auth試み
    │ └── 認証テスト.試み
    └── serverlib
    └── リブ.試み

    ありがとう