5000 öğeyi bir web uygulamasında istemci tarafında depolama [kapalı]


12

ASP.Net geliştiricisi için bir telefon görüşmesi yaptım, ilk tanıtıcı şeylerden sonra görüşmeci bana ilk teknik soruyu sordu:

Msgstr "Bir web uygulamasındaki her kullanıcı için 5000 öğeyi istemci tarafında nasıl saklarsınız".

Cevabım şununla başladı:

Her bir elemanın ortalama büyüklüğü nedir? Bu kadar veriyi gerçekten müşteri tarafında depolamak zorunda mıyız? Biz veritabanında tutmak ve kullanıcı oturum / müşteri kimliği bu bağlayamazsınız nasılsa .

Cevabı, "Hayır, her bir öğenin int / string, normal bir tablo satırı da dahil olmak üzere yaklaşık 8 alanı olan bir kayıt olduğunu düşünerek, müşteri tarafında nasıl saklayacağınızı söyleyin" oldu.

Dedim ki, "Onları bir oturumda tutmak olabilir, ancak oturumlar her kullanıcı için sunucu tarafında tutulduğundan, Pahalı olabilir, ya da diğer seçenek bu çok fazla veriyi çerezde saklamaktır." bu kadar verinin çerezde saklanıp saklanmayacağından emin olun. HTML5 Depolama seçeneklerinin orada olduğunu belirttim, ancak bununla çalışmadım. SQLite'e dayandığından, bu kadar çok teorik veri depolayabilir .

Bu, görüşmecinin alaycı bir şekilde söylediği yerdir , böylece web geliştirme konusunda 3 yıllık deneyime sahipsiniz ve röportajı sonlandırdınız.

Merak ediyorum, neyi yanlış yaptım? veya istemci tarafında veri depolama konusunda eksik olduğum gerçekten temel bir şey var mı?


14
Bahsettiğiniz gibi görünse de, html5 yerel depolama alanı arıyordu sanırım . Sadece görüşmeci bir pislik olabilir ve / veya sizi yanlış anlamış olabilir.
Gort the Robot

1
Bir 'element'in ne olması gerektiği için bir tanım verildi mi? Yanlış bir şey yaptığınızı sanmıyorum, soru özellikle belirsiz.
GrandmasterB

8
Bunu tanımlamak için neden 'element' terimini kullandığını bilmiyorum. Ama evet, HTML depolamadan sonra olduğu anlaşılıyor. Bence bu 'müşteri'nin ilk içgüdünüz bu kadar müşteri tarafını da saklamak isteyeceksiniz.
GrandmasterB

5
Görüşmeci tam anlamıyla "yerel depolama" sözcüklerini söylemenizi istiyor olabilir. Bazı insanlar gerçekten bu anal kalıcı. Zaten onlar için çalışmak istemezsin. Mermiden kaçtın.
Greg Burghardt

2
"neyi yanlış yaptım?" yorum ve tutumundan, bu şirkete başvuruyor: Bu, görüşmecinin biraz alaycı bir şekilde söylediği, bu yüzden web geliştirme konusunda 3 yıllık deneyiminiz var ve röportajı sonlandırdınız
Francisco Presencia

Yanıtlar:


10

Muhtemelen HTML5 yerel depolama alanını aradığını ve bu konuda deneyim sahibi olmanızı beklediğini yorumlarına katılıyorum.

Açıkçası, bu işin ayrılmaz bir gereksinimi olmadıkça ve onunla deneyiminiz olduğunu belirtmedikçe, bence, herhangi bir deneyime sahip olan herkes için beklentisi ve tepkisi mantıksızdı.

Neden?

Çünkü, üç yıl önce, bir özellik olarak HTML5 hala başlangıç ​​aşamasındaydı. Başka bir deyişle, sizin için, özellikle, kariyeriniz, özelliğin kendisinin tarihi kadar uzun. Bir ürünle ilgili deneyime sahip kişileri arayan işlerin, ürünün çevresinde olduğundan daha fazla görülmesi nadir değildir. Tüm spesifikasyonlar için aynı şeyi görmek nadirdir . Bunun için böyle bir mücevher bulduğunuz için sizi alkışlıyorum.

Daha da ciddisi, meselenin daha çok belirsiz bir soru sorması ve sizi çok sert bir şekilde yargılamasıyla ilgili sorun daha fazla yatıyor gibi görünüyor. Görüşmeciler için özellikle geliştirme alanında belirsiz sorular sormak nadir değildir. Genellikle bu, nasıl düşündüğünüzü ve ilk içgüdünüzün sizi nereye götürdüğünü ölçmek için yapılır. Bunun için, bu tür verileri yerel olarak saklama ihtiyacını sorgulayarak başarılı oldunuz. Bu sorular kendi başına kötü değildir, ancak görüşmecinin onlarla yaptığı şey sizin için kötü bir sonuca yol açabilir (tartışmalı olarak, bu tür görüşme fesih muhtemelen bu şirket için çalışmak istemezsiniz demektir).

Artık şirketin iş ihtiyaçlarının yerel depolama sistemini bir nedenden ötürü kullanması gerekiyordu. Durum buysa, iş tanımında belirtilmiş olmalı ve özgeçmişiniz eğitilemeyeceklerini veya başka türlü sağlayamayacaklarını veya yapamayacaklarını hissettikleri takdirde böyle bir deneyimi yansıtmadıklarında potansiyel olarak geçerli bir aday olarak dışlanmış olmalısınız. teknolojiyi hızlandırmak için zaman / araçlarla yeni çalışan.

Yerel depolamaya gelince, daha önce de belirttiğim gibi, bir özellik olarak HTML5 sadece yaklaşık üç yıldır var ve bu cömert ve "son çağrı" taslaklarını sayıyor. Ardından, uzun bir geçmişi olan veya olmayan tarayıcı desteği sorununa sahipsiniz (örneğin, HTML5 katılaştırılmasından önce bile ad-değer çiftleri yaygın olarak desteklenirken, IndexedDB ve Web SQL DB hala kabataslaktır ).

Son olarak, HTML5 yerel depolama alanı kullanımı daha az yaygındır. Bir web geliştirici olarak hayatım boyunca, ben bir kez tüm yararlanmıştır Bilin diye bir uygulama üzerinden geldim (orada görünmez kullanmak bazı olabilir, ama daha sert olduğu en ölçmek için), ve belki de yarım düzine projeleri olduğunu olabilir muktedir (ancak o zaman onlara gerçekten ihtiyaç duymadı veya bu yaklaşımı bir başkasına karşı kullanmanın maliyeti haklı değildi).

Daha genel anlamda başarısız görüşmeler gerçekleşir. Yazılım geliştirme, her bir şeyle ilgili tüm küçük ayrıntıları (bu durumda, HTML5 yerel depolamanın depolama sınırları) bilemeyecek kadar büyük bir alan ve belirli bir şeyi bilmeme konusunda dürüst olmak, bence, hala en iyi rota (kişisel olarak bilgi eksikliklerini kabul eden ve doldurmaya çalışan birine, bir şey bilmedikleri gerçeğini örtmeye çalışan birine göre daha fazla saygı duyuyorum). Bunu göz önünde bulundurarak, burada verdiğiniz bilgiler göz önüne alındığında soruyu iyi ele aldığınızı söyleyebilirim. Bir konu varsa sen yanlış yaptıysanız, size nasıl cevap verdiğinizin ayrıntılarında olabilir, ki burada size yardımcı olamayız, çünkü yanıtlarınızın dil dışı yönlerini değerlendirmek için röportajda değildik.


7

'Doğru' cevap - en azından aradıkları - gerçekten HTML5 LocalStorage (Steven Burnap tarafından mükemmel bir bağlantı) idi. Muhabir muhtemelen ... yani, teknik ifadenin "biraz düğme " olduğuna inanıyorum .

Bu, temel olarak eleme süreciyle ulaşılır, çünkü bir çerez yeterince büyük bir yere yakın olamaz , oturumlar gerçekten sunucu tarafıdır ve hiç bir müşteri tarafı depolama teknisyeni değildir, vb. Görüşmeci muhtemelen bunun ortak bilgi olduğunu düşündü ve Bunu bilmelisiniz ki, HTML5 LocalStorage özelliklerine genellikle kuraldan ziyade istisna olan veri-ağır UI işlerinde ihtiyacınız vardır. Bir insan yıllarca program yapabilir ve özelliğe ihtiyaç duymazken, diğerleri ilk projesinde buna ihtiyaç duyabilir.

Bununla birlikte, genellikle bu gibi durumlarda cevabınızın daha az bir sorusu ve daha çok nasıl cevapladığınız ve oraya ulaşmak için kullandığınız süreç hakkında bir soru olduğunu söyleyebilirim. Açıklamanızdan tamamladınız, ama orada değildim ve bu yüzden izlenimleri çok farklı olabilir.

Çoğu mantıklı görüşmeci, teknolojinin küçük bir yönünü herkesin harika cevap vermesi gereken bir turnusol testi ilan etmeyecektir ... Ancak, mantıklı görüşmeci olmayan insanlarla çok fazla röportaj yaptım. Bu tür trivia'ları bilmek, bu tür bireylerle karşılaştığınızda bir nimet olabilir.

Son olarak, röportajı çok hoş olmayan bir şekilde bildirerek, kişinin zaten rahatsız olduğunu ve sizi zaten kararlaştırdığını büyük olasılıkla not ediyorum (bu özel soruya verdiğiniz yanıtın ) ufak. Sadece bir an beklemek için bekliyorlardı, böylece ona işaret edebilirler ve ilk 30 saniyede karar verdikleri gerçeğini açığa çıkaramazlardı ya da uygun bir aday olsaydınız.

Belki de "doğru" cevabını hemen bilmediğiniz soruları nasıl cevaplayacağımı pratik yaparım, çünkü incelikle yanlış olma ve bilgili ve zeki görünme becerisi darn kullanışlı bir beceridir - ve hepimiz ekstra uygulamadan faydalanabiliriz . Bazı "[önemli teknolojinin en son sürümü]" yenilikleri fırçalayın ve oraya geri dönün!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.