IDisposableを実装しながら、アンマネージ リソースの解放をしないフレームワークを初めて見た。
正直何を言っているのか、自分でもわからない。
しかし、今日実装者がまたまた寝言ぶっこいてこっちに飛んできたから突っ込んで聞いたが、
アンマネージリソースの解放をしませんと胸を張って言ってた・・・
あんたの事だよ鳥○。
DBのコネクションを管理するあの腐ったフレームワーク作ったあんたの事だよ。
Transactionを開始して、エラー発生時にRollbackを明示的に書けって?
これは好みの問題になるから、書く書かないについてはここでは突き詰めない。
けど、ほっといたらTransactionのRollbackを保障しないのはちょっと違うだろう?
DbConnectionのCloseメソッドでは保留中のTransactionのRollbackを行うが、
それがうまくいかない場合がある?
まっある場合もあるでしょう。ODBC経由での接続ならありえるかもしれない。
(本当にあるかは知らない。けど鳥○の話だと実際あったらしい・・・プログラムを見る限り
そもそもの組み方の問題の気がするが。)
Rollbackを明示的に行うんじゃなくて、IDisposableを実装しているなら、Transactionがcommitされていない場合は無条件でRollbackをしろよ。
何の為のフレームワークだ?
ってか、何の為のIDisposableの実装だ?
なんだか今の開発はヘルプで入ったのに、延長が入ったらしいが、個人的には
もう抜けたい本当に。
あと、stringの2次元配列にDataTableをぶち込んだ犯人を見つけた・・・
マジで氏ね
最後に、リファクタリングをしようとしたら、動いてるから触るなとのお達しがあったが、
その動いているはずのもののDB更新がおかしいですから・・・
更新かけると最終更新者が居なくなるという摩訶不思議なロジックになってますから。
最終更新者を利用して、一部2重登録とかのチェックしてるはずなのに、消えてなくなりますから最終更新者が。
動いてるっていってるけど、錯覚でまともに動いてないから(´ρ`)
ってか奇跡でなんとなく動いてるだけだから。
こんな現状を知らないお客さんに、ある意味かなり同情する。
0 件のコメント:
コメントを投稿