Node.js / NestJS

ไมโครเซอร์วิส

Monolith vs modular monolith vs microservices, message patterns, transporters (TCP, Redis, NATS, RabbitMQ, Kafka), การสื่อสาร (sync/async, event-driven), CQRS, event sourcing, client/server

30 คำถามสัมภาษณ์·
Senior
1

Modular monolith คืออะไร?

คำตอบ

Modular monolith คือแอปพลิเคชันที่ deploy เป็นหน่วยเดียวแต่มีโครงสร้างเป็นโมดูลที่ decoupled อย่างชัดเจนพร้อม boundaries ที่ชัดเจน ต่างจาก monolith แบบดั้งเดิมที่ทุกอย่างปะปนกัน modular monolith จัดระเบียบโค้ดเป็นโมดูลอิสระที่สื่อสารผ่าน interface ที่กำหนดไว้อย่างชัดเจน แนวทางนี้ผสานความเรียบง่ายของ monolith (deploy เดียว, transaction ACID ที่เรียบง่าย) เข้ากับความสามารถในการบำรุงรักษาของ microservices (การแยกความรับผิดชอบ, boundaries ที่ชัดเจน)

2

ความแตกต่างหลักระหว่าง monolith และ microservices คืออะไร?

คำตอบ

ความแตกต่างหลักอยู่ที่การ deploy และความเป็นอิสระ: monolith ถูก deploy เป็นหน่วยเดียวที่ทุกคอมโพเนนต์ใช้ process และฐานข้อมูลร่วมกัน ขณะที่ microservices เป็นบริการอิสระที่ deploy แยกกันพร้อมฐานข้อมูลของตัวเอง monolith ให้ความเรียบง่ายและ transaction ACID ที่ง่าย แต่เผชิญปัญหาด้านความสามารถในการขยายและการบำรุงรักษาในระดับใหญ่ microservices ช่วยให้ขยายได้อย่างอิสระและ deploy แบบอัตโนมัติ แต่นำมาซึ่งความซับซ้อนแบบกระจาย

3

message pattern ใน NestJS Microservices คืออะไร?

คำตอบ

message pattern ใน NestJS กำหนดโหมดการสื่อสารระหว่าง microservices มีสองประเภทหลัก: request-response (แบบ synchronous ที่รอการตอบกลับ) และ event-based (แบบ asynchronous ที่ไม่รอการตอบกลับ) decorator @MessagePattern() กำหนด handler สำหรับ request-response ขณะที่ @EventPattern() จัดการ event แบบ asynchronous การเลือก pattern ขึ้นอยู่กับกรณีการใช้งาน: request-response สำหรับการดำเนินการที่ต้องการการตอบกลับทันที, event-based สำหรับการแจ้งเตือนและ eventual consistency

4

transporter ใน NestJS Microservices มีบทบาทอะไร?

5

ความแตกต่างระหว่าง @MessagePattern() และ @EventPattern() คืออะไร?

+27 คำถามสัมภาษณ์

หัวข้อสัมภาษณ์ Node.js / NestJS อื่นๆ

พื้นฐาน Node.js

Junior
20 คำถาม

Core API ของ Node.js

Junior
25 คำถาม

การเขียนโปรแกรมแบบอะซิงโครนัส

Junior
25 คำถาม

พื้นฐาน Express.js

Junior
20 คำถาม

พื้นฐาน NestJS

Junior
23 คำถาม

การออกแบบ REST API

Junior
20 คำถาม

การตรวจสอบความถูกต้องและ DTO

Junior
20 คำถาม

เอกสาร API และ Contract

Junior
20 คำถาม

การจัดการข้อผิดพลาด

Junior
20 คำถาม

การทดสอบหน่วย (Unit Testing)

Junior
20 คำถาม

การจัดตารางงาน

Junior
15 คำถาม

Module และ DI ของ NestJS

Mid-Level
20 คำถาม

การกำหนดค่าและการจัดการสภาพแวดล้อม

Mid-Level
20 คำถาม

การยืนยันตัวตนด้วย JWT

Mid-Level
25 คำถาม

การให้สิทธิ์และ RBAC

Mid-Level
20 คำถาม

ฐานข้อมูลด้วย TypeORM

Mid-Level
30 คำถาม

Prisma ORM

Mid-Level
25 คำถาม

Middleware และ Interceptor

Mid-Level
20 คำถาม

การอัปโหลดไฟล์

Mid-Level
15 คำถาม

WebSockets

Mid-Level
20 คำถาม

GraphQL กับ NestJS

Mid-Level
25 คำถาม

การทดสอบแบบ End-to-End

Mid-Level
20 คำถาม

การแคชด้วย Redis

Mid-Level
20 คำถาม

คิวด้วย Bull

Mid-Level
20 คำถาม

DevOps, Logging และ CI/CD

Mid-Level
25 คำถาม

Docker และ Containerization

Mid-Level
25 คำถาม

แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย

Senior
25 คำถาม

ประสิทธิภาพและการ Deploy บน Cloud

Senior
30 คำถาม

เชี่ยวชาญ Node.js / NestJS สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี