Maison >développement back-end >Golang >Créer votre premier projet avec Torpedo : un guide étape par étape
Lors de la création d'applications dans Golang, le respect des principes de l'architecture hexagonale peut garantir un code propre, modulaire et maintenable. Avec Torpedo, vous pouvez facilement implémenter cette architecture tout en accélérant votre processus de développement. Dans ce guide, nous vous expliquerons comment créer votre premier projet avec Torpedo, de l'installation à la génération d'entités et de cas d'utilisation.
Cet article est un résumé du guide de démarrage rapide documenté
Avant de nous lancer dans la création d'un projet, assurez-vous que Go est installé sur votre système. Ensuite, installez Torpedo en suivant les instructions du guide d'installation
Cet outil CLI gérera pour vous la génération de projets, la création d'entités et l'échafaudage de cas d'utilisation. Une fois installé, vous êtes prêt à créer votre premier projet.
Commençons par notre première application construite avec Torpedo !. Nous allons créer une application de réservation de vols appelée Booking Fly.
Une fois Torpedo installé, créer un nouveau projet est aussi simple que de l'exécuter :
mkdir booking-fly && cd booking-fly
torpedo init
Cette commande générera le dossier .torpedo où vous devrez définir vos entités et vos cas d'utilisation. Plus d'informations sur ce dossier peuvent être trouvées sur .torpedo dir struct
Ensuite, vous souhaiterez définir vos entités de domaine. Les entités sont les objets centraux de la logique métier de votre application, représentant des éléments tels que l'utilisateur, le produit ou la commande.
Pour définir votre première entité, créez un fichier YAML dans le répertoire .torpedo/entities. Par exemple, créons une simple entité Utilisateur :
.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
De plus, l'entité Trip est requise, créons donc une entité Trip :
.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 générera le code Go pour les entités User et Trip ainsi que ses opérations CRUD correspondantes, y compris les interfaces du référentiel et tout code de gestion de base de données nécessaire.
Une fois vos entités en place, il est temps de définir comment elles vont interagir avec les workflows de l'application à l'aide de cas d'usage. Les cas d'utilisation encapsulent les règles et processus métier qui agissent sur vos entités.
Créez un fichier YAML sous le répertoire .torpedo/use_cases pour définir votre cas d'utilisation. Voici un exemple de cas d'utilisation simple pour réserver un vol :
.torpedo/use_cases/booking_fly.yaml
mkdir booking-fly && cd booking-fly
Cette définition indique à Torpedo de créer le code squelette pour mettre en place votre logique personnalisée pour le traitement d'une réservation de vol en fonction d'un voyage et d'un utilisateur.
Torpedo élaborera le cas d'utilisation complet, y compris les interactions avec vos entités.
Après avoir terminé l'étape suivante (#5), veuillez lire le guide de démarrage rapide pour savoir comment coder votre logique dans le cas d'utilisation du squelette généré dans Cas d'utilisation
Une fois que vous avez défini vos entités et vos cas d'utilisation, Torpedo garantit que le câblage entre ces composants suit les principes de l'architecture hexagonale. Les cas d'utilisation interagiront avec les entités via les interfaces de service, tandis que vos adaptateurs (tels que des bases de données ou des API) géreront la persistance et la communication externe.
Il est maintenant temps d'écrire les spécifications de votre application pour tout rassembler !. La définition de l'application est le fichier le plus important car ici est décrite votre application. L'exemple suivant montre comment définir l'application Booking Fly :
.torpedo/app.yaml
torpedo init
Pour générer le code de l'application (entités, cas d'utilisation et plus), exécutez la commande :
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
Cette commande générera un échafaudage de projet, configurant la structure de répertoires basée sur l'architecture hexagonale. Le projet comprendra des dossiers principaux pour les entités, les cas d'utilisation et les adaptateurs. Cela garantit que votre logique métier et votre infrastructure restent découplées dès le départ.
Vous pouvez désormais étendre votre projet en ajoutant plus d'entités, de cas d'utilisation et même des adaptateurs personnalisés. La structure de Torpedo vous permet de garder votre code propre et modulaire, ce qui facilite la mise à l'échelle de votre application à mesure qu'elle se développe.
Découvrez également comment coder votre propre logique avec le code de cas d'utilisation généré.
Après avoir configuré les entités et les cas d'utilisation, vous êtes prêt à exécuter votre application. Torpedo comprend un serveur léger, basé sur le projet Gin Gonic, que vous pouvez exécuter à des fins de test et de développement. Utilisez simplement :
N'oubliez pas d'exécuter go mod spice avant de mettre à jour les dépendances !
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
Vous pouvez désormais interagir avec l'API de votre application, en exécutant les opérations CRUD et les cas d'utilisation que vous avez définis.
Torpedo facilite la génération de code Go propre et structuré avec l'architecture hexagonale. Mais ce n'est que le début ! Vous pouvez continuer à explorer les fonctionnalités de Torpedo en ajoutant des flux de travail plus complexes, en intégrant des services externes et en personnalisant le framework en fonction de vos besoins.
Restez à l'écoute pour découvrir des fonctionnalités plus avancées bientôt disponibles sur Torpedo et n'hésitez pas à partager vos commentaires pendant que vous explorez ce qui est possible !
Créer votre premier projet avec Torpedo est simple et rapide. En tirant parti de la puissance des schémas d'entité et des définitions de cas d'utilisation dans YAML, vous pouvez rapidement créer une application Golang robuste tout en conservant des principes architecturaux propres. Il est maintenant temps de plonger et de commencer à construire ! Faites-nous savoir ce que vous pensez et comment Torpedo peut vous aider dans vos futurs projets.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!