ブックマーク / qiita.com/ta_ta_ta_miya (3)

  • ソシャゲ開発経験から学んだゲームに Redis を使う際の Tips

    近年の KVS では割と Redis が覇権を取っていることもあり(当社比), 社内の多くのプロジェクトで Redis を使用するようになりました. ということでノウハウ的なのも溜まってきたのでまとめたいと思います. (大量のユーザーデータを扱うソシャゲにしか当てはまらない部分もあるかと思います) 単純にパフォーマンスを RDB < Redis と思い込んでとりあえずでキャッシュしない 「Redis は速い」と言われますが, インデックスをちゃんと貼った RDB のクエリも そこまで遅いわけではありません. 結局通信コストの方が遥かに大きいので内部の 取得時間差はトータルで考えると多くの場合誤差です. 特に RDB の主キーのみで取得できるようなデータを Redis にキャッシュすることに メリットはありません. キャッシュするコードを書くコストの方が高くつきます. キャッシュするのは R

    ソシャゲ開発経験から学んだゲームに Redis を使う際の Tips
  • UUID(v4) がぶつかる可能性を考えなくていい理由 - Qiita

    お手軽にランダムなIDを取得したい時にUUIDはとても重宝します。 でもたまに、 「このID(UUID)ってぶつかることない?対策しなくて大丈夫?」 と聞かれることがあります。 それに対して、 「ウィキペディア先生がぶつからねえって言ってたから大丈夫だよ!(#゚Д゚)」 で切り抜けるのもそろそろ限界のような気がするのでちゃんと調べました。 (もちろんウィキペディア先生を頼りました!) 2つの理論 UUIDの衝突確率について考える上で次の2つの理論が重要になります。 鳩の巣原理 誕生日のパラドクス 鳩の巣原理 鳩の巣原理とは、 m個の入れ物にn個のものを入れるとき、n > m ならば少なくとも1個の箱には2個以上のものが入る 9個の巣箱に10羽の鳩が入る場合、必ずどれかの巣箱には2羽以上入ることになるということです!(ウィキペディア先生) 考えれば当たり前のことですが同様にして考えれば、 「

    UUID(v4) がぶつかる可能性を考えなくていい理由 - Qiita
  • テストコードとか書いてみてもいいんじゃない? - Qiita

    from dog_bark import dog_bark def test_dog_bark(): assert u'ワンワン!' == dog_bark('Japan') assert u'Bow wow!' == dog_bark('USA') となります。 実際にdog_bark関数を実行して、想定した結果文字列と直接比較するというコードです。 世に言うテストコード書こうぜ!という主張はこんな感じのコードを量産しようぜ! ということになります。特に難しいことはないですね。 テスト実行は例えばPythonのPytestなら $ py.test test_dog_bark.py でOKです。もしテスト関数を増やしたとしても勝手にファイル内のテストを認識して 実行してくれます。 ちなみにどの言語のどのテストフレームワークもこのくらいの機能はあります。 (コンパイルがいる言語は多少手間が増

    テストコードとか書いてみてもいいんじゃない? - Qiita
  • 1