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

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

Pinto

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

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

なるほどRESTUnitかー

id:yoheiさんのブクマ経由で知りました。 ongoing by Tim Bray · Testing REST 「RESTfulなWebアプリ、BDDで作りたいじゃんね。テスティングフレームワークぐらいあると思ったら、あれ?」という話。私がPintoBeansでやろうとしていること(全然できてないけ…

Pinto公開に向けて #21 ― HTTPレイヤのテストを共通化するテスト

あらすじ Pintoというソーシャルブックマークサービス、およびPintoBeansというWebアプリケーションフレームワークをRubyで開発中です。その際に気づいたことや工夫した点などを、備忘録を兼ねて書いています。その21回目です。 HTTPレイヤのテストを書くの…

Pinto公開に向けて #20 ― HTTPレイヤからのTDD

あらすじ Pintoというソーシャルブックマークサービス、およびPintoBeansというWebアプリケーションフレームワークをRubyで開発中です。その際に気づいたことや工夫した点などを、備忘録を兼ねて書いています。その20回目です。 HTTPレイヤのテストこそ重要 …

Pinto公開に向けて #19 ― HTTPレスポンスヘッダのテストを考える

あらすじ Pintoというソーシャルブックマークサービス、およびPintoBeansというWebアプリケーションフレームワークをRubyで開発中です。その際に気づいたことや工夫した点などを、備忘録を兼ねて書いています。その19回目です。 Rackの挙動を確認 PintoではR…

Webアプリケーションをテスト駆動開発するには

TDDならモックの出番はない? いつものように思いつきエントリなので、眉にツバをキュッキュとつけてお読みいただければ幸いです。「Pinto公開に向けて #18 ― RSpecのモックを使ってみた」では、Rackエントリポイントの実装と、そのテストコードを考えました…

Pinto公開に向けて #18 ― RSpecのモックを使ってみた

あらすじ Pintoというソーシャルブックマークサービス、およびPintoBeansというWebアプリケーションフレームワークをRubyで開発中です。開発中に気づいたことや工夫した点などを、備忘録も兼ねて書いています。その18回目です。 Rackインターフェーサが必要だ…

Pinto公開に向けて #17 ― フレームワークを切り出した

あらすじ Pintoというソーシャルブックマークサービスを、Rubyで開発中です(GitHubリポジトリ)。開発中に気づいたことや工夫した点などを、備忘録も兼ねて書いています。その17回目です。 PintoBeans 始めました Pintoを作る過程で、実はWebアプリケーショ…

Pinto公開に向けて #16 ― 責務駆動設計で仕切り直すことに決めた

あらすじ Pintoというソーシャルブックマークサービスを、Rubyで開発中です(GitHubリポジトリ)。開発中に気づいたことや工夫した点などを、備忘録も兼ねて書いています。その16回目です。 ActiveSupportのDependenciesを使って、やめた autoloadを山ほど書…

Pinto公開に向けて #15 ― String等をラップした

あらすじ Pintoというソーシャルブックマークサービスを、Rubyで開発中です(GitHubリポジトリ)。開発中に気づいたことや工夫した点などを、備忘録も兼ねて書いています。その15回目です。 本題 id:akktさんによる「OOコード養成ギブス」という記事が、はて…

Pinto公開に向けて #14 ― rackupの「-E」オプション

あらすじ Pintoというソーシャルブックマークサービスを、Rubyで開発中です(GitHubリポジトリ)。開発中に気づいたことや工夫した点などを、備忘録も兼ねて書いています。その14回目です。 本題 Rack本体のbin/rackupにはいろいろなオプションを渡せます。 …

Pinto公開に向けて #13 ― ActiveRecord::Extensions を断念

あらすじ Pintoというソーシャルブックマークサービスを、Rubyで開発中です(GitHubリポジトリ)。開発中に気づいたことや工夫した点などを、備忘録も兼ねて書いています。その13回目です。 本題 ActiveRecordの拡張ライブラリであるActiveRecord::Extension…

Pinto公開に向けて #12 ― URIを変更&HTTPメソッドに簡単に対応

あらすじ Pintoというソーシャルブックマークサービスを、Rubyで開発中です(GitHubリポジトリ)。開発中に気づいたことや工夫した点などを、備忘録も兼ねて書いています。その12回目です。 URIを変更 ニコニコ動画の外国語版が公開されたとのニュースを読み…

Pinto公開に向けて #11 ― gettextのメッセージIDを固定文字列に変えた

あらすじ Pintoというソーシャルブックマークサービスを、Rubyで開発中です(GitHubリポジトリ)。開発中に気づいたことや工夫した点など、他の開発者の方にも役立ちそう、と思ったことを書いています。その11回目です。 本題 「メッセージIDが変数になるこ…

Pinto公開に向けて #10 ― Rackリファレンスとar-extensions

あらすじ PintoというソーシャルブックマークサービスをRubyで開発しています(GitHub上のリポジトリ)。開発中に気づいたことや工夫した点など、他の開発者の方に役立ちそうなことがあれば書いていくシリーズ企画です。 Rack日本語リファレンス 山本陽平さ…

Pinto公開に向けて #9 ― Content-Locationヘッダに対応した

以前に書いた: 非プラトニック形式のURIに対してGETリクエストがあった場合 ステータスを「200 OK」とし、指定言語でリソースを返す。また、Content-Locationヘッダでプラトニック形式のURIを返す。 続・多言語リソースのURIに関する覚書 という方針をPinto…

Pinto公開に向けて #8 ― OpenID対応中

眠いので、簡単に。「Pintoって何?」という方は前回の記事をご参照ください。 Rack::Auth::OpenIDは現状使えない OpenID対応するにあたり、Rack::Auth::OpenIDを使ってみようと思ったわけですが、現状では使えないことが分かりました。ruby-openidのバージ…

Pinto公開に向けて #7 ― Ruby-GetText-Packageで多言語対応した

あらすじ Rubyの勉強がてら、Pintoというソーシャルブックマークサービスを作っています。前回の予告どおり、Ruby-Gettext-Packageで多言語対応したので、そのメモを残しておきます。 テンプレートの検討 view/index.erb <a href="<%== uri('signup_openid', 'lang' => @lang) %>"><%= _('Sign Up') %></a> としておいて、…

GitHubにPintoのリポジトリを作った

作成中のソーシャルブックマークサービス・PintoのソースコードをGitHubで公開しました。 GitHub - iwamot/pinto 意図は2つ。 Gitの使い方を覚えたい この日記にソースを載せても見づらいのでGitHub上で見せたい 以下、作業メモです。 ディレクトリ構成はこ…

Pinto公開に向けて #6 ― テンプレートにuriメソッドを追加した

あらすじ いじり始めたばかりのRubyで、Pintoというソーシャルブックマークサービスを作っている最中です。前回は、ビュー周りを実装しました。今回は、gettextを触る予定でしたが、後回しにして(えー)、テンプレートにuriメソッドを追加しました。その際…

Pinto公開に向けて #5 ― Erubisでビュー周りを実装した

あらすじ いじり始めたばかりのRubyで、Pintoというソーシャルブックマークサービスを作ろうとしています。前回はコントローラ周りを実装しました。今回はErubisを使ってビュー周りを実装したのでその報告です(誰に)。Webアプリのセキュリティについても少…

Pinto公開に向けて #4 ― コントローラの呼び出し処理を実装した

あらすじ いじり始めたばかりのRubyで、Pintoというソーシャルブックマークサービスを作ろうとしています。前回はAddressableというライブラリを使って、ルーティング周りを実装しました。ルーティングというぐらいなのでコントローラ名が動的に決まるわけで…

Pinto公開に向けて #3 ― Addressableを使ってみた

あらすじ PintoというソーシャルブックマークサービスをRubyで作ろうとしています。URI駆動設計がアツいので、前回はURIを設計しました。今回はURI Templatesに基づくルーティング処理をAddressableで実装してみます。 おことわり Rubyはいじり始めたばかり…

Pinto公開に向けて #2 ― ユーザ登録周りのURIを考えた

あらすじ Pintoというソーシャルブックマークサービスを作ろうとしています。ソーシャルというぐらいなので、ユーザ登録処理の実装が必要です。『RESTful Webサービス』で提唱されているROAの流儀に従い、ユーザ登録処理に必要なリソースとそのURIを決めてい…

Pinto公開に向けて #1 ― テンプレートエンジンをErubisに決めた

昨日の日記の最後のほうに書いたとおり、Rubyのテンプレートエンジンについてざっくり調べてみました。 調査結果(ほんとにざっくりです) eRuby PHPのようなHTML埋め込みの書式(≠実装) 実装にはERB(Ruby標準)、eruby、Erubisがある ベンチマーク的にはE…

PintoというWebアプリを作ることに決めた

「2時間で○○.inを公開しましたー」というご時勢ですが、私の場合、「PHPがしっくりこない」とか「PHPがしっくりこない」とかの理由で、アイディアを思いついてからもう1年半も経ってしまいましたよ!!仕事でPHPを使っているから趣味でもかたくなにPHPで頑張…