Mencipta Projek Pertama Anda dengan Torpedo: Panduan Langkah demi Langkah

Patricia Arquette
Lepaskan: 2024-11-18 09:06:02
asal
649 orang telah melayarinya

Creating Your First Project with Torpedo: A Step-by-Step Guide

Apabila membina aplikasi di Golang, mematuhi prinsip Seni Bina Heksagon boleh memastikan kod bersih, modular dan boleh diselenggara. Dengan Torpedo, anda boleh melaksanakan seni bina ini dengan mudah sambil mempercepatkan proses pembangunan anda. Dalam panduan ini, kami akan membincangkan cara membuat projek pertama anda dengan Torpedo, daripada pemasangan kepada penjanaan entiti dan kes penggunaan.

Siaran ini ialah ringkasan panduan permulaan pantas yang didokumenkan

1. Bermula dengan Torpedo

Sebelum kami membuat projek, pastikan anda telah memasang Go pada sistem anda. Kemudian, pasang Torpedo mengikut arahan pada panduan pemasangan

Alat CLI ini akan mengendalikan penjanaan projek, penciptaan entiti dan perancah bekas untuk anda. Setelah dipasang, anda sudah bersedia untuk membuat projek pertama anda.

2. Menyediakan Projek Pertama Anda

Mari mengemis dengan aplikasi pertama kami yang dibina dengan Torpedo!. Kami akan membina apl tempahan lalat yang dipanggil Tempahan Fly.

Dengan Torpedo dipasang, mencipta projek baharu semudah berjalan:

mkdir booking-fly && cd booking-fly
Salin selepas log masuk
Salin selepas log masuk
torpedo init
Salin selepas log masuk
Salin selepas log masuk

Arahan ini akan menjana folder .torpedo di mana anda harus mentakrifkan entiti dan kes penggunaan anda. Maklumat lanjut tentang folder ini boleh didapati di .torpedo dir struct

3. Mentakrifkan Entiti Pertama Anda

Seterusnya, anda perlu menentukan entiti domain anda. Entiti ialah objek teras dalam logik perniagaan aplikasi anda, yang mewakili perkara seperti Pengguna, Produk atau Pesanan.

Untuk menentukan entiti pertama anda, buat fail YAML di bawah direktori .torpedo/entiti. Sebagai contoh, mari buat entiti Pengguna yang mudah:

.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 

Salin selepas log masuk
Salin selepas log masuk

Selain itu entiti Trip diperlukan, jadi, mari buat entiti 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

Salin selepas log masuk
Salin selepas log masuk

Torpedo akan menjana kod Go untuk Pengguna dan entiti Trip bersama-sama dengan operasi CRUD yang sepadan, termasuk antara muka repositori dan sebarang kod pengendalian pangkalan data yang diperlukan.

4. Mencipta Kes Penggunaan

Setelah entiti anda tersedia, tiba masanya untuk menentukan cara mereka akan berinteraksi dengan aliran kerja aplikasi menggunakan kes penggunaan. Kes penggunaan merangkumi peraturan dan proses perniagaan yang bertindak ke atas entiti anda.

Buat fail YAML di bawah direktori .torpedo/use_cases untuk menentukan kes penggunaan anda. Berikut ialah contoh bekas penggunaan mudah untuk menempah lalat:

.torpedo/use_cases/booking_fly.yaml

mkdir booking-fly && cd booking-fly
Salin selepas log masuk
Salin selepas log masuk

Takrifan ini memberitahu Torpedo untuk mencipta kod rangka untuk meletakkan logik tersuai anda untuk memproses tempahan lalat diberikan Perjalanan dan Pengguna.

Torpedo akan memperancah kes penggunaan yang lengkap, termasuk interaksi dengan entiti anda.

Selepas melengkapkan langkah seterusnya (#5) sila baca panduan permulaan pantas untuk mengetahui tentang cara mengekod logik anda dalam kes penggunaan rangka yang dijana di Use Cases

5. Mendawai Semua Bersama

Setelah anda menentukan entiti dan kes penggunaan anda, Torpedo memastikan pendawaian antara komponen ini mengikut prinsip Seni Bina Heksagon. Kes penggunaan akan berinteraksi dengan entiti melalui antara muka perkhidmatan, manakala penyesuai anda (seperti pangkalan data atau API) mengendalikan kegigihan dan komunikasi luaran.

Kini tiba masanya untuk menulis spesifikasi apl anda untuk disatukan!. Definisi aplikasi ialah fail yang paling penting kerana di sini diterangkan apl anda. Contoh berikut menunjukkan cara mentakrifkan apl Booking Fly:

.torpedo/app.yaml

torpedo init
Salin selepas log masuk
Salin selepas log masuk

Untuk menjana kod aplikasi (entiti, kes penggunaan dan banyak lagi) jalankan arahan:

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 

Salin selepas log masuk
Salin selepas log masuk

Arahan ini akan menjana perancah projek, menyediakan struktur direktori berdasarkan Seni Bina Heksagon. Projek ini akan merangkumi folder teras untuk entiti, kes penggunaan dan penyesuai. Ia memastikan bahawa logik dan infrastruktur perniagaan anda kekal dipisahkan dari awal.

Kini anda boleh melanjutkan projek anda dengan menambahkan lebih banyak entiti, kes penggunaan dan juga penyesuai tersuai. Struktur Torpedo membolehkan anda memastikan kod anda bersih dan modular, menjadikannya mudah untuk menskalakan aplikasi anda semasa ia berkembang.

Juga lihat cara mengodkan logik anda sendiri dengan kod Use Case yang dijana.

6. Menjalankan Aplikasi Anda

Selepas menyediakan entiti dan kes penggunaan, anda sudah bersedia untuk menjalankan aplikasi anda. Torpedo termasuk pelayan ringan, berdasarkan projek Gin Gonic, yang boleh anda jalankan untuk ujian dan pembangunan. Hanya guna:

Jangan lupa jalankan go mod tidy sebelum mengemas kini kebergantungan!

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

Salin selepas log masuk
Salin selepas log masuk

Anda kini boleh berinteraksi dengan API aplikasi anda, menjalankan operasi CRUD dan kes penggunaan yang telah anda tetapkan.

7. Apa Seterusnya?

Torpedo memudahkan untuk menjana kod Go yang bersih dan berstruktur dengan Seni Bina Heksagon. Tetapi ini hanya permulaan! Anda boleh terus meneroka ciri Torpedo dengan menambahkan aliran kerja yang lebih kompleks, menyepadukan perkhidmatan luaran dan menyesuaikan rangka kerja untuk memenuhi keperluan anda.

Nantikan ciri lanjutan yang akan datang ke Torpedo tidak lama lagi, dan jangan ragu untuk berkongsi maklum balas anda sambil anda meneroka perkara yang mungkin!


Kesimpulan

Mencipta projek pertama anda dengan Torpedo adalah mudah dan pantas. Dengan memanfaatkan kuasa skema entiti dan menggunakan definisi kes dalam YAML, anda boleh dengan cepat merancah aplikasi Golang yang mantap sambil mengekalkan prinsip seni bina yang bersih. Kini tiba masanya untuk menyelam dan mula membina! Beritahu kami pendapat anda dan cara Torpedo boleh membantu projek masa depan anda.

Atas ialah kandungan terperinci Mencipta Projek Pertama Anda dengan Torpedo: Panduan Langkah demi Langkah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan