関数の引数チェックにassertionを使う
プログラムをどう完璧に作り上げても防止できないエラーは例外と呼び、バグが無ければ発生しないエラーとは区別します。前者は防ぎようが無いので、言語の例外機能を使ってエラー判定と発生時の処理を例外ケースとして作りますね。後者は … 続きを読む 関数の引数チェックにassertionを使う
プログラムをどう完璧に作り上げても防止できないエラーは例外と呼び、バグが無ければ発生しないエラーとは区別します。前者は防ぎようが無いので、言語の例外機能を使ってエラー判定と発生時の処理を例外ケースとして作りますね。後者は … 続きを読む 関数の引数チェックにassertionを使う
ごく最近出くわして嫌な気分になった、C/C++のコードパターン例を一つ紹介します(MFCを使ったのWindows用GUIプログラムです)。
BOOL CMainWindow::AskUserAboutHoge() {
CHogeDialog* dlg = new CHogeDialog( this );
if( dlg->DoModal() == FALSE ) {
delete dlg;
return FALSE;
}
delete dlg;
return TRUE;
}
このコード、オカシイですよね? 🙁
AppleのiPhoneでGmailを使う場合、色々な方法でセットアップすることができます。そこで、次に挙げる2つの観点でいくつかの方法を比較してみました。
私なりの結論は、Googleが提供しているiOS向け「Gmail」アプリをメインで使用しつつ、標準の「メール」アプリで1時間おきにメールを受信する構成がベストとなりました。以下、私が調べて分かったことなどを記しておきます。
なお技術的には、ここでの「iPhone」は「iOS 6」と読み替えるとより正確です。
Java 7がリリースされたようですね。ラムダ式が先送りになったので、個人的に興味を持つようなエンハンス内容は今回は無いですね…むしろJava FX 2.0のリリースが気になる。 SourceForge.JP ̵ … 続きを読む Java 7とラムダ式
ソフトウェアは設計上の階層構造を持つことが多く、ほぼ間違いなく最上位をアプリ層(そのアプリ固有の処理)とした複数の階層を重ねた形になっています。ごく単純なアプリの場合は最上位のアプリ層のみが存在すると解釈すれば、やはり階層構造です。このとき、特に最初が単純な一階層のアプリだったものに機能を追加していく場合、ある程度の規模を越えると階層構造を組まないと管理不可能になっていきます。本日はこの階層構造と「丸投げ」について思うことを書きます。
続きを読む “丸投げ”
久しぶりのハッキングメモです。タイトル通りの内容で.NET FrameworkもといWindows.Formsフレームワークの仕様を掘り下げた記録です。
続きを読む “備忘録: マウスクリック関連イベントの流れ”
Windows Phone Developer Toolsのベータ版を試してみました。一番の目的は、Windows Phone 7がどんな感覚のOSになるのかをエミュレータで知った気分になることです 🙂 まずはWindo … 続きを読む Windows Phone Developer Tools(β版)を試してみました
jayというパーサジェネレータがあります。今日までずっと、これはJavaで書かれたものだと思い込んでいました。が、Cで書かれているんですね。この思い込みのせいで時間を無駄してしまいました…。 以前調べたときには「yacc … 続きを読む jayはCで書かれている
今日、SpartというC#のライブラリを試してみました。 Spartはパーサジェネレータの一種で、元々はC++のboostライブラリに含まれているSpiritというライブラリをC#に移植したモノです。このライブラリで面白 … 続きを読む Spartを試してみました
InfoQ – Visual StudioはItaniumのサポートを中断する Visual Studio 2010をもって、Itaniumプロセッサのサポートが終わるそうです。未だかつて一度たりともItan … 続きを読む VisualStudio、Itaniumのサポートを停止