Câu hỏi và câu trả lời phỏng vấn về thiết kế hệ thống hàng đầu

Top System Design Interview Questions 1521276



Tìm Ra Số LượNg Thiên ThầN CủA BạN

Câu hỏi phỏng vấn thiết kế hệ thống và câu trả lời mẫu. Cuộc phỏng vấn nhà thiết kế hệ thống là cơ hội để chia sẻ kinh nghiệm và khả năng của bạn cũng như thể hiện khả năng tạo ra các hệ thống phức tạp của bạn. Bạn có thể chuẩn bị cho cuộc phỏng vấn xin việc của mình bằng cách nghiên cứu các nguyên tắc thiết kế cơ bản và chuẩn bị câu trả lời cho các câu hỏi giả định liên quan đến thiết kế.



Một cuộc phỏng vấn thiết kế hệ thống được tiến hành như thế nào?

Thư giới thiệu học thuật (1)

Vui lòng kích hoạt JavaScript

cách làm sữa bò từ bơ
Thư giới thiệu học thuật (1)

Một cuộc phỏng vấn thiết kế hệ thống được thực hiện để cung cấp cho các ứng viên—chẳng hạn như lập trình viên, nhà thiết kế, nhà phát triển và kỹ sư phần mềm—cơ hội thích hợp để thể hiện kiến ​​thức chuyên môn trong nghề nghiệp của họ bằng cách áp dụng kiến ​​thức của họ để giải quyết vấn đề trong thế giới thực mà doanh nghiệp có thể gặp phải.

Thông thường, cuộc phỏng vấn thiết kế hệ thống diễn ra sau đó trong quá trình phỏng vấn. Đây là cuộc thử nghiệm để xác định khả năng làm việc theo nhóm và cách tiếp cận giải quyết vấn đề của bạn thông qua việc sử dụng các câu hỏi mở nhằm tìm ra giải pháp tiềm năng tốt nhất. Cuộc phỏng vấn thiết kế hệ thống sẽ kiểm tra phương pháp giải quyết vấn đề và phát triển hệ thống của bạn để hỗ trợ khách hàng. Đây là cơ hội để bạn chứng minh với người quản lý tuyển dụng và các thành viên tiềm năng trong nhóm rằng bạn là một sự bổ sung hữu ích và thể hiện tài năng cũng như chuyên môn của bạn một cách hữu hình.



câu hỏi phỏng vấn thiết kế hệ thống

Câu hỏi phỏng vấn thiết kế hệ thống

Câu hỏi phỏng vấn thiết kế hệ thống:

  • Bạn sẽ thiết kế một máy bán hàng tự động bằng Node.js như thế nào?
  • Bạn sẽ thiết kế một dịch vụ rút ngắn URL như thế nào?
  • Bạn sẽ thiết kế một hệ thống điều khiển giao thông như thế nào?
  • Bạn sẽ thiết kế sổ lệnh giới hạn cho hệ thống giao dịch như thế nào?
  • Bạn sẽ thiết kế một hệ thống máy tính phân tán như thế nào?
  • Bạn sẽ thiết kế một dịch vụ truyền phát video như thế nào? Lưu ý: Đây phải là dịch vụ truyền phát video toàn cầu.
  • Bạn sẽ tạo Instagram của riêng mình như thế nào?
  • Bạn sẽ tạo một dịch vụ chia sẻ tập tin toàn cầu như thế nào?
  • Bạn sẽ thiết kế một bản sao Twitter như thế nào?
  • Bạn sẽ thiết kế một dịch vụ cân bằng tải hỗ trợ dịch vụ trò chuyện toàn cầu như thế nào?
  • Bạn sẽ thiết kế một API giới hạn tốc độ cho một máy chủ web?
  • Bạn sẽ tạo một hệ thống lưu trữ tệp toàn cầu như thế nào?

Câu hỏi phỏng vấn và câu trả lời về thiết kế hệ thống

Thông thường, các câu hỏi thiết kế hệ thống không rõ ràng để cho phép bạn thể hiện trình độ của mình. Trước khi trả lời, bạn có thể đặt câu hỏi để thu hẹp phạm vi, đưa ra định hướng và làm rõ mọi kỳ vọng.



Bạn sẽ phát triển hệ thống cho TinyURL như thế nào?

TinyURL là dịch vụ rút ngắn URL cho phép khách hàng gửi một URL dài và nhận lại một URL ngắn hơn, duy nhất. Người quản lý tuyển dụng có thể yêu cầu điều này để chứng minh cơ sở thiết kế vững chắc của bạn. Bạn có thể tập trung vào các nguyên tắc cơ bản khác không có trong câu trả lời mẫu, chẳng hạn như cách tạo ID duy nhất cho mỗi URL, cách xử lý chuyển hướng và cách xóa các URL đã hết hạn.

Ví dụ

'Khi tôi làm việc cho một dịch vụ nhắn tin tức thời công cộng, tôi được giao nhiệm vụ phát triển một hệ thống đơn giản trong đó mỗi tin nhắn được giới hạn ở 140 ký tự.' Ngoài ra, nó bắt buộc sử dụng các URL bị cắt ngắn khoảng 30 ký tự. Kỹ thuật TinyURL này cũng có lợi khi các siêu liên kết được nhập thủ công vào e-mail hoặc trên điện thoại thông minh, nơi có khả năng xảy ra lỗi. TinyURL là một minh họa tuyệt vời cho bảng hashtag. Cấu trúc dữ liệu này là một mã kết nối đơn giản liên kết các khóa với các giá trị. Tôi đã có thể tối đa hóa khả năng sử dụng và đáp ứng các yêu cầu của hệ thống bằng cách sử dụng bảng băm 16-bit đơn giản này.'

Bạn sẽ xây dựng một công cụ tìm kiếm như thế nào nếu bạn chịu trách nhiệm?

Đôi khi, các công cụ tìm kiếm được yêu cầu trong một bộ phận của doanh nghiệp để xác định vị trí một mục hoặc thông tin nhân sự quan trọng một cách có phương pháp. Người quản lý tuyển dụng muốn thấy rằng bạn có thể điều chỉnh thiết kế theo yêu cầu cụ thể của công ty. Sử dụng nền tảng bên dưới, bạn có thể trình bày chi tiết và giải thích các khía cạnh của kiến ​​trúc chung. Ngoài ra, bạn có thể thảo luận về bất kỳ chủ đề thích hợp nào khác, chẳng hạn như hiệu suất giao diện người dùng của trang web, kiểm tra tối ưu hóa công cụ tìm kiếm và tích hợp lập chỉ mục dữ liệu và xu hướng tìm kiếm trước đó.

câu hỏi phỏng vấn thiết kế hệ thống

st.christopher du lịch cầu nguyện

Ví dụ

'Trước khi chuyển đến đây, tôi đang thực hiện một dự án tương tự.' Công cụ tìm kiếm mà tôi được giao nhiệm vụ phát triển được yêu cầu phải hỗ trợ tìm kiếm từ khóa. Tôi bắt đầu bằng việc phát triển một bộ chỉ mục, một phần mềm thu thập thông tin trên web và trả về kết quả trong cấu trúc dữ liệu. Trình thu thập thông tin sẽ nhóm hoặc kết xuất các liên kết trang web thành các bộ. Bộ chỉ mục sau đó được chạy như một phần của quy trình rút gọn để cô lập các mục. Số lượng liên kết trên mỗi trang web đã được tính toán và kiểm tra cho mục đích hiển thị. Tôi đã định cấu hình thu thập thông tin cho H1 và H2 chứ không phải H3. Sau đó, để ngăn chặn những kẻ gửi thư rác, tôi đã xác minh các liên kết ngoài. Cuối cùng, tôi đã kiểm tra số liệu thống kê phân phát để đảm bảo rằng thiết kế đang hoạt động với công suất cao nhất và mức độ phù hợp'.

Trình thu thập dữ liệu web nên được thiết kế như thế nào và khi nào nên sử dụng nó?

Trình thu thập thông tin là một chương trình truy cập các trang web khác và đọc nội dung của chúng. Dữ liệu này sau đó được sử dụng để tạo các mục chỉ mục cho công cụ tìm kiếm. Nó thường được gọi là 'bot' hoặc 'nhện'. Hãy chắc chắn rằng lời giải thích của bạn chứng tỏ rằng bạn hiểu sự phức tạp của việc thu thập dữ liệu trên web.

câu hỏi phỏng vấn thiết kế hệ thống

Ví dụ

'Mặc dù việc thu thập dữ liệu trên web là một công việc khó khăn nhưng tôi đã có thể tạo một công việc cho nhiệm vụ trước đó.' Trình thu thập thông tin lấy dữ liệu từ một ngành cụ thể, trong ví dụ này là thời trang. Tôi cần kết hợp một bộ điều phối URL, một máy chủ có nhiệm vụ phổ biến các URL gốc tới một số lượng lớn máy chủ. Sau đó, trình giám sát thu thập thông tin đã phân phối URL tới các bot thông qua hàng đợi nhắn tin đã được tạo. Con nhện, đóng vai trò là nền tảng cho tất cả các trình thu thập thông tin, đã trích xuất dữ liệu từ trang web và lưu trữ nó trong hệ thống tệp của tôi. Sau đó, quy trình trích xuất, biến đổi và tải (ETL) đã làm sạch và định dạng tài liệu để chuẩn bị lưu trữ trong cơ sở dữ liệu. Bằng cách này, tôi có thể thu thập dữ liệu trên web để tìm kiếm và sắp xếp các thông tin cần thiết.'

Đĩa chia sẻ nên được thiết kế như thế nào?

Người quản lý tuyển dụng sử dụng điều này để đi sâu vào các nguyên tắc cơ bản và lịch sử của thuật toán. Trước khi bắt đầu, hãy đảm bảo rằng bạn hiểu mục tiêu của nhiệm vụ. Biết liệu các thay đổi có được đăng ký trong thời gian thực hay không, có cần khóa hay không và liệu hệ thống có phải hội tụ tự nhiên hay không sẽ hỗ trợ bạn đưa ra phản hồi kỹ lưỡng.

câu hỏi phỏng vấn thiết kế hệ thống

Ví dụ

'Hệ thống này hoạt động bằng cách sử dụng đồng bộ hóa vi sai.' Đó là quá trình giữ hai hoặc nhiều bản sao của cùng một tài liệu được đồng bộ hóa trong thời gian thực để khi một phiên bản được sửa đổi thì các phiên bản khác cũng được sửa đổi. Mặc dù đây là một nhiệm vụ khó khăn nhưng đồng bộ hóa vi sai có khả năng mở rộng và có khả năng chịu lỗi. Ba cách thường được sử dụng: quyền sở hữu, chuyển sự kiện và sáp nhập ba chiều. Gần đây tôi được yêu cầu thực hiện nhiệm vụ này để tạo điều kiện chia sẻ tài liệu nội bộ cho một trong những khách hàng của chúng tôi. Họ mong muốn sự hợp tác trong thời gian thực và việc hợp nhất ba chiều đã bị loại trừ do thực tế là các thay đổi bị mất và không thể có hiệu lực do thường xuyên xảy ra các va chạm nghiêm trọng. Tôi đã sử dụng tính năng chuyển sự kiện để cho phép cộng tác trong thời gian thực, vì phương pháp khóa hoặc quyền sở hữu sẽ hạn chế những thay đổi đối với tài liệu đối với người đầu tiên mở nó. Điều này mang lại lợi ích cho khách hàng của chúng tôi vì nó cho phép nhân viên cộng tác ngay cả khi họ không ở văn phòng hoặc có lịch trình khác nhau.'

Thiết kế hệ thống quản lý chất thải cần những gì?

Việc thu gom rác đảm bảo rằng hệ thống Java chạy đúng cách và giúp lập trình viên không cần phải thực hiện việc đó một cách thủ công. Người quản lý tuyển dụng muốn biết rằng bạn hiểu rõ mọi thông tin chi tiết về nhiều hệ thống. Trình thu gom rác (GC) tối ưu hóa việc sử dụng bộ nhớ trong máy tính.

câu hỏi phỏng vấn thiết kế hệ thống

Ý nghĩa của con bướm đen và xanh trong kinh thánh

Ví dụ

'Một trong những khách hàng mới nhất của tôi cần thêm bộ nhớ, tuy nhiên đã xảy ra sự cố khi liên tục phải giải quyết vấn đề phân bổ bộ nhớ.' Mục đích của việc thu gom rác là tạo ảo giác rằng một hệ thống có số lượng bộ nhớ vô hạn. Trên thực tế, hệ thống đang tái sử dụng bộ nhớ. Khi hệ thống phản hồi chậm, người thu gom rác sẽ vào và thu thập các vật phẩm không còn được sử dụng. Tôi đã định cấu hình hệ thống của họ theo cách mà bất kỳ mục nào được tham chiếu hoặc đệ quy về bản chất vẫn tồn tại. Sau đó, nó tiến hành cẩn thận và đánh dấu mọi thứ chưa được tham chiếu và chỉ quét phần đó. Việc sử dụng phương pháp đánh dấu và quét kết hợp với lệnh void cho phép bộ nhớ được tái sử dụng và mở ra khi không còn được sử dụng. Với điều này, khách hàng của tôi được hưởng lợi từ hệ thống nhanh hơn và ít cần bảo trì hơn.'

Cách tốt nhất để tạo ra một hệ thống khuyến nghị là gì?

Người dùng được hưởng lợi từ hệ thống đề xuất vì chúng cho phép họ xác định những gì họ đang tìm kiếm một cách hiệu quả hơn. Họ hỗ trợ khách hàng bằng cách cung cấp các tùy chọn và cho phép lựa chọn. Người quản lý tuyển dụng đặt câu hỏi này để xác định xem bạn có khả năng phát triển các hệ thống tập trung và thân thiện với người dùng hay không.

Tom selleck diễn viên bao nhiêu tuổi

câu hỏi phỏng vấn thiết kế hệ thống

Ví dụ

'Ví dụ: một trong những khách hàng đầu tiên và tận tâm nhất của tôi đã gặp khó khăn khi khách hàng không xác định được các tùy chọn trên trang web của họ. Việc tìm kiếm của họ phải chính xác mới có thể xác định được vật phẩm. Tôi đề xuất rằng chúng ta nên xây dựng một hệ thống đề xuất để tăng mức độ hài lòng của khách hàng và có thể là tăng doanh thu. Tôi đã tạo ra hệ thống để dệt nên một loại tấm thảm thông tin nhằm cung cấp cho khách hàng của chúng tôi những ý tưởng dựa trên sự giống nhau của người dùng, sử dụng phương pháp lọc cộng tác phổ biến nhất. Hệ thống đã cải thiện khả năng sử dụng và mang lại doanh thu tăng 10% cho khách hàng của tôi.'

Lời khuyên phỏng vấn cho nhà thiết kế hệ thống

Đánh giá các đề xuất sau khi bạn xem xét câu trả lời của chính mình cho các câu hỏi phỏng vấn về thiết kế hệ thống cơ bản ở trên để giúp bạn cảm thấy an tâm hơn và chuẩn bị cho cuộc phỏng vấn của mình:

Sử dụng chiến lược phản hồi STAR

Việc sử dụng kỹ thuật trả lời phỏng vấn STAR để định dạng câu hỏi cho phép bạn thiết kế các câu trả lời thể hiện kiến ​​thức và trình độ của bạn thông qua những trải nghiệm độc đáo. STAR viết tắt là viết tắt của Tình huống, Nhiệm vụ, Hành động và Kết quả. Thảo luận về một tình huống có thể áp dụng, xác định nhiệm vụ hiện tại, trình bày chi tiết các hành động bạn đã thực hiện và trình bày kết quả của những nỗ lực thể hiện tài năng của bạn với người phỏng vấn bằng cách sử dụng phương pháp STAR.

câu hỏi phỏng vấn thiết kế hệ thống

Nhận biết các mục tiêu

Hỏi các câu hỏi làm rõ để xác định xem người dùng sẽ là ai, họ sẽ yêu cầu gì cũng như đầu vào và đầu ra của hệ thống. Việc tìm hiểu về những nguyên tắc cơ bản này sẽ giúp bạn tập trung nỗ lực và thể hiện khả năng cảm nhận sản phẩm cũng như tinh thần đồng đội của bạn.

Sử dụng kinh nghiệm của bạn để lợi thế của bạn

Bạn đưa ra một loạt ý tưởng và kiến ​​thức chuyên môn mà không ai khác có thể làm được. Thay vì cố gắng đáp ứng những gì bạn tin là mong muốn, hãy thể hiện chuyên môn của bản thân và chứng minh lý do tại sao bạn lại quan trọng và không thể thay thế nhờ khả năng và khả năng của bạn.

Thực hành là rất quan trọng

Cơ hội lặp lại quy trình phỏng vấn thiết kế trong khi thực hiện các phương pháp này sẽ tạo niềm tin cho bạn và kiến ​​thức của bạn về chủ đề này sẽ bộc lộ trình độ của bạn. Dành thời gian phỏng vấn bạn bè, thành viên gia đình hoặc trước gương.

Làm cách nào để chuẩn bị cho các cuộc phỏng vấn thiết kế hệ thống?

Hãy sẵn sàng trả lời các câu hỏi phỏng vấn về thiết kế hệ thống phức tạp. Thực hành các cuộc phỏng vấn thử và yêu cầu những người bạn làm việc trong ngành trải qua các buổi phỏng vấn với bạn như thể bạn là một kỹ sư phần mềm đang trải qua quá trình phỏng vấn.

Phỏng vấn thiết kế hệ thống có khó không?

Đúng. Họ có thể như vậy. Các cuộc phỏng vấn cho vị trí thiết kế hệ thống nổi tiếng là khó thành công nếu bạn không chuẩn bị. Các vấn đề có phạm vi rộng lớn, có một số câu trả lời khả thi và đòi hỏi kiến ​​thức đáng kể về các hệ thống cơ bản. Vì vậy, nếu muốn được xem xét vào một vị trí tại một doanh nghiệp công nghệ hàng đầu, gần như chắc chắn bạn sẽ phải vượt qua các cuộc phỏng vấn thiết kế hệ thống.

Bạn tiếp cận thiết kế hệ thống như thế nào?

Đây là một câu hỏi lớn được đặt ra cho tất cả các chuyên gia. Dưới đây là các bước:

  • Tập hợp các yêu cầu.
  • Tạo một định nghĩa giao diện hệ thống.
  • Ước tính công suất sau phong bì.
  • Xác định mô hình dữ liệu
  • Tạo một thiết kế cấp cao.
  • Tạo một thiết kế chi tiết cho các phần bổ sung đã chọn.
  • Xác định và giải quyết mọi tắc nghẽn.

Cuộc phỏng vấn thiết kế hệ thống sẽ phân tích phương pháp giải quyết vấn đề của bạn và phát triển hệ thống để hỗ trợ khách hàng. Đây là cơ hội để bạn chứng minh với người quản lý tuyển dụng và các thành viên tiềm năng trong nhóm rằng bạn là một sự bổ sung hữu ích và thể hiện tài năng cũng như chuyên môn của bạn một cách hữu hình.

fr solanus casey cầu nguyện

câu hỏi phỏng vấn thiết kế hệ thống