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 サイトの他の関連記事を参照してください。

Golangは実際のアプリケーションに優れており、そのシンプルさ、効率性、並行性で知られています。 1)同時プログラミングはゴルチンとチャネルを通じて実装されます。2)柔軟なコードは、インターフェイスと多型を使用して記述されます。3)ネット/HTTPパッケージを使用したネットワークプログラミングを簡素化、4)効率的な同時クローラーを構築する、5)ツールと最高の実践を通じてデバッグと最適化。

GOのコア機能には、ガベージコレクション、静的リンク、並行性サポートが含まれます。 1. GO言語の並行性モデルは、GoroutineとChannelを通じて効率的な同時プログラミングを実現します。 2.インターフェイスと多型は、インターフェイスメソッドを介して実装されているため、異なるタイプを統一された方法で処理できます。 3.基本的な使用法は、関数定義と呼び出しの効率を示しています。 4。高度な使用法では、スライスは動的なサイズ変更の強力な機能を提供します。 5.人種条件などの一般的なエラーは、Getest Raceを通じて検出および解決できます。 6.パフォーマンス最適化Sync.Poolを通じてオブジェクトを再利用して、ゴミ収集圧力を軽減します。

GO言語は、効率的でスケーラブルなシステムの構築においてうまく機能します。その利点には次のものがあります。1。高性能:マシンコードにコンパイルされ、速度速度が速い。 2。同時プログラミング:ゴルチンとチャネルを介してマルチタスクを簡素化します。 3。シンプルさ:簡潔な構文、学習コストとメンテナンスコストの削減。 4。クロスプラットフォーム:クロスプラットフォームのコンパイル、簡単な展開をサポートします。

SQLクエリの結果の並べ替えについて混乱しています。 SQLを学習する過程で、しばしば混乱する問題に遭遇します。最近、著者は「Mick-SQL Basics」を読んでいます...

テクノロジースタックの収束とテクノロジーの選択の関係ソフトウェア開発におけるテクノロジーの選択、テクノロジースタックの選択と管理は非常に重要な問題です。最近、一部の読者が提案しています...

ゴーラン...

GO言語で3つの構造を比較および処理する方法。 GOプログラミングでは、2つの構造の違いを比較し、これらの違いを...

Goでグローバルにインストールされたパッケージを表示する方法は? GO言語で開発する過程で、GOはしばしば使用します...


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。
