Programming

そうなんですよ

実はあまりオブジェクト指向は好きではないんですね。別に嫌いでもなく、何がオブジェクト指向なのかというのがよくわからないというのがあります。 http://www.ogis-ri.co.jp/otc/hiroba/others/OORing/interview34.html おお、自分と同じ考え発見。 周りが…

JavaScriptって結構...

これまでJavaScriptはJSP内にちょこっとfunctionを埋め込む程度にしか使っていなかったのだがこのページ http://www.odetocode.com/Articles/473.aspx を見るとなんか面白そう。

Webアプリ VS オブジェクト指向

これまでリッチクライアントべったりだった私ですが、最近ASP.NET勉強中。 で画面間のオブジェクトの受け渡しにえらい苦戦。 例えば画面A→画面Bていう遷移を考える。 でこのとき画面Aで使用したオブジェクト(m_object)を画面Bで参照するとする。 リッチクラ…

DIコンテナ

うわさのDIコンテナ。まったくメリットがわからん。逆に複雑な設定ファイルというデメリットが気になってしょうがない。 google:DIコンテナ メリット 依存関係がどうのこうの言っているが、それはinterfaceプログラミングをするかどうかであってDIコンテナを…

(僕の)単体テストの真実

アプリのリリース時期からみた単体テストの有効性は firstリリース前 →非常に有効。 アプリが実行できるまでに完成していない場合が多く、単体テストでのテストが有効。 またリリース前は後に比べると仕様変更が少なく、単体テストが作成しやすい。 firstリ…

その関数は本当に使用されていない?

他人のコードに機能追加をしていた時のこと。 まず機能追加の前にソースコードの理解もかねてリファクタリングしていたわけだ。で使用されてなさそうな関数があったので削除を検討した。 まずは関数をprivate修飾子に変更してコンパイル...うんOK。じゃあ削…

Genericsメモ

型パラメータの制約 派生制約 class Base{} class Derived where T : Base{} interface制約 interface IBase1{} interface IBase2{} class Derived where T : IBase1, IBase2{} 値型制約 class Hoge where T : struct{} 参照型制約 class Hoge where T : cla…

動的な型生成

C++で型が作成されるのはコンパイル時だったのだが、C#やJavaでは実行時に型(クラス)が作成可能だ。 おおっ、ちょっと感動。これは何か新しいことができそうだ C#の場合・・・System.Reflection.Emit.TypeBuilder Javaの場合・・・java.lang.reflect.Proxy…

DB設計

[DB] DB(データベース)とはただのデータ保管場所である。 なにも難しいことはない。 でDBを使用するメリットは トランザクション処理 SQLというインターフェース(文字列ベース)を使用してすべての環境から利用可能 ぐらいだろうか。 [DB設計] ではDB設計…

バグのないプログラムを目指しなさい

プログラマである以上、バグのないプログラムを目指すべきだと思う。しかしそうでない人が多い。彼らの言い訳はこうだ。 テストはテスターの仕事だから... テスト期間は別途あるので、そのときしっかりテストすれば良い 時間がないから... そしてコンパイル…

beforefieldinitフラグ

シングルトンクラスでバグが出た。リリース時のみ発生するバグだ。たかがシングルトンと思って油断していた。...というわけでstatic変数の初期化について考察。 class Test{ static object o = new object(); } この場合、beforefieldinitフラグがONになり、…

プログレスバー

C++のときから考えていたのだが、プログレスバーというのは結構厄介だ。完璧を目指すならば 実行すべき重たい処理は別スレッドで実行する メインスレッドではプログレスバーを出して待機(Sleep?)しておく 別スレッドの重たい処理からメインスレッドのプログ…

EXCEL

VisualStudio2005からEXCELを使用する機会があったのだがえらい苦労した。 苦労した原因は実際に起動されるエクセルがそれぞれのローカルマシンにinstallされたEXCELということだ。そしてバージョンは悲しいことにEXCEL97,2000,2002,2003と混在していた。 そ…

リフレクションを使ったインデクサの呼び出し

public class Hoge { public string this[int i] { get { return (i * 2).ToString(); } } } class Program { static void Main(string args) { object o = new Hoge(); object result = o.GetType().InvokeMember("Item", BindingFlags.GetProperty, null, …

ClickOnce

ClickOnceでアプリの配布テストをしていてはまったので書いておく。 ユーザー側のIEのセキュリティ設定。ファイルのダウンロード許可、ActiveXの有効化など。これをしておかないと空のダイアログが登場したりする。意味不明だ。 .NETフレームワーク内でIEの…

??

まず次のJavaコードを見てほしい。 String str = GetString() ; if( str == null ) { str = "" ; } ... このコードは文字列を取得した後にnullチェックを行っている。 Javaで堅牢なコードを書こうとすると、すべてのオブジェクトに対してnullチェックが必要…

DataGridViewのソート

DataGridViewのソートは実はstable_sortではないっ! ということでstable_sortにしてみた。 C#(というかVS2005)のすばらしいところはイベントを駆使することによって あらゆる動作を自由自在にカスタマイズ可能な点だ。 まあ、あらゆるは言い過ぎだがかなり…

structのパフォーマンス

マイクロソフトのページにclassとstructのパフォーマンスに関する記事が載っていた。 http://www.microsoft.com/japan/msdn/net/general/dotnetperftips.aspx (※ValueType を使った設計のとこね) で、肝心の速度を測ってみた。 structclass debugVS起動 5821…

public T this[int index] { get; set; } 上記はListの定義情報。 むっ、戻り値がTになってる。 ということは List list = .....; list[0].X = 0; // コンパイルエラー // list[0]で取得するのが一時オブジェクトであるため やっぱりね。

ガベージコレクタの弊害

C++ではオブジェクトの寿命を完全にコントロールできる。そのため必ず行わなければならない処理はデストラクタで行うというテクニックが有効だった。ところがC#ではガベージコレクタが導入されたためオブジェクトの寿命がコントロールできなくなった。 つま…

プログラミングとはなんぞや?

現在のプロジェクトでは仕様書、議事録等のドキュメントをサーバに置いているのだがここがグチャグチャだ。これは私の知りうるプロジェクトすべてに共通しているように思う。そしていつも私はこのことに腹を立てている。最初のうちはこっそりと整理整頓して…

VisualStudio情報

C#での開発が始まりそうな感じ。ProfessionalEdition+SourceSafeを買ってもらえそう。 ということでVS情報。 VisualStudio2005機能比較 http://www.microsoft.com/japan/msdn/vstudio/products/compare/default.aspx ExpressEditionに不足しているのは MSDN…

暇です...part4(最終回)

ついに今週で暇な状況も終わり。来週から新規案件が始まる。 iText 生産管理システム、帳票システムなどシステムでは多くの場合、Word,Excel,PDFといったファイルとの連携が必要となる。例えばJavaで開発しているなら Word,Excel→Jakarta POI PDF→iText とい…

暇です...part2

引き続き遊んだことの紹介 Maven2 Maven2はビルドツールで複雑な設定ファイルを用意しておけば、モジュールの作成はもちろんヘルプサイトの作成まで行ってくれるという便利ツール。 マシンの入れ替えに伴い、こいつを入れなおしたのだがトラブル発生。サイト…

暇です...part1

最近仕事が暇。一日中、興味の赴くままに遊んでいる。その遊びを紹介しよう。 WTP 最近マシンの入れ替えがありスペックが向上したのでWTPを入れてみた(というかAll-In-One Eclipseで何でもかんでもinstallしただけなのだが)。 でCVSよりプロジェクトを落とし…

泥沼JSP

最近JSPに苦戦中。非常にデバッグしづらい。 なんせすべてが実行時エラーで、しかもエラーもわかりづらい。 どれだけ最新の開発環境を使おうともJSPの泥臭さがすべてを台無しにしてしまう。 強烈な型付けによるコンパイルエラー吐きまくりのC++がなつかしい。…