タグ

ブックマーク / punitan.hatenadiary.org (3)

  • 疎結合と MVC と JSON API とオーバーヘッドと非同期とレスポンスタイムに関する適当な考察 - punitan (a.k.a. punytan) のメモ

    最近考えていることを話す機会があったので文章にしてまとめてみる。 疎結合 昨今の複雑化するウェブアプリケーションを効率的に開発するにあたって、疎結合な設計にすることは開発/保守効率を上げるためには必須の条件となることは経験上嫌というほど皆が経験している。(このへんの感覚がわからない人は一度疎結合なアプリケーションを書いてみると良い) 疎結合な設計をすることで問題の切り分けが容易になり、自動化されたユニットテスト・コンポーネントテスト・ UAT が手元の MacBook で実行でき、高いカバレッジに助けられて臆すること無くコードに手を入れられる環境を入手でき、開発する上でストレスなく障害も少ないというメリットが享受できる。 話を戻して、疎結合な設計の例をみると、ウェブサーバとアプリケーションを分離することであるとか、 MVC であるとか、良質かつ単体で動く小さなモジュールを組み合わせて書くと

    疎結合と MVC と JSON API とオーバーヘッドと非同期とレスポンスタイムに関する適当な考察 - punitan (a.k.a. punytan) のメモ
  • Plack::Middleware::Session で Session Fixation 対策 - punitan (a.k.a. punytan) のメモ

    Session Fixation XSS や事前に取得したセッションを利用者に送り込んで権限を昇格させる類の攻撃で、セッションIDをクエリに含ませたり、シーケンシャルなセッションIDを用いるような愚かなことをしなければ基的に問題はないものの、 Session Fixation への根的な対策として、ログイン成功後にこれまでのセッションを破棄し、新しいセッションを発行することが望ましい。 Session Fixation について詳しいことは IPA の出している『安全なウェブサイトの作り方(pdf)』改定第4版 p.15 から p.20 に説明があります。 0.13 今まで P::M::Session ではログイン成功後に新しくセッションを開始するのにちょっとした細工が必要でしたが、 0.13 からは古いセッションの破棄とあたらしいセッションの発行を、 $request->env->{

    Plack::Middleware::Session で Session Fixation 対策 - punitan (a.k.a. punytan) のメモ
  • pjax こそが pushState + Ajax の本命 - punitan (a.k.a. punytan) のメモ

    pjaxの前にpushStateとは AjaxとjQueryの説明は不要として、pushStateとはなんぞや。 pushStateを使ってブラウザの履歴に対する操作をし、HTMLの一部のみを書き換える動作でもブラウザの戻る/進む機能を実現できる方法のひとつ。Ajaxなページを再現し、かつURLを見慣れた方法で自然にpermalinkを表現できる。 有名なところではGitHubで使われてるアレ。 hash fragment (/#!/) ブラウザの履歴を機能させるため、URL の fragment (#) を使ってAjaxなページを実現する方法。一時期もてはやされた感があるが、さらなる「#!」URL批判 - karasuyamatenguの日記 など合理的な反論があり、これから導入するのはためらわれるところ。 有名なところではTwitterで使われているあの厄介者。 pjaxとは pjax

    pjax こそが pushState + Ajax の本命 - punitan (a.k.a. punytan) のメモ
  • 1