home ホーム search 検索 -  login ログイン  | help ヘルプ

find 検索

941 - 950 / 1320    [|<]  [|<]  [<]  91  92  93  94  95  96  97  98  99  100   [>]  [>|][>|]
タイトル/名前 更新者 更新日
xmldom_whitspace_crossbrowser.zip msakamoto-sf 2009-10-04 17:20:29
JavaScript/select-optionタグによるメニューの動的更新 msakamoto-sf 2009-10-03 21:52:19
dynamic_dropdown_menulists.zip msakamoto-sf 2009-10-03 20:11:49
技術/TDD/JavaでUnitTestでprivateメンバにアクセスしたい場合 msakamoto-sf 2009-10-03 15:50:26
技術/TDD/JavaにおけるUnitTest時のMockオブジェクトの導入手法 msakamoto-sf 2009-10-03 13:33:10
JavaScript/select要素周りのメモ msakamoto-sf 2009-09-26 17:20:44
JavaScript/undefinedやnull値の"=="比較について参考リンク msakamoto-sf 2009-09-26 17:12:20
JavaScript/関数評価と括弧の微妙な注意点 msakamoto-sf 2009-09-26 17:03:37
JavaScript/オブジェクトリテラルのプロパティリストの末尾要素の","について msakamoto-sf 2009-09-26 15:51:01
日記/2009/09/24/TDDについて偉そうな事書いてしまったけど msakamoto-sf 2009-09-24 23:47:42
ソート項目 / ソート順     1ページ 件ずつ表示

xmldom_whitspace_crossbrowser.zip  

所有者: msakamoto-sf    作成日: 2009-10-04 17:20:02
カテゴリ: HTML JavaScript Web 添付ファイル 
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-10-04 17:20:29
md5:319ba3d3f6f639bb51aee267baa0a112
sha1:f65cbd75ab1c957694d0eba463f9b23b33fad5a9

JavaScript/select-optionタグによるメニューの動的更新  

所有者: msakamoto-sf    作成日: 2009-10-03 21:51:35
カテゴリ: HTML JavaScript 

select-optionタグのメニューリストの各<option>タグの項目を、表示する瞬間にAjaxで動的に書き換える必要が仕事で発生した。
当初は"onMouseDown"イベントで書き換えようとしていたが、IEの場合にリストが上手く展開されない現象に悩まされた。
一時、<ul><li>タグでCSSを使ったドロップダウンリストで実装してみたが、今度はFlashが真下に来た場合のz-indexが効かない。
Flashの方でwmodeをtransparentにすることで回避できるが、代わりに、Flash中でテキストボックスがある時、IMEによる日本語入力が正常に表示出来ないバグがある事が判明し、wmode指定による手法は使えない事が分かった。
最終的に"onMouseOver"イベントで書き換える様にした。つまり、ユーザーがselectメニューの上にマウスを置いた時点で、<option>を書き換える。
書き換える際はAjaxによる通信で最新のリスト項目を取得する為、パフォーマンスに若干の不安があるが、アクセスがかなり限定される箇所だった事・取得元データ(MySQL)が元から非常に更新頻度が激しくフルスキャン前提のテーブル設計だった事などより、パフォーマンス的には意識する必要がないか、意識してもしょうがない状態だったため、そのままonMouseOverを採用する事にした。

作業現場では「あーでもない、こーでもない」と10個位試作品を作っていたが、今日、記憶を頼りにある程度家のPC上でゴールに至る道のりを再現したのでメモ代わりに書いておく。

HTML/JavaScriptなどは一通り次のzipファイルに収めてあるので、実際に動かしてみたい方はダウンロードして下さい。
dynamic_dropdown_menulists.zip

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-10-03 21:52:19
md5:c7cb36bace9784b1c00cfb88a233f9a3
sha1:d607b2313d5e09775d7b2d5bc17c1ab9dd81be4f

dynamic_dropdown_menulists.zip  

所有者: msakamoto-sf    作成日: 2009-10-03 20:11:10
カテゴリ: ActionScript HTML JavaScript Web 添付ファイル 
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-10-03 20:11:49
md5:3259b0f77fb4c53ece6af3806c4cba15
sha1:62d3b7c5fb35484a390b7199f8243d92b78b9bf3

技術/TDD/JavaでUnitTestでprivateメンバにアクセスしたい場合  

所有者: msakamoto-sf    作成日: 2009-10-03 15:44:05
カテゴリ: Java TDD プログラミング 

テストコードを書く時に困るのが、privateなメンバをテストしたい場面である。
そもそもprivateなメンバをテストコードでテストする必要があるのか、テストしたいのならprivateではなく別のクラスに移すべきではないのか、という意見はひとまずおいておく。
ここでは、下記記事で紹介されている、Javaでprivateなメンバを外部からreflectionを使ってアクセスする手法を例によって抜き書きしてまとめておく。

この記事はJUnitのFAQ "How do I test protected methods?" で触れられている。2003年後半の記事なので随分と昔であり、今更個人のBlogでメモ書きするまでも無いが、自分用のメモとしてまとめておく。
なお以下のJavaコードをコンパイル・実行したのは WinXP(SP2), JavaSDKは 1.6.0_12 を使っている。
最後の方にJUnitが出てくるが、こちらはEclipse3.2に入っていたjunit-4.1.jarを使った。

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-10-03 15:50:26
md5:b4aee528e5e9fec973ee57e1fb0f2501
sha1:f467757563dcbec9af7aa756ddc621d973e08c95

技術/TDD/JavaにおけるUnitTest時のMockオブジェクトの導入手法  

所有者: msakamoto-sf    作成日: 2009-10-02 10:11:49
カテゴリ: Java TDD プログラミング 

JavaでJUnitを使った単体テストのコードを書く時、Mockオブジェクトを使いたい、という場合がある。
例えばテスト対象のインスタンスメソッドの中で、トランザクションやデータベースの接続クラスのインスタンスをnewしていたりする時、
単体テストコードを作る為にMockのトランザクション/DB接続クラスに差し替えたい、というケース。

次のIBM developerworks の記事では、テスト対象のメソッドのインターフェイスを変えずに内部だけをリファクタリングし、
Mockオブジェクトに差し替える手法が紹介されている。

以下に、大まかなリファクタリングの流れやポイントを抜き書きする。
なおMockオブジェクトとは何か、テストコードを書く時どう便利か、などについては他の記事・書籍を参照の事。

(追記)
Mockオブジェクト作成の部分に限って言えば、Javaの場合は2009/10現在であればEasyMockやjMockライブラリがあるので、実際はそちらを使った方が良いかも知れない。

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2009-10-03 13:33:10
md5:37b1a3ec01d7f191a730a5c4f339b76f
sha1:db9552ac970525b1a48433f63515c1b8016bd58c

JavaScript/select要素周りのメモ  

所有者: msakamoto-sf    作成日: 2009-09-18 00:21:05
カテゴリ: HTML JavaScript 

JavaScriptというよりはHTML寄りのメモになってしまうが、JavaScriptによる制御も混じりやすい内容なのでこちらにメモしておく。

  • "Javascript (JS) Tutorial - Select Object, select box option events, value, selected"
    • http://www.hscripts.com/tutorials/javascript/dom/select-events.php
    • select要素のEvent制御の細部(onChange/onMouseDown/...などがどのタイミングで発生するのか)がまとめられている。基本的にはonChangeを使うのが多いと思うが、他のEventも使いたい場合は目を通しておくと良いかも知れない。
  • "JavaScriptでセレクトボックスの連動 | ARTS NET"
  • "javascriptでプルダウンメニュー(オプションメニュー)を開くことができるでしょう... - Yahoo!知恵袋"
  • "Can I open a dropdownlist using jQuery - Stack Overflow"

select要素とは少しずれるが、<ul>や<li>とJavaScriptを組み合わせたDropDownメニューを使う場合がある。
この時、z-indexやpositionの指定によっては上手くDropDownメニューがオーバーラップしない場合があるらしい。そうした場合のトラブルシュートらしき記事が3件ほど見つかったので載せておく。

お仕事で試そうとしたのは、プルダウンメニューを開く時にAjaxでオプション項目を取得して生成し直す、という挙動。一応onMouseDownイベントに差し込む事で出来たのだけれど、onMouseDownイベント中でselectの要素をクリアしてAjaxの結果から追加し直す、とやってしまうと、現在選択中の項目が保持されず、項目が変わらなかった場合の挙動がおかしくなってしまう。
selectとoptions要素で実装するのは素直に諦めて、<div>やul/liなどの通常のDOM要素でプルダウンメニューを実装した方が良いかもしれない。

MSDNよりselect要素に関するMicrosoft公式ドキュメント:



プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2009-09-26 17:20:44
md5:27a1a7a973aa236514b582fbb3b2093a
sha1:6347b2e89a40e85e44526c3e4f2f0b824b6875ca

JavaScript/undefinedやnull値の"=="比較について参考リンク  

所有者: msakamoto-sf    作成日: 2009-09-26 17:11:02
カテゴリ: JavaScript 

undefinedの判定周りのWeb資料:

特に最後については、ECMAの仕様書まであたっているためもっとも精密と思われる。
自分もECMA262で確認済*1


*1: 11.9.3 The Abstract Equality Comparison Algorithm

プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-09-26 17:12:20
md5:c2cb8988a8a67f5094dd8bb1b3eaba44
sha1:5ddc5d3dc0479bac137ff0a540d3f5c1505c1714

JavaScript/関数評価と括弧の微妙な注意点  

所有者: msakamoto-sf    作成日: 2009-09-26 17:00:03
カテゴリ: JavaScript 

IE8/Firefox3/Chrome3で確認。

エラー:

function(){}();

正常:

(function(){})();

何となく書いてしまって正体不明のエラーに悩まされない為にメモ。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-09-26 17:03:37
md5:2555a3af862f6e5fc3ae1c19d28531a1
sha1:160c01a50b405dde6510aad9c1dd204394cf0310

JavaScript/オブジェクトリテラルのプロパティリストの末尾要素の","について  

所有者: msakamoto-sf    作成日: 2009-09-26 15:28:52
カテゴリ: JavaScript 

オブジェクトリテラルのプロパティリストの末尾要素の","というのは、

var o = {
    abc : 123,
    def : 456,
             ^ ここのこと
};

である。

結論から言うと、ECMAの仕様上は末尾要素の","は定義されていない。つまり文法エラーとされても問題ない。
IE6/7/8の場合はエラーとなった。
一方Firefox3/3.5, Chrome3などではエラーにならなかった。

ECMA262, 11.1.5 Object Initialiserより:

ObjectLiteral :
    { }
    { PropertyNameAndValueList }

PropertyNameAndValueList :
    PropertyName : AssignmentExpression
    PropertyNameAndValueList , PropertyName : AssignmentExpression

このように、末尾要素の","は定義されていない。

PHPやPythonなど近年のスクリプト言語の多くが配列やハッシュ形式の末尾の","を許してくれているので、JavaScriptでもついつい残したままにしてしまう。Firebugが便利なので、当初はFirefox上で作っていて、末尾","が残ったままIEで動作確認すると正体不明のエラーに遭遇した。ということでよくよく調べたらIE系は末尾","をまじめにエラーとしていただけの話。

いや、でも、マジで一昨日の私の3時間を返して欲しい。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-09-26 15:51:01
md5:388aa4f88eaeb207d2f1e9e4381c07b3
sha1:d262953f3608fa6d857ca62d794d1a63d3195b3e

日記/2009/09/24/TDDについて偉そうな事書いてしまったけど  

所有者: msakamoto-sf    作成日: 2009-09-24 23:27:22
カテゴリ:

数量的な根拠も何も無いので、単なる印象論と言われてしまえば返す口もない。

日記/2009/09/23/TDDの導入についての一考察

ふと思ったけど、TDDの所を「OOP」に読み替えれば、丁度Javaが流行出す前は同じような話があったのではないだろうか。要するに高い技術力とモチベーションを持った人間が継続して参画しないと、新しい技術は中々浸透しづらいという一般的な話になる。

じゃぁなんでOOPが浸透したかというと、これはOOPというよりはJavaやC++が浸透したので、必然的にOOPも浸透したと言っても良いのじゃないか。ライブラリがVisualC++のMFCであったり、VisualBasicのOOP実装であったり、WindowsのActiveXに浸透しているオブジェクト的な考え方であったりして、それを使って仕事をする為には半ばやむなくOOPを学習せざるを得なかったのではないか。

と言う事はTDDを言語レベルで強制するような言語で滅茶苦茶便利な言語がメジャーになり、キラーアプリなりキラーライブラリなどが整備されていけば、現場でもやむなくTDDを始める事になるのかも知れない。

例えばクラスやメソッドと対になるテストクラスやテストメソッドが存在しないとコンパイルエラーにする。
例えばテストコードによるコードカバレッジが90%以上でないとそのオブジェクトはリンクできない。(無理矢理リンクさせる事も出来るが、大量の警告ログが出力される、とか)
他にもtryにおいてUnreachableなcatchブロックは警告どころかエラーにするとか。
Objectは基本Immutable(変更不可)にするとか。

Noopとかそういう志向なのだろうか。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-09-24 23:47:42
md5:0aa7c2090960361847edd7730d5cbe99
sha1:1d24fe2a539d30dbf3176117c649c57b9b122159