タグ

ブックマーク / blog.mah-lab.com (7)

  • JSON-RPC 2.0に準拠したAPIをRails4で実装する | mah365

    HTTPで通信するAPIはRESTで設計するのが定石ですが、利用者から見ると不便な場合があります。 RESTは設計に強い制約を与えるため、多人数で開発するときでも設計の一貫性を確保することができるのが利点です。更に一定のパターンに従っている分、既存のRESTクライアントを使って手軽にAPIを利用した機能を実装できるのも魅力的です。 しかし設計がRESTに従う分、例えばいくつかの処理をまとめてトランザクションとして扱いたい、といった場合に、インターフェースを独自に拡張しなくてはいけない状況に立たされることがあります。そもそもRESTだとAPIの単位が細かすぎて、利用者から見て使いにくい、といったケースもあります。 そういった場合はRPC(Remote Procedure Call)でAPIを設計することを検討してみても良いかも知れません。RPCの中でもJSON-RPCという仕様が比較的実装し

    JSON-RPC 2.0に準拠したAPIをRails4で実装する | mah365
    willnet
    willnet 2016/05/15
  • HerokuでパフォーマンスモニタリングするならLibratoを入れよう! | mah365

    HerokuでのパフォーマンスモニタリングにはNewRelicアドオンを入れるのも便利ですが、Libratoという「よりHerokuに寄り添った」メトリクスを出してくれるアドオンもあります。 こんな感じ とあるサービスで導入してみたところ、こんな感じでメトリクスが出ます。 RouterのQueueが詰まっていないか?とか、Dynoのメモリの推移や、PostgreSQLの容量は大丈夫か?といった情報をひと目で把握できる感じです。ダッシュボード的な感じですね。 他にも必要なメトリクスがあれば追加することができます。 もちろんアラートを設定することもできます。 無料のプランから使えるので、まずはお試しで。 とはいえ無料のプランでも十分に使えるクオリティだと思います。Herokuでアプリを運用している方は、ぜひご活用を! Librato

    HerokuでパフォーマンスモニタリングするならLibratoを入れよう! | mah365
    willnet
    willnet 2015/05/09
    なかなかよさげ
  • 自動的にEager Loadingしてくれるようになる「Goldiloader」というGemが良い感じ | mah365

    RailsでのDBへのクエリの組み立ては常にN+1問題との戦いですよね。N+1が発生すると大幅にパフォーマンスがダウンしてしまうので、適切な事前ロードをいかに行えるかがプログラマの腕の見せどころになります。 でもそれって質でしょうか? DBにクエリを投げる部分の実装の詳細なのでは? クエリが空気読めばいいじゃん!という「Goldiloader」 「それって実装の質じゃないよね。詳細だよね。それはクエリを投げる部分(ActiveRecord)が空気読めばいいんじゃね?」 そんな思想で現れたGemGoldiloaderです。Gemfileに加えるだけで勝手にEager Loadingしてくれるようになります。 このGembundleせずに以下のコードを叩くと、eachでpostsが呼ばれるたびにロードを繰り返してしまうのですが・・・ > blogs = Blogs.limit(5).t

    自動的にEager Loadingしてくれるようになる「Goldiloader」というGemが良い感じ | mah365
    willnet
    willnet 2014/06/23
    おもしろそう
  • Railsプログラマはこれを入れればすぐにズルいデザインをはじめられます! | mah365

    先日のプログラマ向けデザイン勉強会で発表された「少ない手間と知識で”それなり”に見せる、ズルいデザインテクニック」(by 赤塚さん)の中に書かれていたSassのMixinをRailsで使えるGemにしてみました。 zurui-sass-rails: https://github.com/mahm/zurui-sass-rails sample: http://zurui-sample.herokuapp.com/ うおおずるい!w RT @mah_lab: .@ken_c_lo さんのズルいデザインをGemにしてみました。 github.com/mahm/zurui-sas… サンプルはこちら zurui-sample.herokuapp.com (based on github.com/machida/Custom…) — TAEさん (@ken_c_lo) 11月 7, 2012 @m

    Railsプログラマはこれを入れればすぐにズルいデザインをはじめられます! | mah365
    willnet
    willnet 2012/11/18
    これはつかわざるをえない
  • SonicGardenにおけるherokuでのサービス運用構成 | mah365

    SonicGardenではいくつかのサービスをheroku番運用しています。herokuはステージング用途で利用されこそすれ、番環境として運用されている話はあまり見かけないと思いますので、どんな構成で運用しているのかご紹介したいと思います。 使用している外部サービス サービス名 説明

    SonicGardenにおけるherokuでのサービス運用構成 | mah365
  • ユーザビリティテストを実際にやってみて分かったこと | mah365

    「せっかく作ったサービスを暗黒面に落とさないためにも、ユーザビリティテストは必須のものである。」 アジャイルUCD研究会の樽さんの呼びかけに応じ、ユーザビリティテストマニュアルの実証実験に参加した今では、心の底からそう思います。2011年10月9日と10日の2日間を通して樽さんのオフィスにて実証実験に参加しましたが、非常に刺激的でした。フィードバックを兼ねてブログに書いてみます。 ユーザビリティテストとは? 「製品やWebサイトの使いやすさ(ユーザビリティ)を、実際にユーザに使ってもらうことで確認するテスト。」(IT用語辞典 ユーザビリティテスト) 「使いやすさを確認する」と言うのは少し曖昧な感じがしますね。樽さんの言うユーザビリティテストの基は、以下の2点です。 ユーザにタスク(作業課題)を実行するように依頼する。 ユーザがタスクを実行する過程を観察、記録する。 「使いやすさを確

    ユーザビリティテストを実際にやってみて分かったこと | mah365
    willnet
    willnet 2011/11/28
    思ったことを声に出しながらタスクを実行してもらうことを 思考発話法 と言うらしいですが、「何かをしようとしているが、できなくて迷っている姿」を実際に声に出してもらうのは強烈なフィードバックです
  • 社内でbackbone.js with Rails勉強会を開催しました | mah365

    backbone.js + Rails3.1で作成したサイト「best vimrc」を題材にSonicGarden社内で勉強会を開催しました。ustreamされながら話すのは緊張しますねー。。 結果的に「クライアントサイドのコードを無理にMVCで書く理由が分からない。もっとシンプルで分かりやすいアーキテクチャがあるのでは?」という話に落ち着きましたが、サーバ側がRailsでフルAjaxなアプリを作る際には、backbone.js + Railsはgemが充実しているので良い選択肢なのかなという気がしています。 Getting Start backbone.js with Rails 次はknockout.js + Sinatraの組み合わせを試してみよう。 「best vimrc」のソースコードはgithubにあげてありますので、興味のある方はご覧下さい。

    社内でbackbone.js with Rails勉強会を開催しました | mah365
    willnet
    willnet 2011/11/28
    一回使ってみたい
  • 1