ブックマーク / kenn.hatenablog.com (5)

  • ユーザとユーザを多対多で関連付けるモデルを共通化する - Hidden in Plain Sight

    思いのほか前回のRailsプチ・デザインパターンの紹介に反応があったので、こういう小ネタも出していったほうがいいのかな、ということで第二弾。 ソーシャル系アプリだと、ユーザとユーザを関連付ける多対多のモデルがたくさんでてきます。たとえば、一般的なところではフォローとかブロックとか足あととか。さらにデーティングサイトになると、ウィンクだったり、Secret admirer(こっそりlikeするけど両思いだったらおめでとうって通知がくるってやつ)だったり、いろいろなモデルがこのパターンにあてはまります。 この場合、「AがBをフォローしている」「BがAをフォローしている」「AとBがお互いにフォローしている」という3つの状態があるわけですが、相互フォローの状態は「AがBをフォローし、かつBがAをフォローしている」と読み替えてSQLでも記述可能なので、以下ではシンプルに単方向のグラフで全てを扱うもの

    ユーザとユーザを多対多で関連付けるモデルを共通化する - Hidden in Plain Sight
    daiki_17
    daiki_17 2014/03/06
  • プライマリキーを使った1:1関連でカラム数の多いテーブルを分割する - Hidden in Plain Sight

    おそらく多くのソーシャル系アプリにあてはまるRailsのプチ・デザインパターン的な話。 ぼくが今やっているEast Meet Eastには、ユーザごとに数多くのプロフィール属性があります。名前、性別、生年月日、郵便番号、職業などなど、カラム数にしてざっと25個。これを、全部ひとつのusersテーブルに詰め込むのは、コードの見通しという観点からも性能の観点からも、あまりよろしくありません。 なぜならば、ユーザ関連の情報を扱う局面としては主に メールアドレスとパスワードなどを使ってログインする(アカウント情報) プロフィール情報で条件を指定してユーザを検索・推薦する(プロフィール情報) という2つの独立性の高いユースケースにわかれるため、ログイン処理をやってるときにはプロフィール情報はいらないし、プロフィールを検索してるときにはメールアドレスやパスワードをロードするのは無駄です。また、開発やデ

    プライマリキーを使った1:1関連でカラム数の多いテーブルを分割する - Hidden in Plain Sight
    daiki_17
    daiki_17 2014/03/05
  • テスト考2014 - Hidden in Plain Sight

    年々、ウェブアプリを開発するときにテストを書こうという機運が強くなっていると感じる。 これは、開発パラダイムの成熟を意味することであり、基的に良いことだと思っている。 しかし同時に「テスト原理主義」とでもいうような極端な考え方もでてきていて、開発スタイルをめぐって摩擦が起こっている。 そして、この議論は「テストは、ないよりあったほうが良いよね」という、微視的には誰も反論できないロジックに押し通されがちで、「地獄への道は善意で舗装されている」の典型的な現象に見えて仕方がない。 テストを書かない、というと背景にどんな深い考えがあっても素人くさく聞こえ、逆にテストを書くというだけで良いプログラマーに見える、という非対称な化粧効果がある。ソフトウェア・コンサルティング会社がテスト好きなのは決して偶然ではない。 ソフトウェアというのは、結局のところ、動いてナンボ、使われてナンボである。 期待するも

    テスト考2014 - Hidden in Plain Sight
    daiki_17
    daiki_17 2014/01/03
  • パンカクのイグジットと新たな旅立ち - Hidden in Plain Sight

    前回、サンフランシスコからラスベガスへ引っ越しますという報告をしてから1ヶ月が経ちました。実はこの間、怒涛の1ヶ月でした。 まず、あの直後にパンカクの事業がコロプラに譲渡されることが決まりました。そして、7月31日をもってパンカクを正式に退職することが決まり、この4年間の旅は終着点へとたどりつきました。 思い返せば、2009年にインフォテリアUSAを閉鎖することが決まったとき、日発のiPhoneアプリとして堂々の全米No.1を獲得したLightBikeというゲームを作っている会社から、「このゲームの人気を軸に対戦ゲームのプラットフォームを作って一緒に米国市場を攻めないか?」と、代表のやんくんから声をかけてもらったのが、パンカクとの運命の出会いでした。 その後、Pankiaと名付けられたそのプラットフォームは、iOS / Android / サーバサイドそれぞれ1-3名からなる少数精鋭のチ

    パンカクのイグジットと新たな旅立ち - Hidden in Plain Sight
    daiki_17
    daiki_17 2013/08/12
  • さよならシリコンバレー - Hidden in Plain Sight

    明日から、8年間住んだサンフランシスコ・ベイエリアを離れてラスベガスに引っ越します。 びっくりでしょ。いやー自分でもびっくりです。なんせ、そんなことは数ヶ月前までは考えたこともなかったからです。ある日の突然の思いつきで、ラスベガスにコンドミニアム(日でいうマンション)を購入することを思い立ち、そこから3週間後には現地で契約書にサインしていました。いわゆる衝動買いというやつですかね。。。ともかく、あっという間でした。 で、このことを言うと、色々な人に「なぜ?」と怪訝な顔で聞かれるので、自分自身で整理する意味でもきちんと書いてみようと思いました。 結論をひとことでいうと「経済的な合理性」なのですが、まずは背景から。 高騰する家賃 サンフランシスコは、家賃がどんどん上がっています。どのぐらい高いかというと、2013年の現在、1ベッドルーム、日でいう1LDK的な間取りの平均家賃が$2,700で

    さよならシリコンバレー - Hidden in Plain Sight
    daiki_17
    daiki_17 2013/07/01
  • 1