タグ

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

  • JMeter使うのだるいなーと思ってたらruby-jmeterというRubyでテストプランを書けるツールがあった | mah365

    JMeter使うのだるいなーと思ってたらruby-jmeterというRubyでテストプランを書けるツールがあった。知らなかった(迫真)。 典型的なRailsアプリのテストプラン そういう訳で典型的なRailsアプリのテストプランを書いてみたのがこちら。 ユーザーログインページでCSRFトークンを取得し、常にHTTPヘッダにつけるようにする ユーザーログイン情報をクッキーに保存 といった典型的な処理を盛り込んでいます。あとはREADME.mdを読んでもらえれば大体の書き方が把握できるかと思います。 ちなみに、# Debugというコメントの下2行をコメントアウトしてもらうと、JMeter上でデバッグ用の出力を表示することができます。テストプランが上手く動かないときに、リクエストヘッダやレスポンスを確認するのに便利です。 で、これをコマンドラインで ruby sample.jmx.rb && j

    JMeter使うのだるいなーと思ってたらruby-jmeterというRubyでテストプランを書けるツールがあった | mah365
  • 人のコードを引き継ぐときに一番困るのは「使われていないコード」 | mah365

    プログラミングを生業としていると、人のコードを引き継いで開発するなんてこともままある訳ですが、そういうときに一番困るのは「使われていないコード」だなー、としみじみ感じます。 使われていないコードがもたらす弊害 特に動的言語で書かれたコードというのは前触れ無く呼び出される可能性があるため、当に利用されていないのかどうなのか、きっちりと調べあげるのは困難なケースがあります。例えばrubyであれば、method_missingでキャッチしてsendで動的に処理先を振り分けるなんてことをしていると、単純にgrepして利用状況を見るだけでは不十分な場合があります。 そういう意味では「使われていないコード」というよりは、「使われているのか使われていないのかはっきり分からないコード」という方が適切な表現かも知れません。 そういった「はっきりと判断のつかないコード」がある状態だと何が問題なのかと言うと、

    人のコードを引き継ぐときに一番困るのは「使われていないコード」 | mah365
  • Writing Fast Rubyというスライドが良い | mah365

    ちょっとしたコードの書き方でパフォーマンスが変わることがあります。リーダビリティを重視する向きからすれば小手先のテクニックに映るかも知れないのですが、リーダビリティを維持しながらちゃんとしたパフォーマンスを出すためにも、テクニックを知ることは大事なことだと思うのです。 結構違うもんですなー というわけで、そんなテクニックをまとめたスライドがWriting Fast Ruby。見ていて参考になったのでメモ。 たとえば引数に&blockをとってcallするよりも、yieldの方が5倍速い、とか、 def slow(&block) block.call end def fast yield end mapにブロックを渡すよりも、シンボルを渡す方が20%速い、とか (1..100).map {|i| i.to_s} (1..100).map(&:to_s) mapしてからflattenを呼び出すよ

    Writing Fast Rubyというスライドが良い | mah365
  • SonicGardenにおけるherokuでのサービス運用構成 | mah365

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

    SonicGardenにおけるherokuでのサービス運用構成 | mah365
  • 2013年版! SonicGardenにおけるherokuでのサービス運用構成 | mah365

    ちょうど去年の今頃、SonicGardenにおけるherokuでのサービス運用構成をご紹介しました。去年の比較して、今ではheroku番運用されているサービスも増えているかと思いますが、実際の構成例はあまり紹介されていないようです。去年ご紹介した内容も少し古くなっていますので、2013年バージョンとして、再度ご紹介したいと思います! 去年からの変更点 去年と比較して大きく変わっている点は、以下の3点ですねー。 バックアップ取得方法の見直し & 監視の導入 Route53愛してる! ログ取得のアドオンをPapertrailに変更 バックアップ取得方法の見直し & 監視の導入 @interuが去年のJAWS-UG in Nagoyaで講演したように、「当にバックアップ取れてるの?」というのは重要な視点ですね! なので、バックアップを取得するところと、監視するところ、セットで構成するように

    2013年版! SonicGardenにおけるherokuでのサービス運用構成 | mah365
  • 知っておきたい!Herokuを使う上では当たり前?の16の常識 | mah365

    Herokuの公式ドキュメントは英語なので読みづらいですよね。herokaijp/devcenterのように、有志が日語訳してくれているドキュメントもありますが、その中でも特に抑えておきたい16個の常識について挙げてみました。(16日に公開する予定の記事なので、何となく16個挙げてみました。。) (補足)Herokuを使う上での登場人物の名前 Dyno 「だいの」と呼びます。1Dynoと言ったとき、一つサーバが立ち上がっているようなものだと考えて下さい。 Routing Mesh Herokuアプリにアクセスがあったときに、Dyno間の負荷をロードバランスしながらリクエストを振り分ける機構をRouting Meshと呼びます。たまに「Router Error」というログを吐くのですが、そのとき障害が起こっている場所はここです。 常識1. Dynoは1時間アクセスがないとアイドル状態になる

    知っておきたい!Herokuを使う上では当たり前?の16の常識 | mah365
  • 大は小を兼ねない〜丁度良いソフトウェア開発〜(SonicGardenアドベントカレンダー2日目) | mah365

    SonicGardenアドベントカレンダー、伊藤さんの1日目の記事を空振りで終わらせることなく、次につなげてみたいと思います。20日からはじめたら25日までに最後まで回らないじゃん・・・ということで、20日のうちにこの記事も公開してしまいます。SonicGardenアドベントカレンダー2日目の記事です。 「なんかソニックガーデンらしいことを書け」ということなので、結構悩んだのですが、そういえば「徹底的にシンプルにする」という原則があるなーということを思い出しました。 誰でも開発できるように、シンプルな実装をする 誰でも運用できるように、シンプルな構成にする 誰でも復旧できるように、シンプルなインフラにする といったように、「誰でも◯◯できる」ということを重要視しています。少人数で複数のサービスをまわしているので、あまりに凝ったことをしていると、何かが起こった時に復旧が遅れてしまい、サービス

    大は小を兼ねない〜丁度良いソフトウェア開発〜(SonicGardenアドベントカレンダー2日目) | mah365
  • 転職して1年経った今、改めて自分戦略を振り返ってみる | mah365

    DevLove2012が自分戦略で随分盛り上がっていたらしいので、僕も自分戦略について生々しく振り返ってみようかと思いました。綺麗な自分戦略は語りつくされていると思うので、ドロドロした感じで行こうかと思います。 自分にとって大事なこと まず、自分にとって大事なことは何でしょう? このポイントさえおさえられれば、とりあえずは良いかなと思えるポイント。僕にとっては次の3つが、とても大事なポイントでした。 人に自慢できるようなソフトウェアの開発を続けられること。 ソフトウェア開発に限らず、新しいことに挑戦し続けられること。 家族が路頭に迷わないこと。 それはつまり、 仕事の自慢はしたいです(ドヤッ 作ったものの自慢もしたいです(ドヤッ 気になる事にはフットワーク軽く挑戦したいです(ドヤッ ということ。つまり、常にドヤ顔しつつ(できるような状況にありつつ)家族も幸せにしたい。それは持続的に収入を得

    転職して1年経った今、改めて自分戦略を振り返ってみる | mah365
  • ユーザビリティテストを実際にやってみて分かったこと | mah365

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

    ユーザビリティテストを実際にやってみて分かったこと | mah365
  • 1