Nunuは、Goアプリケーションを構築するためのスキャフォールディングツールです。その名前は、リーグ・オブ・レジェンドのゲームキャラクターから来ており、イエティの肩に乗る小さな男の子を意味します。Nunuのように、このプロジェクトも巨人の肩の上に立っており、Goエコシステムからの人気のあるライブラリの組み合わせに基づいて構築されています。この組み合わせにより、効率的で信頼性の高いアプリケーションを迅速に構築できます。
🚀ヒント: このプロジェクトは非常に完成度が高いため、更新は頻繁ではありませんが、ぜひご利用ください。

MCP-GO: https://github.com/mark3labs/mcp-go
その他多数...
Nunuは、クラシックなレイヤードアーキテクチャを採用しています。モジュラリティとデカップリングを実現するために、依存性注入フレームワークWireを使用しています。


.
├── api
│ └── v1
├── cmd
│ ├── migration
│ ├── server
│ │ ├── wire
│ │ │ ├── wire.go
│ │ │ └── wire_gen.go
│ │ └── main.go
│ └── task
├── config
├── deploy
├── docs
├── internal
│ ├── handler
│ ├── middleware
│ ├── model
│ ├── repository
│ ├── server
│ └── service
├── pkg
├── scripts
├── test
│ ├── mocks
│ └── server
├── web
├── Makefile
├── go.mod
└── go.sum
プロジェクトのアーキテクチャは、典型的なレイヤード構造に従っており、以下のモジュールで構成されています:
cmd: このモジュールには、アプリケーションのエントリーポイントが含まれており、異なるコマンドに基づいて異なる操作を実行します(例:サーバーの起動、データベースマイグレーションの実行など)。各サブモジュールには、エントリーファイルとしてのmain.goファイルと、依存性注入のためのwire.goおよびwire_gen.goファイルが含まれています。config: このモジュールには、アプリケーションの設定ファイルが含まれており、開発環境と本番環境など、異なる環境に対する異なる設定を提供します。deploy: このモジュールは、アプリケーションのデプロイに使用され、デプロイスクリプトと設定ファイルが含まれています。internal: このモジュールは、アプリケーションのコアモジュールであり、さまざまなビジネスロジックの実装が含まれています。
handler: このサブモジュールには、HTTPリクエストを処理するハンドラーが含まれており、リクエストを受け取り、対応するサービスを呼び出して処理します。
job: このサブモジュールには、バックグラウンドタスクのロジックが含まれています。
model: このサブモジュールには、データモデルの定義が含まれています。
repository: このサブモジュールには、データアクセス層の実装が含まれており、データベースとのやり取りを担当します。
server: このサブモジュールには、HTTPサーバーの実装が含まれています。
service: このサブモジュールには、ビジネスロジックの実装が含まれており、特定のビジネス操作を処理します。
pkg: このモジュールには、いくつかの共通のユーティリティと機能が含まれています。
scripts: このモジュールには、プロジェクトのビルド、テスト、デプロイメント操作用のスクリプトファイルが含まれています。
storage: このモジュールは、ファイルやその他の静的リソースを保存するために使用されます。
test: このモジュールには、さまざまなモジュールのユニットテストが含まれており、モジュールに基づいてサブディレクトリに整理されています。
web: このモジュールには、HTML、CSS、JavaScriptなど、フロントエンド関連のファイルが含まれています。
さらに、ライセンスファイル、ビルドファイル、READMEなど、いくつかの他のファイルとディレクトリが含まれています。全体として、プロジェクトのアーキテクチャは明確であり、各モジュールの責任が明確であり、理解とメンテナンスが容易です。
Nunuを使用するには、システムに次のソフトウェアがインストールされている必要があります:
次のコマンドでNunuをインストールできます:
go install github.com/go-nunu/nunu@latest
ヒント:
go installが成功してもnunuコマンドが認識されない場合は、環境変数が設定されていないためです。GOBINディレクトリを環境変数に追加してください。
次のコマンドで新しいGoプロジェクトを作成できます:
nunu new projectName
デフォルトでは、GitHubソースからプルしますが、中国で加速されたリポジトリを使用することもできます:
// 基本テンプレートを使用する
nunu new projectName -r https://gitee.com/go-nunu/nunu-layout-basic.git
// 高度なテンプレートを使用する
nunu new projectName -r https://gitee.com/go-nunu/nunu-layout-advanced.git
このコマンドはprojectNameという名前のディレクトリを作成し、その中にエレガントなGoプロジェクト構造を生成します。
次のコマンドを使用して、プロジェクトのハンドラー、サービス、リポジトリ、モデルなどのコンポーネントを作成できます:
nunu create handler user
nunu create service user
nunu create repository user
nunu create model user
または
nunu create all user
これらのコマンドは、それぞれUserHandler、UserService、UserRepository、UserModelという名前のコンポーネントを作成し、正しいディレクトリに配置します。
次のコマンドでプロジェクトをすぐに実行できます:
nunu run
このコマンドは、Goプロジェクトを起動し、ファイルが更新されたときにホットリロードをサポートします。
次のコマンドでwire.goをすぐにコンパイルできます:
nunu wire
このコマンドは、wire.goファイルをコンパイルし、必要な依存関係を生成します。
問題を発見したり、改善提案がある場合は、遠慮なく問題を提起したり、プルリクエストを送信してください。あなたの貢献を大歓迎します!
Nunuは、MITライセンスの下でリリースされています。詳細については、LICENSEファイルを参照してください。