思いつきをメモ. 良い点 コンストラクタが隠蔽される JavaScript では, オブジェクトのコンストラクタは関数として定義されます. なので, new Constructor と呼び出すべきなのに, Constructor() というように呼び出されることもあり得ます. インスタンスメソッドも隠蔽される Dog.create() でオブジェクトが生成されるまでは, greet() メソッドは見えません. オブジェクトを通してしか, インスタンスメソッドにアクセスできないということです. 悪い点 create() の定義が面倒 create() に渡された引数を, init() に渡さないといけないので, 定義がやや煩雑です. Function.apply() が使えれば, arguments を渡すだけで良さそうですが, コンストラクタを Function.apply() で呼び出す
Jasmineでスペックを書いていく環境を整えるのにJasmine Toolなるものを試してみた。 なお最近なんだかJasmine押しですが、Jasmineしか試してないだけであり他意はありません。 2011/01/12追記 Jasmine Toolはブラウザを介するもので、普通のJasmineとやってることは変わらない。 Node.jsを使って動かすのであって、Node.jsのソースをテストするのではない。ややこしいけど。 Node.jsのモジュールのテストにはjasmine-nodeやvowsが向いていそう。 両方試してみてjasmine-nodeについては書いた。 Jasmine Tool そもそもこれはなんぞや Jasmine ToolはNode.jsで動くコマンドラインのツール。 簡単に言うとrubygemsのjasmineのNode.js版。 rubygems版との違いはRub
Ruby 以外のプログラムを書いていると, 「RSpec で spec が書けない」というだけの理由で, 億劫になってしまうことがあります. RSpec で JavaScript の spec が書ければ... そう思って, やってみました. まずは実際のコードを説明なしに紹介し, 環境構築手順や, 解説については後述します. テスト対象 (System Under Test) 今回はこの JavaScript のコードを対象に, spec を書いてみます. とりあえずは「RSpec で JavaScript の spec が書けるのか」という検証が目的なので, シンプルなもので十分でしょう. t-wada さんのRSpec の入門とその一歩先へをそのまま JavaScript にしてみたようなものです. detect メソッドに渡す文字列の中に, コンストラクタに渡された単語が含まれるか
先日、作っているアプリケーションにバグが発生しました。バグの内容は次のようなものでした。 同時に存在してはいけないはずのデータが、DB に存在する 整合性のチェックはアプリケーションレベルで行っている 一意制約のような単純なものではないので、アプリケーションレベルで実装 整合性のチェックロジックは正しい これに対し、バグは次のような状況で発生したと仮説を立てました。 ユーザがレコードを一括登録しようとする 登録ボタンを押したがレスポンスが遅い この間、整合性チェックが走っている ユーザはもう一度登録ボタンを押した 2回目の登録の整合性チェックが走り始める 1回目の登録の整合性チェックが完了、INSERTが始まる 2回目の登録の整合性チェックが完了、INSERTが始まる 2回目の登録の整合性チェックの間、DBにはまだ1回目の登録によるINSERTが実行されていないので、チェックを通過した 結
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く