# สถาปัตยกรรม Symfony (Symfony) > Hexagonal architecture, DDD, CQRS, repositories, DTOs, value objects, bounded contexts - 24 คำถามสัมภาษณ์ - Senior - [คำถามสัมภาษณ์: Symfony](https://sharpskill.dev/th/technologies/symfony/interview-questions.md) ## 1. ใน hexagonal architecture บทบาทหลักของ ports คืออะไร? **คำตอบ** ports คืออินเทอร์เฟซที่กำหนดสัญญาระหว่างโดเมนธุรกิจกับโลกภายนอก primary ports (หรือ driving ports) ช่วยให้ตัวกระทำภายนอกสามารถกระตุ้นการกระทำในโดเมนได้ ในขณะที่ secondary ports (หรือ driven ports) ช่วยให้โดเมนโต้ตอบกับโครงสร้างพื้นฐานภายนอก เช่น ฐานข้อมูลหรือบริการของบุคคลที่สาม การทำให้เป็นนามธรรมนี้ช่วยให้เปลี่ยนการอิมพลีเมนต์ได้โดยไม่กระทบต่อโดเมนธุรกิจ ## 2. adapter ใน hexagonal architecture ของ Symfony คืออะไร? **คำตอบ** adapter คือการอิมพลีเมนต์ที่เป็นรูปธรรมของ port ซึ่งเชื่อมโลกภายนอกเข้ากับ domain ตัวอย่างเช่น DoctrineUserRepository เป็น adapter ที่อิมพลีเมนต์ port UserRepositoryInterface ในฝั่ง primary นั้น controller ของ Symfony เป็น adapter ที่ปรับ HTTP request ให้เข้ากับ use case ของ domain การแยกส่วนนี้ช่วยให้ทดสอบ domain ได้อย่างเป็นอิสระจาก infrastructure ## 3. ใน Domain-Driven Design คุณลักษณะหลักของ Value Object คืออะไร? **คำตอบ** Value Object ถูกกำหนดด้วยแอตทริบิวต์ของมัน ไม่ใช่ด้วยตัวระบุ Value Object สองตัวที่มีค่าเหมือนกันจะถือว่าเท่ากัน พวกมันเป็น immutable: การแก้ไขใด ๆ จะสร้างอินสแตนซ์ใหม่ ตัวอย่างเช่น ออบเจ็กต์ Email หรือ Money เป็น Value Object ทั่วไป ความ immutable นี้รับประกันความสอดคล้องของข้อมูลและทำให้การวิเคราะห์โค้ดในระบบที่ซับซ้อนง่ายขึ้น ## มีอีก 21 คำถาม - บทบาทของ Aggregate Root ใน DDD คืออะไร? - DTO (Data Transfer Object) คืออะไร และเมื่อใดควรใช้ใน Symfony? สมัครฟรี: https://sharpskill.dev/th/login ## หัวข้อสัมภาษณ์ Symfony อื่นๆ - [PHP สมัยใหม่ (8.1+)](https://sharpskill.dev/th/technologies/symfony/interview-questions/php-modern-features.md): 20 คำถาม, Junior - [พื้นฐาน Symfony](https://sharpskill.dev/th/technologies/symfony/interview-questions/symfony-basics.md): 25 คำถาม, Junior - [Routing & Controllers](https://sharpskill.dev/th/technologies/symfony/interview-questions/routing-controllers.md): 20 คำถาม, Junior - [Twig & Templates](https://sharpskill.dev/th/technologies/symfony/interview-questions/twig-templates.md): 20 คำถาม, Junior - [พื้นฐาน Doctrine ORM](https://sharpskill.dev/th/technologies/symfony/interview-questions/doctrine-orm-basics.md): 25 คำถาม, Junior - [ฟอร์ม Symfony](https://sharpskill.dev/th/technologies/symfony/interview-questions/forms.md): 22 คำถาม, Junior - [การตรวจสอบความถูกต้องของข้อมูล](https://sharpskill.dev/th/technologies/symfony/interview-questions/validation.md): 18 คำถาม, Junior - [Dependency Injection & Services](https://sharpskill.dev/th/technologies/symfony/interview-questions/dependency-injection.md): 24 คำถาม, Mid-Level - [Security & Authentication](https://sharpskill.dev/th/technologies/symfony/interview-questions/security-authentication.md): 26 คำถาม, Mid-Level - [Doctrine ขั้นสูง](https://sharpskill.dev/th/technologies/symfony/interview-questions/doctrine-advanced.md): 24 คำถาม, Mid-Level - [API Platform](https://sharpskill.dev/th/technologies/symfony/interview-questions/api-platform.md): 22 คำถาม, Mid-Level - [Serializer Component](https://sharpskill.dev/th/technologies/symfony/interview-questions/serializer.md): 20 คำถาม, Mid-Level - [Events & Event Subscribers](https://sharpskill.dev/th/technologies/symfony/interview-questions/events-subscribers.md): 20 คำถาม, Mid-Level - [Console & Commands](https://sharpskill.dev/th/technologies/symfony/interview-questions/console-commands.md): 18 คำถาม, Mid-Level - [Messenger Component](https://sharpskill.dev/th/technologies/symfony/interview-questions/messenger.md): 22 คำถาม, Mid-Level - [HTTP Client](https://sharpskill.dev/th/technologies/symfony/interview-questions/http-client.md): 18 คำถาม, Mid-Level - [Cache & ประสิทธิภาพ](https://sharpskill.dev/th/technologies/symfony/interview-questions/cache.md): 20 คำถาม, Mid-Level - [Workflow Component](https://sharpskill.dev/th/technologies/symfony/interview-questions/workflow.md): 18 คำถาม, Mid-Level - [Testing Symfony](https://sharpskill.dev/th/technologies/symfony/interview-questions/testing.md): 22 คำถาม, Mid-Level - [Mailer Component](https://sharpskill.dev/th/technologies/symfony/interview-questions/mailer.md): 16 คำถาม, Mid-Level - [การแปลและ i18n](https://sharpskill.dev/th/technologies/symfony/interview-questions/translations.md): 16 คำถาม, Mid-Level - [EasyAdmin Bundle](https://sharpskill.dev/th/technologies/symfony/interview-questions/easyadmin.md): 18 คำถาม, Mid-Level - [ประสิทธิภาพและการเพิ่มประสิทธิภาพ](https://sharpskill.dev/th/technologies/symfony/interview-questions/performance-optimization.md): 22 คำถาม, Senior - [ความปลอดภัยขั้นสูง](https://sharpskill.dev/th/technologies/symfony/interview-questions/security-advanced.md): 22 คำถาม, Senior - [Custom Bundles](https://sharpskill.dev/th/technologies/symfony/interview-questions/custom-bundles.md): 20 คำถาม, Senior - [Microservices ด้วย Symfony](https://sharpskill.dev/th/technologies/symfony/interview-questions/microservices.md): 22 คำถาม, Senior - [Real-time & WebSockets](https://sharpskill.dev/th/technologies/symfony/interview-questions/real-time.md): 18 คำถาม, Senior - [Deployment & DevOps](https://sharpskill.dev/th/technologies/symfony/interview-questions/deployment-devops.md): 20 คำถาม, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/th/technologies/symfony/interview-questions/architecture-patterns