Skip to main content

One post tagged with "KVS"

View All Tags

· 6 min read

最近は報告書とかとあるテーマへの考察を書くことが多い。 そんな中に書いたキーワードとして "オフライン対応" と "KVS" がある。 書いた資料はエンジニアにも見てもらうことがあって、意見をもらいつつ、少し説明したりする。

それって、クライアントサーバーシステムってやつでしょ?

HTML5やスマートフォンのアプリによるオフライン対応の話をしていると「一昔前のクラサバ(C/S)みたいなもんだよね」と言われることがある。 同様に「配布が大変でWebになった面もあるのに、そこ(配布バージョンの統一)はどうするの?」とも。

C/Sっていう人は何をもってC/Sと言っているかというと、読んで字の如く「クライアントとサーバーがあって、非同期で動くシステム」ということらしい。 個人的にはC/Sに関わることはほとんどなかったけど、関わってきた人がこんなざっくりとした表現でいいのか?と疑問に思ってしまう。 確かに、クライアントとサーバーあるし、非同期で動くけど、その他の違いはたくさんあるでしょ? 通信環境, 端末, UI, etc...については一切無視!? C/Sって聞くと、端末もサーバーも固定されてて動かせないイメージがあるけど、今の端末ってAndroidやiOSだったりするわけで、持ち運ぶし、通信環境もWi-Fiから3Gまで色々とあって…ということは全く気にしていないらしい。

「…ということから、C/Sっぽいっていうけど、自分ではそういう面は持ってるけど、C/Sだとは思ってないです」って話をすると、C/Sに見えなくなってくる人と、腑に落ちない人といるみたい。

トランザクションどーするの?

KVSの話をしていると、よく聞かれるのが「トランザクションどうするの?」ってこと。 「使わないように設計しますよ」って答えると「どうやって?」と聞かれる。 どうやってって、要件が明確にならないとわからないでしょ。

そもそも、トランザクションが必要なのかどうかもわからないし、本当に必要でKVSでは無理って判断をしたらRDB使うし…という考えではないらしい。 今まではRDBだったけど、KVS使うなら全面KVS!!的な勢いらしいが、そんなこと誰も言ってない。

ちょっと気になったので「KVSって使ったことあります?」って聞いてみた…ないらしい。 「KVS使った設計について考えたことあります?」って聞いてみた…ないらしい。 だとしたら、まずはKVSについてもっと知るべきだし、KVSでの設計を考えずに懸念ばかり気にしてどーする?

足元はどこ?

実現したいことをシステム化するのがIT業界であるはずなんだけど、新たに頭を使おうとはしない人が多いという側面もあると思う。 C/Sだって、トランザクションだって、既に知識も経験もあるもの。 どうして基準は過去にいた自分なんだろう?と不思議に思う。 今の時代を生きているにもかかわらず、足元見ると過去でした…みたいな、そんなイメージ。

過去の技術に囚われた視点ではなく、今の技術的なことや、要件を実現するための方式に視点をおかないと古い人になってしまう。 「スケールアウトが容易なんだって!これを使えば…」なんて話をしたり、「この要件を実現するには、ちょっと古いけどこの仕組みと、最近のこれを組み合わせれば出来そうじゃない!?」なんて話をして、もっと楽しく建設的にやろーよって思う。