Webアプリケーションのクライアント側に5000の要素を保存[終了]


12

ASP.Net開発者向けの電話インタビューがありました。最初の入門的な内容の後、インタビュアーが最初の技術的な質問をしてくれました。

「Webアプリケーションの各ユーザーのクライアント側に5000要素をどのように保存しますか」。

私の答えは、

各要素の平均サイズは?クライアント側にこれだけのデータを保存する必要がありますか?それをデータベースに保持し、これを何らかの方法でユーザーセッション/クライアントIDにリンクすることはできません。

彼の返事は「いいえ、各要素はint / string、通常のテーブル行を含む約8つのフィールドを持つレコードであると考えて、クライアント側でどのように保存するか教えてください」でした。

「セッションで保持することもできますが、セッションは各ユーザーのサーバー側で維持されるため、コストが高くなる可能性があります。または、他のオプションはその量のデータをCookieに保存することです」と私は言っていませんその量のデータをCookieに保存できるかどうかを確認してください。HTML5ストレージオプションはそこにあると述べましたが、私はそれを扱っていません。SQLiteに基づいているため、理論的にはその量のデータを格納できます。

そこに面接官が多少皮肉に言ったので、あなたはウェブ開発で3年の経験があり、面接を終了しました。

何を間違えたのだろうか?または、クライアント側でデータを保存することに関して私が見落としている本当に基本的なものがあります。


14
彼はhtml5ローカルストレージを探していたと思いますが、あなたが言ったように聞こえますが。インタビュアーがジャークだった、またはあなたを誤解しただけかもしれません。
ロボット

1
「要素」とは何かについて定義が与えられましたか?あなたが間違ったことをしたとは思わない。質問は特に曖昧だ。
GrandmasterB 14

8
彼がそれを説明するために「要素」という用語を使用する理由はわかりません。しかし、はい、彼はHTMLストレージを求めていたようです。そんなにたくさんのクライアントサイドを保存したい「なぜ」というあなたの最初の本能も良いものだったと思います。
グランドマスターB 14

5
インタビュアーは、「ローカルストレージ」という言葉を文字通り言うためにあなたを探しているかもしれません。一部の人々は、まさにその肛門保持です。とにかく彼らのために働きたくないでしょう。弾丸をかわした。
グレッグブルクハート14

2
「私は何を間違えたのですか?」彼のコメントや態度から、この会社に適用:インタビュアーはやや皮肉たっぷりにあなたがWeb開発の経験3年以上を持っているので、言った、とインタビュー終了だところ
サンフランシスコPresencia

回答:


10

私は彼がHTML5ローカルストレージを探している可能性が高いというコメントに同意します。

率直に言って、それが仕事の不可欠な要件であり、あなたがそれを経験しているとあなたが述べた場合を除き、彼の期待と反応は、私の意見では、どんな経験のある人にとっても不合理です。

どうして?

3年前、仕様としてのHTML5はまだ初期段階にあったためです。言い換えれば、あなたにとって、具体的には、あなたのキャリアは仕様自体の歴史とほぼ同じくらいです。製品が存在していたよりも多くの経験を持つ人を探している仕事を見るのは珍しいことではありません。仕様全体で同じことが起こることはまれです。そのために、私はあなたにそのような宝石を見つけたことを称賛します。

しかしもっと深刻なのは、インタビュアーが過度に曖昧な質問をし、それについて厳しすぎると判断することにより、問題がより深刻になっているように思えます。特に開発の分野では、インタビュアーが曖昧な質問をすることは珍しくありません。通常、これはあなたがどのように考え、最初の本能があなたを導くかを測定しようとするために行われます。そのためには、その種のデータをローカルに保存する必要性を疑問視することでうまくいきました。これらの質問自体は悪いことではありませんが、インタビュアーがそれらに対して行うことはあなたにとって悪い結果につながる可能性があります(おそらく、そのようなインタビューの終了は、おそらくとにかくその会社のために働きたくないことを意味します)。

現在、企業のビジネスニーズにより、何らかの理由でローカルストレージを使用する必要がある場合があります。その場合は、職務記述書に記載されているはずであり、履歴書が訓練または提供することができない、またはすべきでないと感じた場合、履歴書がそのような経験を反映していない可能性がある候補として除外されるべきでした新しい従業員は、テクノロジーを理解するための時間/手段を備えています。

ローカルストレージについては、前述したように、仕様としてのHTML5は約3年しか使用されておらず、寛大で「最後の呼び出し」ドラフトを数えています。次に、ブラウザのサポートの問題があります。これには長い歴史がある場合とない場合があります(たとえば、名前と値のペアはHTML5の固化以前でも広くサポートされていましたが、IndexedDBとWeb SQL DBはまだ不完全です)。

最後に、HTML5ローカルストレージの使用はまだ一般的ではありません。Web開発者としての私の年で、私は一度のすべてを、それを利用知っていることをアプリに遭遇しました(そこに目に見えない、それを使用しているいくつかのかもしれないが、難しいというのは、定量化するために)、そしておそらく半ダースのプロジェクトは、そのことができるようにそれを利用するために(しかし、その時点で実際にそれらを必要としなかった、またはそのアプローチを別のものに対して使用するコストは正当化されなかった)

より一般的な意味では、失敗したインタビューが発生します。ソフトウェア開発は、これまで(この場合は、HTML5のローカルストレージの容量制限)一つ一つについて、すべてのほとんどの詳細を知ることができるようにする大きすぎるAフィールド、および与えられた事を知らないことについて正直であることは、私の意見では、依然として最良のルートです(私は個人的に、知識のギャップを認識し、それを埋めようとする人に対して、何かを知らないという事実を隠そうとする人よりも、より尊敬しています)。これを念頭に置いて、ここで提供した情報を考慮して、質問をうまく処理したと思います。何かあったら 間違っていた、それはあなたが答えた方法の詳細にあったかもしれない、私たちはあなたの応答の非言語的側面を評価するためにインタビューにいなかったので、ここではあなたを助けられない。


7

「正しい」答え-少なくとも、彼らが探していたもの-は確かにHTML5 LocalStorage(Steven Burnapによる素晴らしいリンク)でした。インタビュアーはおそらく…そうですね、技術的なフレーズは「ちょっとしたノブ」だと思います。

これは基本的に消去のプロセスによって達成されます。Cookieは十分な大きさ近づけることができないため、セッションは実際にはサーバー側であり、クライアント側のストレージメカニックではありません。これは知っておくべきです。これは、ルールではなく例外であるデータ量の多いUIの作業で通常HTML5 LocalStorage機能のみが必要な点で面白いです。人は何年もプログラムを作成することができ、機能を必要としませんが、他の人は最初のプロジェクトで機能を必要とする場合があります。

しかし、私は一般的にこのような場合、それはあなたの答えの問題ではなく、あなたがそれにどのように答えたのか、そしてあなたがそこにたどり着いたプロセスの問題ではないと言います。あなたの説明から、あなたは大丈夫でしたが、私はそこにいなかったので、彼らの印象は非常に異なっているかもしれません。

ほとんどの賢明なインタビュアーは、テクノロジーの小さな一面を、すべての人がすばらしい答えを出さなければならないリトマス試験だとは宣言しません... そのような個人に出くわすと、そのような雑学を知ることは恩恵になります。

最後に、あまり面白くない方法で面接を宣言することで、その人が既にイライラして既にあなたについて決定した可能性が高いことに注意してください(この特定の質問に対するあなたの答えは、わずか)。彼らはあなたがつまずくのをしばらく待っていたので、彼らがそれを指し示すことができ、あなたが実行可能な候補者であったかどうかにかかわらず、最初の30秒で決定した事実を暴露しません。

すぐに「正しい」答えを知らない質問に答える方法を練習します。優雅に間違っていて、知識が豊富で知的に見える能力はとにかく便利なスキルであり、私たち全員が余分な練習から利益を得ることができます。いくつかの「[重要な技術の最新バージョン]の新機能」の記事をブラッシュアップして、戻ってください!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.