2009-01-01から1年間の記事一覧

独習単体テスト

私は、テストで重要なのはカバレッジでなく、 「こうあるべき」と定義したAssertionであると思っています。 さらに言うと、データ/状態/操作の組み合わせパターンを変えて、 さまざまなAssertionのパターンを定義できる*1人が テストのスキルを持っていると…

非Webブラウザアプリの単体テスト

ここしばらくAndroidアプリと戯れていたのですが、 概念として外せないのがThreadクラスとListenerクラス。 時間のかかる処理を裏で実行しながら「しばらくお待ち下さい」を画面上に表示する時なんかは 別Threadを立て、時間のかかる処理をそちらで実行させ…

Dateオブジェクトの日付指定

Dateオブジェクトは、「1970/01/01 00:00:00」が最小値だと思っていたのですが、 そんなこと無いんですね。java.util.Date#getTime()のJavaDocに Date オブジェクトで表される、1970 年 1 月 1 日 00:00:00 GMT からのミリ秒数を返します。 と記述されている…

Androidアプリの必要性

Androidアプリなんかいらない。 フルブラウザがあるんだからそれ使って Webアプリ見れば良いじゃん、お金を取れるアプリなんて無いよーと思っていました。 ですが、よくよく考えてみると、Androidの画面は狭い。 PC上であればスクロールせずに画面内に収まる…

事業仕分を横目にシステムにかかるコストについて考えてみた

システムに対する評価についてゆうすけさんが書いてました。 本当にそのシステムは止まってはいけないのか (arclamp.jp アークランプ) 止まらないことが目的になってしまうことで,システムに対する適切な評価ができていないと感じることがある。 確かに。多…

良い道具を持っているだけじゃビジネスチャンスに繋げない

仕事以外の時間を使って、Androidアプリを作ってました。 ウチの会社のメールはgmailなのですが、その認証にクライアント証明書が必要でして。 Androidデフォルトブラウザだとクライアント証明書を使ってhttpsアクセスができないようなので じゃー見れるよう…

空気を読みすぎるOracle

Oracleのvarcharカラムに0埋めの数字文字列しか設定されていない、と判っている場合 こんな感じで比較文が書けます。 select count(*) from dual where '000002' = 2 すげぇ、Oracle空気読みすぎ。 ' 000002 ' みたいに、前後に半角SPがあっても大丈夫。 た…

AndroidからSDカードにファイルを書き込む

SDK1.6からアプリからSDカードにファイルを書き込む際はが必要な模様です。 確かにエラーが出ていたのですが OSのpermissionと見間違えてしまいました。

ブラウザの裏の動き

レスポンスで受け取ったhtmlからinputタグのvalueを取り出して 次のリクエストを送信するみたいな ブラウザっぽいことをJavaでごりごり書いておりました。 んなもん、1日本気出せばできるやー、なんて思っていたのですが 3日かかってもできませんでした。何…

HttpCookieおさらい

Webアプリケーションを動作させる際にCookieって奴はとても重要で。 例えば、SessionIDを個々のブラウザで管理することで Serverサイドでクライアント毎のデータを保持させることができるわけです。 最近の一般的なWebアプリケーションの場合は、 Cookieを使…

組織として強制力を持ったQA活動

社内の受託開発のQA担当として行動をしていたときのこと。 レビューのチェックリスト作ったり、プロジェクトの運用フロー作ったり、 第三者レビューとしてレビューに参加してみたりしましたが、 プロジェクト都合を鑑み始めた途端、もろ形骸化してしまいまし…

技術的負債を解剖する

InfoQの記事です。 技術的負債を解剖するまぁ、内製がメインな海外は、ここでいう「技術的負債」って奴はめぐりめぐって 自分たちのところに帰ってくると思いますが。 日本の場合はSIer丸投げなユーザ企業が多くて、 そこのシステム開発は保守しやすさとかは…

ボクは昔、インターフェースを意識しなかった

いいこと書いてます。さすがOO厨。 オブジェクト指向のプログラムに込める「意図」 - 都元ダイスケ IT-PRESS インターフェースがいまいち理解できないのには、コーディングする上で 一連の流れを一人の開発者が行う、ということも 挙げられるんじゃなかろう…

MVCモデル

あるエントリで、 「Skinny Controller, Fat Model」が最良ではない とありました。*1 確かにControllerのユニットテストは 最近のフレームワークを使えば簡単にできますが、 Requestパラメータの記述やSessionにデータを突っ込む処理のように 実際に対象メ…

是日々勉強

システム開発において、マクロな観点で言うと・どのフレームワークを使うかの後に・どのように使うかが待っていて、フレームワークのお作法や、仕様実装に対する容易性がからんできます。素のフレームワークを使ってたのでは面倒なところを共通処理(規定クラ…

ozacc-mail libraryとsun.nio.cs.mapの合わせ技

①や㈱のような機種依存文字もメールとして見られるようにする為には、 UTF-8でメールを送るか、 新しめのJavaであれば、 -Dsun.nio.cs.map=x-windows-iso2022jp/ISO-2022-JP をvmの引数にして、メールヘッダのcharsetが「ISO-2022-JP」であっても表示するこ…

テストがないコードはレガシーコード

やっと読み終えました。 レガシーコード改善ガイド (Object Oriented SELECTION)作者: マイケル・C・フェザーズ,ウルシステムズ株式会社,平澤章,越智典子,稲葉信之,田村友彦,小堀真義出版社/メーカー: 翔泳社発売日: 2009/07/14メディア: 大型本購入: 40人 …

データの削除は非推奨

InfoQの記事です。 データの削除は非推奨 論理削除の状態を持つと、where句に書き忘れたり、 基本的に表示しないが、ある情報を表示する場合は論理削除でも表示するとか 取り決めが面倒だったりします。 この記事のなかでは論理削除フラグなんてものではなく…

ブラウザの「戻る」ボタン対策

HttpSessionを使うWebアプリケーションは 大体これを意識しないといけません。 基本的に 「押しちゃ駄目ですよ」と言う ブラウザのキャッシュを消す ことでお茶を濁してきました*1 他にもトークンでがんばるとか*2ありますが、こういうことのガイドラインと…

どこで表示用のデータを作るか?

例えば、検索結果の一覧を表示するデータの表示において ログインユーザの権限によって表示するデータを変える という仕様があった場合、 JSP側で表示制御 標準タグライブラリを駆使する カスタムタグを作成 Servlet側で表示制御 Servlet側で表示用Beanを詰…

組織に属するということ

表示できません - Yahoo!ニュース 新潟で田中角栄は神みたいな人でした。 まぁ、新幹線だとか高速道路だとか作ってくれた印象がありますからね。 その娘さんである真紀子さんが民主党へ・・・。 地元の反応はどうなんでしょう? まぁ、その辺は有権者の人た…

VMwareがSpringSourceを買収

おー。 ニュース - VMwareがSpringSourceを約400億円で買収へ,「統合クラウド基盤を開発」:ITpro PaaSってことは、force.comみたいなものってことですね。 Javaで書ければ、Apexに難色を示していた人たちは飛びつくんじゃないかな、と思います。 いくらイ…

場数を踏んだもの勝ち?

要求を抽出したり仕様を確定するのにステークホルダーとのやり取りは 欠かせませんが、それを行うには ファシリテーションスキルや対人関係スキルが必要になってきます。 で、最終的にシステムを実現する為には実装可能かを判断するだけのスキルが無ければな…

書籍『Redmine -もっと手軽にプロジェクト管理!』をプレゼント!

プレゼントという言葉に弱いので応募します。 http://blog.sonicgarden.jp/mt/mt-tb.cgi/97 こういうツールって運用し続けることが大事だと思っていて、 Tracじゃなきゃ、とかMantisマンセーとかRedmineだろJKとかそういう会話は不毛だと思ってます。 でも、…

より良いユニットテストためのガイドライン

InfoQの記事です。 より良いユニットテストためのガイドライン その中の記述 テストもコードであることには変わりないのだから、多少は愛情を注げ については、確かにそうだよなぁ、と思います。テストクラスがあれば、実クラスの保守性も上がりますが テス…

リファクタリングの勘所と実装の前にすること

リファクタリング前提で、頭の中で整理もせずに実装することに抵抗があります。 行き当たりばったりな感じで、テストクラスも書かず、 結局後で見直したら駄目なので全部作り直しという行為が リファクタリングという言葉に隠されている気がしてなりません。…

開発スピードを上げる為に

日経コンピュータの記事に興味深いエントリーが。 やっぱり出てきましたね、「自動生成」。 楽して自分の望むものができれば言うことないのですが、 ソースコードやテーブル定義の自動生成ができたとして、 そのツールの出来が良くても「その振る舞いが正し…

Matcherの使いどころ

非常に興味深いエントリーです。 hamcrestのMatcherメモ - 都元ダイスケ IT-PRESS assertThatいいですよねー。 私も虜。JUnit4が使える開発ではassertEqual使わなくなりました。ただ個人的には、「テスト」という意味でMatcherは 「is」くらいしか使わないほ…

VMWare ESXi4にWindows Server 2008(64bit)の環境を添えて

Windows Server 2008ならHyper-Vじゃねぇの?という突っ込みはさておき。 ちとはまったので備忘録的に。 Intel VTがONになっていないと、インストールにすら到達できませんでした。*1 BIOSの設定でONにする必要がありました。 エラーメッセージがわかりにく…

jQueryで作る Ajaxアプリケーション

食わず嫌いも大人気ないので、Ajaxの勉強でもしようと。 jQueryという奴がクロスブラウザ対応もやってて、 JavaScript使った開発でも恐れることないっすよ、と言われたので。 ググッた方が早いと思うけど本を買ってみました。jQueryで作る Ajaxアプリケーシ…