# Arsitektur Symfony (Symfony) > Hexagonal architecture, DDD, CQRS, repositories, DTOs, value objects, bounded contexts - 24 pertanyaan wawancara - Senior - [Pertanyaan Wawancara: Symfony](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara.md) ## 1. Dalam hexagonal architecture, apa peran utama ports? **Jawaban** Ports adalah interface yang mendefinisikan kontrak antara domain bisnis dan dunia luar. Primary ports (atau driving ports) memungkinkan aktor eksternal memicu aksi di dalam domain, sedangkan secondary ports (atau driven ports) memungkinkan domain berinteraksi dengan infrastruktur eksternal seperti basis data atau layanan pihak ketiga. Abstraksi ini memungkinkan perubahan implementasi tanpa memengaruhi domain bisnis. ## 2. Apa itu adapter dalam hexagonal architecture Symfony? **Jawaban** Adapter adalah implementasi konkret dari sebuah port yang menjembatani dunia luar dan domain. Misalnya, DoctrineUserRepository adalah adapter yang mengimplementasikan port UserRepositoryInterface. Di sisi primary, sebuah controller Symfony adalah adapter yang mengadaptasi request HTTP ke use case domain. Pemisahan ini memungkinkan pengujian domain secara independen dari infrastructure. ## 3. Dalam Domain-Driven Design, apa karakteristik utama dari sebuah Value Object? **Jawaban** Sebuah Value Object didefinisikan oleh atribut-atributnya, bukan oleh identitas. Dua Value Object dengan nilai yang sama dianggap sama. Mereka bersifat immutable: setiap modifikasi menciptakan instance baru. Misalnya, objek Email atau Money adalah Value Object yang khas. Immutability ini memastikan konsistensi data dan memudahkan penalaran tentang kode pada sistem yang kompleks. ## 21 pertanyaan lagi tersedia - Apa peran sebuah Aggregate Root dalam DDD? - Apa itu DTO (Data Transfer Object) dan kapan menggunakannya di Symfony? Daftar gratis: https://sharpskill.dev/id/login ## Topik wawancara Symfony lainnya - [PHP Modern (8.1+)](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/php-modern-features.md): 20 pertanyaan, Junior - [Dasar-dasar Symfony](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/symfony-basics.md): 25 pertanyaan, Junior - [Routing & Controllers](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/routing-controllers.md): 20 pertanyaan, Junior - [Twig & Templates](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/twig-templates.md): 20 pertanyaan, Junior - [Dasar-dasar Doctrine ORM](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/doctrine-orm-basics.md): 25 pertanyaan, Junior - [Formulir Symfony](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/forms.md): 22 pertanyaan, Junior - [Validasi Data](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/validation.md): 18 pertanyaan, Junior - [Dependency Injection & Services](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/dependency-injection.md): 24 pertanyaan, Mid-Level - [Security & Authentication](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/security-authentication.md): 26 pertanyaan, Mid-Level - [Doctrine Tingkat Lanjut](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/doctrine-advanced.md): 24 pertanyaan, Mid-Level - [API Platform](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/api-platform.md): 22 pertanyaan, Mid-Level - [Serializer Component](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/serializer.md): 20 pertanyaan, Mid-Level - [Events & Event Subscribers](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/events-subscribers.md): 20 pertanyaan, Mid-Level - [Console & Commands](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/console-commands.md): 18 pertanyaan, Mid-Level - [Messenger Component](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/messenger.md): 22 pertanyaan, Mid-Level - [HTTP Client](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/http-client.md): 18 pertanyaan, Mid-Level - [Cache & Performa](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/cache.md): 20 pertanyaan, Mid-Level - [Workflow Component](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/workflow.md): 18 pertanyaan, Mid-Level - [Testing Symfony](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/testing.md): 22 pertanyaan, Mid-Level - [Mailer Component](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/mailer.md): 16 pertanyaan, Mid-Level - [Terjemahan & i18n](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/translations.md): 16 pertanyaan, Mid-Level - [EasyAdmin Bundle](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/easyadmin.md): 18 pertanyaan, Mid-Level - [Performa & Optimasi](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/performance-optimization.md): 22 pertanyaan, Senior - [Keamanan Lanjutan](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/security-advanced.md): 22 pertanyaan, Senior - [Custom Bundle](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/custom-bundles.md): 20 pertanyaan, Senior - [Microservices dengan Symfony](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/microservices.md): 22 pertanyaan, Senior - [Real-time & WebSockets](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/real-time.md): 18 pertanyaan, Senior - [Deployment & DevOps](https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/deployment-devops.md): 20 pertanyaan, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/id/technologies/symfony/pertanyaan-wawancara/architecture-patterns