Lưu trữ 5000 phần tử ở phía máy khách trong ứng dụng web [đã đóng]


12

Tôi vừa có một cuộc phỏng vấn qua điện thoại cho nhà phát triển ASP.Net, sau những thứ giới thiệu ban đầu, người phỏng vấn hỏi tôi câu hỏi kỹ thuật đầu tiên:

"Làm thế nào bạn sẽ lưu trữ 5000 phần tử ở phía máy khách cho mỗi người dùng trong một ứng dụng web".

Câu trả lời của tôi bắt đầu với,

Kích thước trung bình của mỗi yếu tố là gì? Chúng ta có thực sự phải lưu trữ nhiều dữ liệu này về phía khách hàng không? Chúng tôi không thể giữ điều đó trong cơ sở dữ liệu và liên kết thông tin này với ID người dùng / phiên khách hàng bằng cách nào đó .

Câu trả lời của anh ấy là "Không, Bạn cho tôi biết bạn sẽ lưu trữ nó như thế nào ở phía máy khách, xem xét rằng mỗi phần tử là một bản ghi với khoảng 8 trường bao gồm int / chuỗi, một hàng bảng bình thường".

Tôi nói: "Có thể giữ chúng trong một phiên, nhưng vì các phiên được duy trì ở phía máy chủ cho mỗi người dùng, nên nó có thể trở nên đắt đỏ hoặc tùy chọn khác là lưu trữ nhiều dữ liệu đó trong cookie", tôi cũng nói rằng tôi không chắc chắn nếu nhiều dữ liệu có thể được lưu trữ trong cookie. Tôi đã đề cập đến các tùy chọn Lưu trữ HTML5 ở đó, nhưng tôi chưa làm việc với nó. Vì nó dựa trên SQLite, nên về mặt lý thuyết , nó có thể lưu trữ nhiều dữ liệu đó .

Đó là nơi mà người phỏng vấn có phần mỉa mai nói, vì vậy bạn có 3 năm kinh nghiệm trong việc phát triển web và chấm dứt cuộc phỏng vấn.

Tôi đang tự hỏi, những gì tôi đã làm sai? hoặc có điều gì đó thực sự cơ bản mà tôi đang thiếu đối với việc lưu trữ dữ liệu về phía khách hàng.


14
Tôi đoán anh ấy đang tìm kiếm bộ nhớ cục bộ html5 , mặc dù có vẻ như bạn đã đề cập đến nó. Nó có thể chỉ là người phỏng vấn là một thằng ngốc, và / hoặc hiểu lầm bạn.
Gort Robot

1
Là một định nghĩa được đưa ra cho những gì một 'yếu tố' được cho là? Tôi không nghĩ bạn đã làm gì sai, câu hỏi đặc biệt mơ hồ.
GrandmasterB

8
Tôi không biết tại sao anh ta sử dụng thuật ngữ 'yếu tố' để mô tả điều đó. Nhưng vâng, có vẻ như anh ta sau khi lưu trữ HTML. Tôi nghĩ rằng bản năng đầu tiên của bạn về 'tại sao' bạn muốn lưu trữ nhiều khách hàng đó cũng là một điều tốt.
GrandmasterB

5
Người phỏng vấn có thể đã tìm kiếm bạn để nói theo nghĩa đen của từ "lưu trữ cục bộ". Một số người chỉ thực sự là giữ lại hậu môn. Dù sao bạn cũng không muốn làm việc cho họ. Bạn né một viên đạn.
Greg Burghardt

2
"tôi đã làm gì sai?" từ nhận xét và thái độ của mình, áp dụng cho công ty này: Đó là nơi mà người phỏng vấn có phần mỉa mai nói, vì vậy bạn có 3 năm kinh nghiệm trong việc phát triển web và chấm dứt cuộc phỏng vấn
Francisco Presencia

Câu trả lời:


10

Tôi đồng ý với các nhận xét rằng anh ta có thể đang tìm kiếm bộ nhớ cục bộ HTML5 và có thể mong đợi bạn có kinh nghiệm với nó.

Thành thật mà nói, trừ khi đó là một yêu cầu không thể thiếu của công việc và bạn nói rằng bạn đã có kinh nghiệm với nó, theo tôi, kỳ vọng và phản ứng của anh ta là không hợp lý, theo tôi, đối với bất kỳ ai có bất kỳ kinh nghiệm nào.

Tại sao?

Bởi vì, ba năm trước, HTML5 như một thông số kỹ thuật vẫn còn ở giai đoạn sơ khai. Nói cách khác, đối với bạn, cụ thể, sự nghiệp của bạn dài bằng chính lịch sử của thông số kỹ thuật. Không có gì lạ khi thấy các công việc tìm kiếm những người có nhiều kinh nghiệm với một sản phẩm hơn sản phẩm đã có xung quanh. Thật hiếm khi thấy điều tương tự xảy ra đối với toàn bộ đặc điểm kỹ thuật. Vì điều đó, tôi hoan nghênh bạn đã tìm thấy một viên đá quý như vậy.

Tuy nhiên, nghiêm trọng hơn, có vẻ như vấn đề nằm ở người phỏng vấn hỏi bạn một câu hỏi quá mơ hồ và đánh giá bạn quá gay gắt về vấn đề này. Không có gì lạ khi người phỏng vấn đặt những câu hỏi mơ hồ, đặc biệt là trong lĩnh vực phát triển. Thông thường, điều này được thực hiện để cố gắng đánh giá suy nghĩ của bạn và nơi bản năng đầu tiên dẫn bạn đến. Vì thế, bạn đã làm tốt bằng cách đặt câu hỏi về nhu cầu lưu trữ loại dữ liệu đó cục bộ. Những câu hỏi này không phải là bản thân họ xấu, nhưng những gì người phỏng vấn làm với họ có thể dẫn đến kết quả tồi tệ cho bạn (có thể nói, việc chấm dứt cuộc phỏng vấn như vậy có nghĩa là bạn có thể không muốn làm việc cho công ty đó).

Bây giờ, có thể nhu cầu kinh doanh của công ty yêu cầu họ sử dụng bộ nhớ cục bộ vì lý do này hay lý do khác. Nếu đó là trường hợp, nó nên được đánh vần trong mô tả công việc, và bạn nên được loại trừ như một ứng cử viên tiềm năng khi hồ sơ của bạn phản ánh không có kinh nghiệm như vậy nếu họ cảm thấy họ không thể hoặc không nên đào tạo hoặc cung cấp khác nhân viên mới với thời gian / phương tiện để tăng tốc về công nghệ.

Đối với lưu trữ cục bộ, như tôi đã đề cập trước đây, HTML5 như một thông số kỹ thuật chỉ mới xuất hiện được khoảng ba năm và đó là sự hào phóng và đếm các bản nháp "cuộc gọi cuối cùng". Sau đó, bạn có vấn đề về hỗ trợ trình duyệt, có thể có hoặc không có lịch sử lâu dài (ví dụ: trong khi các cặp giá trị tên đã được hỗ trợ rộng rãi ngay cả trước khi củng cố HTML5, IndexedDB và Web SQL DB vẫn còn sơ sài ).

Cuối cùng, việc sử dụng cho bộ nhớ cục bộ HTML5 vẫn ít phổ biến hơn. Trong những năm làm nhà phát triển web, tôi đã bắt gặp một ứng dụng mà tôi biết đã sử dụng nó một lần (có thể có một số sử dụng nó vô hình, nhưng điều đó khó định lượng hơn) và có thể là nửa tá dự án thể có thể để sử dụng nó (nhưng không thực sự cần chúng vào thời điểm đó, hoặc chi phí sử dụng phương pháp đó so với phương pháp khác là không hợp lý).

Trong một ý nghĩa chung hơn, các cuộc phỏng vấn thất bại xảy ra. Phát triển phần mềm là xa một lĩnh vực quá lớn để có thể biết tất cả các chi tiết nhỏ về mọi điều duy nhất (trong trường hợp này, các giới hạn lưu trữ của HTML5 lưu trữ địa phương), và được trung thực về không biết một điều nhất định là, theo ý kiến của tôi, vẫn là con đường tốt nhất (cá nhân tôi tôn trọng nhiều hơn những người thừa nhận lỗ hổng kiến ​​thức của họ và tìm cách lấp đầy chúng, hơn là với những người cố gắng che đậy sự thật rằng họ không biết điều gì đó). Với ý nghĩ đó, tôi muốn nói rằng bạn đã xử lý tốt câu hỏi, đưa ra thông tin bạn đã cung cấp ở đây. Nếu có gì đó bạn đã làm sai, có thể đó là chi tiết về cách bạn trả lời, điều mà chúng tôi không thể giúp bạn, ở đây, bởi vì chúng tôi không có mặt trong cuộc phỏng vấn để đánh giá các khía cạnh phi ngôn ngữ trong câu trả lời của bạn.


7

Câu trả lời 'chính xác' - ít nhất, câu trả lời mà họ đang tìm kiếm - thực sự là HTML5 LocalStorage (một liên kết tuyệt vời của Steven Burnap). Và người phỏng vấn có lẽ đã ... tốt, tôi tin rằng cụm từ kỹ thuật là "một chút của một nút ".

Điều này về cơ bản được đưa ra bởi quá trình loại bỏ, trong đó một cookie không thể ở bất kỳ đâu đủ lớn , các phiên thực sự là phía máy chủ và không phải là một cơ chế lưu trữ phía khách hàng, v.v. Người phỏng vấn có lẽ nghĩ rằng đây là kiến ​​thức phổ biến và bạn nên biết điều này, điều buồn cười ở chỗ bạn chỉ cần các khả năng HTML5 LocalStorage điển hình trong công việc UI nặng dữ liệu, đó là ngoại lệ thay vì quy tắc. Một người có thể lập trình trong nhiều năm và không có nhu cầu về tính năng này, trong khi những người khác có thể có nhu cầu về dự án đầu tiên của họ.

Tuy nhiên, tôi thường nói trong những trường hợp như thế này, đó không phải là câu hỏi về câu trả lời của bạn mà là câu hỏi về cách bạn trả lời và quá trình bạn sử dụng để đạt được điều đó. Từ mô tả của bạn, bạn đã làm được, nhưng tôi không ở đó và do đó ấn tượng của họ có thể rất khác nhau.

Hầu hết những người phỏng vấn nhạy cảm sẽ không tuyên bố một khía cạnh nhỏ của công nghệ là một bài kiểm tra quỳ mà mọi người phải trả lời rất hay ... tuy nhiên, tôi đã có rất nhiều cuộc phỏng vấn với những người không phỏng vấn hợp lý. Biết những chuyện vặt vãnh như vậy có thể là một lợi ích khi bạn gặp phải những cá nhân như vậy.

Cuối cùng, tôi sẽ lưu ý rằng bằng cách tuyên bố cuộc phỏng vấn theo cách khá không hay, rất có khả năng người đó đã khó chịu và đã quyết định về bạn rồi (câu trả lời của bạn cho câu hỏi cụ thể này có thể không quan trọng trong nhẹ nhất). Họ chỉ chờ đợi một lúc để bạn đi lên để họ có thể chỉ vào đó và không tiết lộ sự thật rằng họ đã quyết định trong 30 giây đầu tiên hoặc lâu hơn nếu bạn là ứng cử viên khả thi hay không.

Có lẽ tôi sẽ thực hành cách trả lời các câu hỏi mà bạn không biết ngay câu trả lời "đúng", vì khả năng sai một cách duyên dáng và có vẻ hiểu biết và thông minh dù sao cũng là một kỹ năng tiện dụng - và tất cả chúng ta đều có thể hưởng lợi từ việc thực hành thêm . Nhấn vào một số bài viết "những gì mới trong [phiên bản mới nhất của công nghệ quan trọng]" và sau đó quay trở lại đó!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.