タグ

ブックマーク / blog.willnet.in (3)

  • Rails で fat model を避けるための、あまり知られていない方法について - おもしろwebサービス開発日記

    このエントリで書いた内容は、ほぼ Growing Rails Applications in Practice の内容が元になっています。英語ですが、ここで挙げた内容以外にもコードを綺麗に保つテクニックが書かれており、かつページ数も少なく読みやすいです。コードを綺麗に保つのが好きな方は一読してみることをおすすめします。 はじめに Rails で fat model を避けるための方法は、7 Patterns to Refactor Fat ActiveRecord Models を始めとして、多くのやり方が存在します*1。 validation や callback は ActiveRecord(以下AR) を継承せずとも利用することができます。7 Patterns to Refactor Fat ActiveRecord Models の 「3. Extract Form Objects

    Rails で fat model を避けるための、あまり知られていない方法について - おもしろwebサービス開発日記
  • 最近の Rack サーバ事情について - おもしろwebサービス開発日記

    先月、heroku推しサーバが unicorn から puma に変わったという発表がありました。unicorn だとスロークライアントの影響を受けやすいというのが理由なようです。 もう少し詳しく調べてみましょう。 そもそもスロークライアントってなに その名の通り遅い回線のクライアントです。3G環境のモバイル端末などが該当します。 「unicorn だとスロークライアントの影響を受けやすい」とは unicorn はプロセスモデルのサーバであり、blocking I/O モデルを採用しています。つまり、クライアントとの通信中プロセスが専有されるということです。 例えば unicorn がワーカプロセスを3つ立ち上げていて、そこへ通信完了に10分かかるようなスロークライアントが3つ接続されたら…、続くクライアントはスロークライアントの通信が完了するまで実行を待たなければならなくなります。プ

    最近の Rack サーバ事情について - おもしろwebサービス開発日記
    tune
    tune 2015/02/27
  • tachikoma を使って毎日自動で bundle update - おもしろwebサービス開発日記

    sanemat さんが作っている tachikoma という gem があります。tachikoma の機能は簡単に言うと「github の指定のプロジェクトbundle update して、差分を pull request してくれる rake タスク」です。cron や jenkins などで定期的に実行するようにすると、依存する gem のバージョンを常に最新に保つことができます。べんり! そんなべんりな tachikoma なのですが、ドキュメントが分かりづらくて損をしている気がします…><。すこしでも足しになるように、僕が作っている revenger というプロジェクト(github 上のプライベートリポジトリに置いてある)の tachikoma 設定手順をまとめましたのでご参考あれ。 前提 github のプライベートリポジトリで管理してる jenkins サーバ上で定期実

    tachikoma を使って毎日自動で bundle update - おもしろwebサービス開発日記
  • 1