# สถาปัตยกรรม Vue (Vue.js / Nuxt.js) > รูปแบบการออกแบบ component, โครงสร้างโฟลเดอร์, โมดูล feature, domain-driven design, การจัดระเบียบ composables - 22 คำถามสัมภาษณ์ - Senior - [คำถามสัมภาษณ์: Vue.js / Nuxt.js](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions.md) ## 1. สถาปัตยกรรมแบบ feature-first ใน Vue/Nuxt คืออะไร? **คำตอบ** สถาปัตยกรรม feature-first จัดระเบียบโค้ดตามฟีเจอร์ทางธุรกิจแทนที่จะจัดตามประเภททางเทคนิค แต่ละ feature จะมี component, composables, store และ type ของตัวเองอยู่ในโฟลเดอร์เฉพาะ แนวทางนี้ช่วยเพิ่มความสามารถในการบำรุงรักษาโดยการรวมทุกอย่างที่เกี่ยวข้องกับฟีเจอร์ไว้ในที่เดียว ทำให้การทำงานเป็นทีมง่ายขึ้นเพราะนักพัฒนาสามารถทำงานบน feature ที่เป็นอิสระต่อกันได้ และทำให้โค้ดเป็นโมดูลมากขึ้นโดยช่วยให้เปิด/ปิดการใช้งาน feature ได้ง่าย ## 2. Container/Presentational pattern ใน Vue คืออะไร? **คำตอบ** Container/Presentational pattern แยก component ออกเป็นสองประเภท ได้แก่ container ที่จัดการลอจิกทางธุรกิจ การเรียก API และ state และ presentational ที่รับเฉพาะ props และ emit อีเวนต์ การแยกนี้ช่วยเพิ่มความสามารถในการนำ component UI กลับมาใช้ใหม่ ทำให้การทำ unit test ของ component presentational ง่ายขึ้น และทำให้ความรับผิดชอบชัดเจนขึ้นโดยการแยกลอจิกไว้ใน container ## 3. ความแตกต่างระหว่างสถาปัตยกรรมแบบ layer-first และ feature-first คืออะไร? **คำตอบ** สถาปัตยกรรม layer-first จัดระเบียบโค้ดเป็นเลเยอร์ทางเทคนิค (components, composables, stores, utils) โดยที่ component ทั้งหมดอยู่ด้วยกัน composables ทั้งหมดอยู่ด้วยกัน เป็นต้น ส่วน feature-first จัดกลุ่มตามฟีเจอร์ทางธุรกิจโดยที่แต่ละ feature มี component, composables และ store ของตัวเอง layer-first ง่ายกว่าสำหรับโปรเจกต์ขนาดเล็ก แต่จะบำรุงรักษายากเมื่อโปรเจกต์เติบโตขึ้นเพราะไฟล์ที่เกี่ยวข้องกับฟีเจอร์เดียวกันกระจัดกระจาย feature-first ขยายขนาดได้ดีกว่าและทำให้การทำงานเป็นทีมง่ายขึ้น ## มีอีก 19 คำถาม - Renderless components ใน Vue คืออะไร? - จะจัดระเบียบ composables ในสถาปัตยกรรมแบบ feature-first อย่างไร? สมัครฟรี: https://sharpskill.dev/th/login ## หัวข้อสัมภาษณ์ Vue.js / Nuxt.js อื่นๆ - [พื้นฐาน JavaScript](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/javascript-fundamentals.md): 20 คำถาม, Junior - [JavaScript สมัยใหม่ (ES6+)](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/es6-modern-javascript.md): 20 คำถาม, Junior - [พื้นฐาน Vue](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/vue-basics.md): 22 คำถาม, Junior - [คอมโพเนนต์ Vue](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/vue-components.md): 20 คำถาม, Junior - [Vue Router](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/vue-router.md): 18 คำถาม, Junior - [Pinia State Management](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/pinia-state-management.md): 20 คำถาม, Junior - [Vuex (Legacy)](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/vuex-legacy.md): 15 คำถาม, Mid-Level - [Composition API](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/composition-api.md): 24 คำถาม, Mid-Level - [ระบบ Reactivity ของ Vue](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/vue-reactivity.md): 20 คำถาม, Mid-Level - [พื้นฐาน Nuxt](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/nuxt-fundamentals.md): 22 คำถาม, Mid-Level - [การดึงข้อมูล (Data Fetching) ใน Nuxt](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/nuxt-data-fetching.md): 20 คำถาม, Mid-Level - [SSR และ SSG ใน Nuxt](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/nuxt-ssr-ssg.md): 22 คำถาม, Mid-Level - [Server Routes ของ Nuxt](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/nuxt-server-routes.md): 20 คำถาม, Mid-Level - [โมดูล Nuxt](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/nuxt-modules.md): 18 คำถาม, Mid-Level - [Composables ใน Vue](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/vue-composables.md): 20 คำถาม, Mid-Level - [ฟอร์มและการตรวจสอบ Vue](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/vue-forms-validation.md): 20 คำถาม, Mid-Level - [การจัดการสถานะใน Nuxt](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/nuxt-state-management.md): 18 คำถาม, Mid-Level - [การทดสอบ Vue](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/vue-testing.md): 20 คำถาม, Mid-Level - [การ Deploy Nuxt และ CI/CD](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/nuxt-deployment-cicd.md): 22 คำถาม, Mid-Level - [ประสิทธิภาพของ Vue](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/vue-performance.md): 22 คำถาม, Senior - [รูปแบบขั้นสูงของ Vue](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/vue-advanced-patterns.md): 24 คำถาม, Senior - [TypeScript กับ Vue](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/typescript-vue.md): 22 คำถาม, Senior - [การยืนยันตัวตน Nuxt](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/nuxt-auth.md): 20 คำถาม, Senior - [SEO ด้วย Nuxt](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/nuxt-seo.md): 20 คำถาม, Senior - [การทำ Internationalization ใน Nuxt](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/nuxt-i18n.md): 18 คำถาม, Senior - [ความปลอดภัยของ Nuxt](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/nuxt-security.md): 20 คำถาม, Senior - [ระบบนิเวศ Vue](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/vue-ecosystem.md): 18 คำถาม, Senior - [การย้าย Vue 2→3 & Nuxt 2→3](https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/migration-vue2-vue3-nuxt2-nuxt3.md): 22 คำถาม, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/th/technologies/vue-nuxt/interview-questions/vue-architecture