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
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.
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
torpedo init
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
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
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
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.
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
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
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
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
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.
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
Anda kini boleh berinteraksi dengan API aplikasi anda, menjalankan operasi CRUD dan kes penggunaan yang telah anda tetapkan.
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!
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!