Torpedo を使用して最初のプロジェクトを作成する: ステップバイステップ ガイド
Golang でアプリケーションを構築する場合、ヘキサゴナル アーキテクチャの原則に従うことで、クリーンでモジュール化された保守可能なコードを確保できます。 Torpedo を使用すると、開発プロセスをスピードアップしながら、このアーキテクチャを簡単に実装できます。このガイドでは、インストールからエンティティとユースケースの生成まで、Torpedo を使用して最初のプロジェクトを作成する方法を説明します。
この投稿は文書化されたクイック スタート ガイドの概要です
1. Torpedo の使い方
プロジェクトの作成に入る前に、システムに Go がインストールされていることを確認してください。次に、インストール ガイドの指示に従って Torpedo をインストールします
この CLI ツールは、プロジェクトの生成、エンティティの作成、およびユースケースのスキャフォールディングを処理します。インストールしたら、最初のプロジェクトを作成する準備が整います。
2. 最初のプロジェクトのセットアップ
Torpedo! を使用して構築した最初のアプリケーションから始めましょう。私たちは、Booking Fly というフライ予約アプリを構築する予定です。
Torpedo がインストールされている場合、新しいプロジェクトの作成は次のコマンドを実行するのと同じくらい簡単です。
mkdir booking-fly && cd booking-fly
torpedo init
このコマンドは、エンティティとユースケースを定義するフォルダー .torpedo を生成します。このフォルダーの詳細については、.torpedo dir struct
を参照してください。3. 最初のエンティティの定義
次に、ドメイン エンティティを定義します。エンティティは、アプリケーションのビジネス ロジックの中心となるオブジェクトであり、ユーザー、製品、注文などを表します。
最初のエンティティを定義するには、.torpedo/entities ディレクトリの下に YAML ファイルを作成します。たとえば、単純な User エンティティを作成してみましょう:
.torpedo/entities/user.yaml
version: torpedo.darksub.io/v1.0 kind: entity spec: name: "user" plural: "users" description: "The frequent flyer user" doc: | The user entity represents a system user but also a frequent flyer. This entity is only for the example purpose. schema: reserved: id: type: ulid fields: - name: name type: string description: "The user full name" - name: email type: string description: "The user contact email" - name: password # it is not recommended to save passwords, this is an example only type: string encrypted: true description: "The user system password" - name: plan type: string description: "The user membership plan" validate: list: values: - GOLD - SILVER - BRONZE - name: miles type: integer description: "The accumulated flyer miles" relationships: - name: trips type: $rel ref: ".torpedo/entities/trip.yaml" cardinality: hasMany load: type: nested metadata: maxItems: 100 adapters: input: - type: http output: - type: memory
さらに、旅行エンティティが必要なので、旅行エンティティを作成しましょう:
.torpedo/entities/trip.yaml
version: torpedo.darksub.io/v1.0 kind: entity spec: name: trip plural: trips description: "The user fly trip reservations" doc: | The trip entity handles all data related with the frequent flyer trip schema: reserved: id: type: ulid fields: - name: departure type: string description: "The trip departure airport" - name: arrival type: string description: "The trip arrival airport" - name: miles type: integer description: "The trip miles" - name: from type: date description: "The trip from date" - name: to type: date description: "The trip to date" adapters: input: - type: http output: - type: memory
Torpedo は、User エンティティと Trip エンティティの Go コードと、リポジトリ インターフェイスや必要なデータベース処理コードを含む対応する CRUD 操作を生成します。
4. ユースケースの作成
エンティティを配置したら、ユースケースを使用してエンティティがアプリケーションのワークフローとどのように対話するかを定義します。ユースケースは、エンティティに作用するビジネス ルールとプロセスをカプセル化します。
.torpedo/use_cases ディレクトリの下に YAML ファイルを作成して、ユースケースを定義します。 飛行機の予約の簡単な使用例の例を次に示します。
.torpedo/use_cases/booking_fly.yaml
mkdir booking-fly && cd booking-fly
この定義は、旅行とユーザーが指定された航空予約を処理するためのカスタム ロジックを組み込むスケルトン コードを作成するように Torpedo に指示します。
Torpedo は、エンティティとの対話を含む、完全なユースケースの足場を築きます。
次のステップ (#5) を完了したら、クイック スタート ガイドを読んで、ユース ケースで生成されたスケルトン ユース ケース内でロジックをコーディングする方法を学習してください
5. すべてを接続する
エンティティとユースケースを定義すると、Torpedo はこれらのコンポーネント間の配線がヘキサゴナル アーキテクチャの原則に従っていることを確認します。ユースケースはサービス インターフェイスを介してエンティティと対話し、アダプター (データベースや API など) は永続性と外部通信を処理します。
今度は、すべてをまとめるためにアプリの仕様を作成します。アプリケーション定義は、ここにアプリが記述されているため、最も重要なファイルです。次の例は、Booking Fly アプリを定義する方法を示しています:
.torpedo/app.yaml
torpedo init
アプリケーション コード (エンティティ、ユース ケースなど) を生成するには、次のコマンドを実行します。
version: torpedo.darksub.io/v1.0 kind: entity spec: name: "user" plural: "users" description: "The frequent flyer user" doc: | The user entity represents a system user but also a frequent flyer. This entity is only for the example purpose. schema: reserved: id: type: ulid fields: - name: name type: string description: "The user full name" - name: email type: string description: "The user contact email" - name: password # it is not recommended to save passwords, this is an example only type: string encrypted: true description: "The user system password" - name: plan type: string description: "The user membership plan" validate: list: values: - GOLD - SILVER - BRONZE - name: miles type: integer description: "The accumulated flyer miles" relationships: - name: trips type: $rel ref: ".torpedo/entities/trip.yaml" cardinality: hasMany load: type: nested metadata: maxItems: 100 adapters: input: - type: http output: - type: memory
このコマンドはプロジェクト スキャフォールドを生成し、ヘキサゴナル アーキテクチャに基づいてディレクトリ構造を設定します。プロジェクトには、エンティティ、ユースケース、およびアダプターのコアフォルダーが含まれます。これにより、ビジネス ロジックとインフラストラクチャが最初から分離されたままになります。
エンティティ、ユースケース、さらにはカスタム アダプターを追加してプロジェクトを拡張できるようになりました。 Torpedo の構造により、コードをクリーンでモジュール化した状態に保つことができるため、アプリケーションの成長に合わせて簡単に拡張できます。
生成されたユースケース コード内で独自のロジックをコーディングする方法もご覧ください。
6. アプリケーションの実行
エンティティとユースケースを設定したら、アプリケーションを実行する準備が整います。 Torpedo には、Gin Gonic プロジェクトに基づく軽量サーバーが含まれており、テストと開発のために実行できます。単純に使用します:
依存関係を更新する前に go mod tiny を実行することを忘れないでください!
version: torpedo.darksub.io/v1.0 kind: entity spec: name: trip plural: trips description: "The user fly trip reservations" doc: | The trip entity handles all data related with the frequent flyer trip schema: reserved: id: type: ulid fields: - name: departure type: string description: "The trip departure airport" - name: arrival type: string description: "The trip arrival airport" - name: miles type: integer description: "The trip miles" - name: from type: date description: "The trip from date" - name: to type: date description: "The trip to date" adapters: input: - type: http output: - type: memory
これで、アプリケーションの API を操作して、定義した CRUD 操作とユースケースを実行できるようになります。
7. 次は何ですか?
Torpedo を使用すると、Hexagonal Architecture を使用してクリーンで構造化された Go コードを簡単に生成できます。しかし、これはほんの始まりにすぎません。より複雑なワークフローを追加し、外部サービスを統合し、ニーズに合わせてフレームワークをカスタマイズすることで、Torpedo の機能を引き続き探索できます。
Torpedo に間もなく追加されるさらに高度な機能にご期待ください。何が可能なのかを探りながら、お気軽にフィードバックを共有してください。
結論
Torpedo を使用して最初のプロジェクトを作成するのは簡単かつ迅速です。 YAML のエンティティ スキーマとユース ケース定義の力を活用することで、クリーンなアーキテクチャ原則を維持しながら、堅牢な Golang アプリケーションを迅速に構築できます。さあ、早速構築を始めましょう!ご意見と、Torpedo が将来のプロジェクトにどのように役立つかをお知らせください。
以上がTorpedo を使用して最初のプロジェクトを作成する: ステップバイステップ ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Golangは、パフォーマンスとスケーラビリティの点でPythonよりも優れています。 1)Golangのコンピレーションタイプの特性と効率的な並行性モデルにより、高い並行性シナリオでうまく機能します。 2)Pythonは解釈された言語として、ゆっくりと実行されますが、Cythonなどのツールを介してパフォーマンスを最適化できます。

Golangは並行性がCよりも優れていますが、Cは生の速度ではGolangよりも優れています。 1)Golangは、GoroutineとChannelを通じて効率的な並行性を達成します。これは、多数の同時タスクの処理に適しています。 2)Cコンパイラの最適化と標準ライブラリを介して、極端な最適化を必要とするアプリケーションに適したハードウェアに近い高性能を提供します。

goisidealforforbeginnersandsutable forcloudnetworkservicesduetoitssimplicity、andconcurrencyfeatures.1)installgofromtheofficialwebsiteandverify with'goversion'.2)

Golangは迅速な発展と同時シナリオに適しており、Cは極端なパフォーマンスと低レベルの制御が必要なシナリオに適しています。 1)Golangは、ごみ収集と並行機関のメカニズムを通じてパフォーマンスを向上させ、高配列Webサービス開発に適しています。 2)Cは、手動のメモリ管理とコンパイラの最適化を通じて究極のパフォーマンスを実現し、埋め込みシステム開発に適しています。

GolangとPythonにはそれぞれ独自の利点があります。Golangは高性能と同時プログラミングに適していますが、PythonはデータサイエンスとWeb開発に適しています。 Golangは同時性モデルと効率的なパフォーマンスで知られていますが、Pythonは簡潔な構文とリッチライブラリエコシステムで知られています。

GolangとCのパフォーマンスの違いは、主にメモリ管理、コンピレーションの最適化、ランタイム効率に反映されています。 1)Golangのゴミ収集メカニズムは便利ですが、パフォーマンスに影響を与える可能性があります。

GolangとCにはそれぞれパフォーマンス競争において独自の利点があります。1)Golangは、高い並行性と迅速な発展に適しており、2)Cはより高いパフォーマンスと微細な制御を提供します。選択は、プロジェクトの要件とチームテクノロジースタックに基づいている必要があります。

GolangisidealforBuildingsCalables Systemsduetoitsefficiency andConcurrency、Whilepythonexcelsinquickscriptinganddataanalysisduetoitssimplicityand vastecosystem.golang'ssignencouragesclean、readisinediteNeditinesinedinediseNabletinedinedinedisedisedioncourase
