โป การ์เซีย -> แคตตาล็อกโปรโมชั่น
ทำด้วย
- พีเอชพี 8.1
- ดีดีดี
- สถาปัตยกรรมหกเหลี่ยม (พอร์ตและอะแดปเตอร์)
- ซีคิวอาร์เอส
- นักเทียบท่า
- การทดสอบด้วย PHPUnit
คำแนะนำหลัก
- เรียกใช้คอนเทนเนอร์นักเทียบท่า:
docker-compose up -d
- ในการรันครั้งแรก ให้ติดตั้งการพึ่งพา:
docker-compose exec php-fpm bash
จากนั้น composer install
เส้นทาง API
- http://localhost:33000/api/products-with-discounts (สินค้าทั้งหมด)
- http://localhost:33000/api/products-with-discounts?filterByCategory=boots (กรองตามหมวดหมู่)
การทดสอบ
- สำหรับการทดสอบการเปิดตัว
docker-compose exec php-fpm bash
จากนั้น vendor/bin/phpunit --testdox
คำอธิบายเกี่ยวกับการตัดสินใจ
- ฉันใช้ Symfony เพื่อพัฒนาผลิตภัณฑ์/ส่วนลด API แบบง่าย และการตอบกลับจากสิ่งเหล่านั้นคือรายการผลิตภัณฑ์ที่ใช้ส่วนลด
- ฉันใช้นักเทียบท่าธรรมดา (เว็บเซิร์ฟเวอร์ nginx / php-fpm / mongo) เพื่อรันโปรเจ็กต์
- ฉันตัดสินใจใช้ฐานข้อมูล "ในหน่วยความจำ" เพื่อการทำงานของแบบฝึกหัดนี้ แต่ในโครงการที่ฉันพัฒนาที่เก็บ Mongo เพราะในแบบฝึกหัดพูดว่า "คุณต้องคำนึงถึง AI ฉันตัดสินใจว่าจะใช้ฐานข้อมูล "ในหน่วยความจำ" เพื่อฟังก์ชันการทำงานเพียงอย่างเดียว ของแบบฝึกหัดนี้ แต่ในโครงการ ฉันพัฒนาที่เก็บ mongo เพราะในแบบฝึกหัดพูดว่า "คุณต้องคำนึงว่ารายการนี้สามารถเติบโตจนมีผลิตภัณฑ์ได้ 20,000 รายการ" และ mongoDB อาจเป็นตัวเลือกที่ดีในเรื่องนี้ posibiliry.ccount ว่ารายการนี้สามารถเพิ่มจำนวนผลิตภัณฑ์ได้ถึง 20,000 รายการ" และ mongoDB อาจจะเป็นตัวเลือกที่ดีในความเป็นไปได้นี้
- ฉันได้สร้างโครงสร้างทั้งหมดด้วยสถาปัตยกรรมหกเหลี่ยมและ DDD โดยเทคนิคนี้แยกกฎเกณฑ์ทางธุรกิจของเราออกจากโค้ดที่เหลือ
- บริบทขอบเขตหนึ่ง "แค็ตตาล็อก" ภายในนี้มี 3 เอนทิตี (Product, ProductDiscount และ ProductPriceSummary)
- ฉันใช้รูปแบบ CQRS ในกรณีการใช้งานของเรา (คำสั่งและการสืบค้น) ซึ่งช่วยเราในการทดสอบ