岩本隆史の日記帳(アーカイブ)

はてなダイアリーのサービス終了をうけて移行したものです。更新はしません。

Webアプリ

ユーザIDとパスワードの妥当な文字種と文字列長を考える

趣味のWebアプリ製作において、ユーザ登録処理を現在実装中で、バリデーション仕様をどうするか考えてみました。その過程を晒します。何が妥当かなんて人それぞれだとは思いますが、一例ということで。 ユーザID 設計上、一部のURIにユーザIDが含まれる。URI…

RESTクライアントが知っているべきこと

クライアントとサーバの密結合を避けられるのが、RESTスタイルに従って得られるメリットのひとつです。クライアントが、アプリケーションの挙動に関する知識をほとんど持たなくてよいわけです。とはいっても、まったく何も知らないではクライアントたりえま…

WebアプリケーションフレームワークにおけるHTTPステータスコードの扱い方

最近、HTTPやらWADLやらMVCやらについて考えていたのは、Webアプリケーションフレームワーク*1を自作する*2うえで必要な作業だったからでした。方向性は見えてきた(と思いたい)ので、今回は「フレームワークにおいてHTTPステータスコードをどう扱うべきか…

Webアプリにおける適切なレスポンスボディとは

「HTTPの仕様からWebアプリのMVCを見直す」という記事を書きながら、Webアプリにおける適切なレスポンスボディとはどのようなものなのか、あらためて考える必要があると感じました。今回の記事はその実践です。 考えるべきケース まず下記のようなケースは、…

HTTPの仕様からRESTfulなWebアプリのMVCを見直す

Smalltalk由来のMVCとWebアプリのMVC 最近、WebアプリにおけるMVCに関する記事をふたつ書きました。 WebアプリでもSmalltalkのMVCパターンが使えるかも サーバサイドでSmalltalkのMVCパターンを使うのは無理があるかも これらの記事で私が想定しているのは、…

サーバサイドでSmalltalkのMVCパターンを使うのは無理があるかも

「WebアプリでもSmalltalkのMVCパターンが使えるかも」という記事に書いたアイディアについて、ここしばらく考えていました。結果、より良いと思われるアイディアが見つかったため、捨てることにします。リソースをHTMLでのみ表現するならば、ブラウザに表示…

WebアプリでもSmalltalkのMVCパターンが使えるかも

WebアプリのMVCとSmalltalkのMVC Webアプリの実装パターンとして使われるMVCという言葉は、本来の意味でのMVC、つまりSmalltalkでGUIアプリを構築する際に使われるMVCとは内容が異なります。まつもとゆきひろさんの書かれた「まつもと直伝 プログラミングの…

拡張課金 ― どうすればサラリーマンがWebアプリで稼げるのか

リリースチェッカーの現状 リリースチェッカーへの寄付の募集を始めてから4か月あまり。累積の寄付額は1600円です。リリースチェッカーに関しては、Amazonの紹介料と寄付を受ける以外に収益化方法が思いつかない*1ため「たまに黒字になれば嬉しい」ぐらいの…

フォーム認証を捨てるメリット

先日の記事「フォーム認証は本当に捨てられないのか」の続きです。 「WebサービスとWebアプリケーションを区別しないとうまくいく」という指針 RESTに関する下記の鼎談動画において「WebサービスとWebアプリケーションを区別しないとうまくいく」という指針…

フォーム認証は本当に捨てられないのか

フォーム認証とは 2008年も暮れようかという現在、Webアプリを作る際に「そうだBasic認証を使おう」と思う人はほとんどいないでしょう。ユーザIDとパスワードを入力するログインフォームを用意し、セッションIDをcookieに保存する方法を選ぶのが定石だと思い…

非同期処理メインのWebアプリについて考えた

先日「非同期にしたいけれど」という記事を書いてからずっと、非同期処理メインのWebアプリについて考えています。実装したわけではないため、まだ机上の空論にすぎませんが、方向性が見えてきたので備忘録として残しておきます。 前提条件 Create/Update/De…

リリースチェッカーへの寄付の募集を始めました

寄付の募集を始めました。がめついと思われるかもしれませんが、身銭を切りながらWebサービスを公開している技術者へのエールのつもりです。 リリースチェッカー:Amazonの新着情報をRSSで配信 というわけで、拙作のWebアプリ「リリースチェッカー」に対する…

ETagをどう生成するか

ETagとは何か ETagはHTTPレスポンスヘッダのひとつで、RFC 2616の14.19(日本語訳)で規定されています。If-None-Matchリクエストヘッダを使った条件付きGETでの転送量軽減や、If-Matchを使った条件付きPUTでの競合検出などに使われる値です。 強いETag、弱…

私はmod_rewrite派

http://neta.ywcafe.net/000870.html rewrite設定が何百ステップにもなるのは、ルーティングをすべてApacheに任せようとするからだ。元記事のようにフロントコントローラ*1を使うなら、rewrite設定は2行で済む。 RewriteEngine on RewriteRule !\.(js|ico|gi…

『安全なウェブサイトの作り方 改訂第3版』を読んだ

Webアプリ開発者なら必読と思っている資料が改訂されたので読んだ。 安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構 うん。やっぱり必読だ。こういう指針があるのはありがたい。前の版にもあったと思うが『URL を出力するときは、「http://…

「CAPTCHAは愚策」がおもしろい

江島健太郎さんのコラム「CAPTCHAは愚策」が、はてなブックマークでの反応まで含めておもしろい。 JavaScriptで良いのか JavaScriptを使う方法では、JavaScriptの動作しないUAで操作(ユーザ登録など)ができなくなる。そのことをもって江島さんの主張を批判…

タイムゾーンはUTCに統一すべき

WebアプリはスクリプトやDBのタイムゾーンをUTCに統一すべきと思った。ユーザが好みのタイムゾーンを選択できるようにして、日時を表示するビューでUTCから変換すればよいだけだから。国外ユーザを想定しないならJSTに統一するのもありだろうけど、そんなの…

ポストマップが素晴らしい

ポストマップ | ポストをひたすらマッピング 私は(脳内メーカーのような)「おもしろい」Webアプリより(livedoor Readerのような)「役に立つ」Webアプリのほうが好きなのだが、ポストマップは「おもしろくて役に立つ」理想的なWebアプリだ。Googleマップ…