タグ

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

  • 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サービス開発日記
    closer
    closer 2015/08/24
  • 最近の Rack サーバ事情について - おもしろwebサービス開発日記

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

    最近の Rack サーバ事情について - おもしろwebサービス開発日記
    closer
    closer 2015/02/25
  • Rails 3.0 リリースノート和訳 - 後編 - おもしろwebサービス開発日記

    お待たせしました。後編です。一週間で書くつもりが一ヶ月かかりました>< Rails 3.0 リリースノート和訳 - 前編 - おもしろWEBサービス開発日記 7 Action Pack Action Packには重要な変更が(内部的にも外部的にも)あるよ。 7.1 Abstract Controller Abstract Controller は Action Controller の一般的な部分を取り出して他のライブラリでも使えるモジュールにしたものだよ。これによって他のライブラリで render template render partials helpers translations logging リクエストがきてレスポンスを返すサイクル全般 ができるようになったよ。この抽象化によって ActionMailer::Base が AbstractControllerを継承して Mai

    Rails 3.0 リリースノート和訳 - 後編 - おもしろwebサービス開発日記
  • Rails 3.0 リリースノート和訳 - 前編 - おもしろwebサービス開発日記

    Rails 3.0: Release Notes の和訳をしています。量が膨大なのでとりあえず半分をエントリとして切り出しました。基的に意訳で適当に削除したり付け加えたりしてる部分もあります。もし間違い等見つけたらご連絡をお願いします>< 後編は一週間後くらいまでに書きます。 (追記) id:gom68さんが全文の和訳をされているので、全文の和訳が見たい方はこちらを参照してください。 Rails3 リリースノート全文和訳 (ただし適当) - うっかりプログラミング日誌 ↑があるので後編は急がず、それぞれの章の深掘りを先にやるかもしれませんー (追記) 後編書きました Rails 3.0 リリースノート和訳 - 後編 - おもしろWEBサービス開発日記 まえがき Rails3.0はまだベータ版。バグがあるかもしれないので見つけたらこちらに報告してね。空軍の核爆弾発射アプリのような正確さが求

    Rails 3.0 リリースノート和訳 - 前編 - おもしろwebサービス開発日記
  • daemonの作り方 - おもしろwebサービス開発日記

    先日webrickのソースを少し読んだのですが、daemonを作る部分がよくわかりませんでした。 def Daemon.start exit!(0) if fork Process::setsid exit!(0) if fork Dir::chdir("/") File::umask(0) STDIN.reopen("/dev/null") STDOUT.reopen("/dev/null", "w") STDERR.reopen("/dev/null", "w") yield if block_given? end 具体的にわからない部分を書くと Process::setsidってなに? なんでfork二回もやってるの? その後のchdirとかumaskとかreopenとかは何でやってるんだろう? のようなところ。つまりほぼ全部ですね・・・>< そこでいつものように調べました。 Pro

    daemonの作り方 - おもしろwebサービス開発日記
    closer
    closer 2010/06/10
  • 1