一時期、別の作業をしており、元々の作業に戻ったときに、自分のソースコードを確認していると、なぜこのようなわかりにくかったり、不要なソースコードがあるのだろうと思いました。
そのソースコードを書いているときにも、どうすればいいかは考えて書いていましたが、やはり少し時間が経ってから見てみると、色々とわかることがあるなと思います。
どうしてもソースコードを書いているときには、その作業に集中してしまうので、周りが見えなくなるような感じになってしまうと思います。
そうならないためにも、ソースコードを書いているときに、第3者の視点で確認すること・1~2日程度経ってから見直す必要があると思います。
テストコードがあったので、修正したら真っ赤になり、どこがおかしいかがすぐにわかるので、ユニットテスティングツールは必要であると思います。
前も言いましたが、テストコードがないものはリファクタリングと言わず、破壊濃いです。
そのソースコードを書いているときにも、どうすればいいかは考えて書いていましたが、やはり少し時間が経ってから見てみると、色々とわかることがあるなと思います。
どうしてもソースコードを書いているときには、その作業に集中してしまうので、周りが見えなくなるような感じになってしまうと思います。
そうならないためにも、ソースコードを書いているときに、第3者の視点で確認すること・1~2日程度経ってから見直す必要があると思います。
テストコードがあったので、修正したら真っ赤になり、どこがおかしいかがすぐにわかるので、ユニットテスティングツールは必要であると思います。
前も言いましたが、テストコードがないものはリファクタリングと言わず、破壊濃いです。
人が会社を辞めようと思うときや辞めるときはどういった理由があるだろうか?
人それぞれあると思います。
辞めるときには、解雇、自己都合といった2種類があります。中でも自己都合の時は人それぞれであると思います。
人間関係、今の会社に魅力がなくなった、納得がいかないことがある等があります。
私が思うのは、納得がいかないことがあるが根本の原因ではないかと思います。多少、人間関係が悪くても、納得がいくことができれば、ある程度までは我慢できるし、魅力がなくなったのも同様に考えます。
やはり一番は「納得がいかない」ではないかと思います。
ただその前に自分自身を振りかえり、直すべき点がないかを考えなくてはいけないと思います。
人それぞれあると思います。
辞めるときには、解雇、自己都合といった2種類があります。中でも自己都合の時は人それぞれであると思います。
人間関係、今の会社に魅力がなくなった、納得がいかないことがある等があります。
私が思うのは、納得がいかないことがあるが根本の原因ではないかと思います。多少、人間関係が悪くても、納得がいくことができれば、ある程度までは我慢できるし、魅力がなくなったのも同様に考えます。
やはり一番は「納得がいかない」ではないかと思います。
ただその前に自分自身を振りかえり、直すべき点がないかを考えなくてはいけないと思います。
他の人が書いたソースコードで、あるバグがあり、調査していると、あるメソッドが正常な値を返さないということがわかりました。
まずは、テストコードを書いて、正常な値を返すかどうかを調べていると、やはりテストコード上でも正常な値を返さないことがわかりました。
原因を調べてみると、あるメソッドの中で、ListAとListBがあり、本来は、ListBへAddしなくてはならない箇所をListAにAddしているので、正常な値が返されないことがわかりました。
正直、このことをテストコードで記述していれば、本来は防げたはずのバグというのも微妙ですが、バグです。
本来は、その部分のテストコードを書いてあれば防げたことです。
やはり、どこまでテストコードを書くべきかといった議論はありますが、テストのことをわかっていれば、防げたのではないかと思います。
プログラミングをする上で、テストのスキルというのは非常に重要だなと思いました。
まずは、テストコードを書いて、正常な値を返すかどうかを調べていると、やはりテストコード上でも正常な値を返さないことがわかりました。
原因を調べてみると、あるメソッドの中で、ListAとListBがあり、本来は、ListBへAddしなくてはならない箇所をListAにAddしているので、正常な値が返されないことがわかりました。
正直、このことをテストコードで記述していれば、本来は防げたはずのバグというのも微妙ですが、バグです。
本来は、その部分のテストコードを書いてあれば防げたことです。
やはり、どこまでテストコードを書くべきかといった議論はありますが、テストのことをわかっていれば、防げたのではないかと思います。
プログラミングをする上で、テストのスキルというのは非常に重要だなと思いました。
OutOfMemoryExceptionの原因がわかりました。
DataGridViewを継承して作成している外部のライブラリのバグで、ScrollBarsの設定が、ssBothの時に、外部のライブラリのグリッドをひとつの画面で表示していて、縦横のスクロールバーが非表示の時に、別の画面で、同じように外部のライブラリのグリッドを使用すると、OutOfMemoryExceptionが発生してしまうと言うことです。
これは、外部ライブラリにおいて、DataGridViewのスクロールバーを消して、独自で作成しているスクロールバーを追加しています。その処理が悪くて、発生していました。
デバッグをしていて、UserControlのDockをFillに設定していると必ず落ちるので、正直わからないなと思っていましたが、思いがけないところで発生していました。
今回は、原因がわかったのでよかったと思いますが、もう少し根が深いような問題だったら、正直もっと時間がかかったと思います。
DataGridViewを継承して作成している外部のライブラリのバグで、ScrollBarsの設定が、ssBothの時に、外部のライブラリのグリッドをひとつの画面で表示していて、縦横のスクロールバーが非表示の時に、別の画面で、同じように外部のライブラリのグリッドを使用すると、OutOfMemoryExceptionが発生してしまうと言うことです。
これは、外部ライブラリにおいて、DataGridViewのスクロールバーを消して、独自で作成しているスクロールバーを追加しています。その処理が悪くて、発生していました。
デバッグをしていて、UserControlのDockをFillに設定していると必ず落ちるので、正直わからないなと思っていましたが、思いがけないところで発生していました。
今回は、原因がわかったのでよかったと思いますが、もう少し根が深いような問題だったら、正直もっと時間がかかったと思います。
今日、C#でプログラミングをしていると、OutOfMemoryExceptionが発生しました。
OutOfMemoryExceptionってなんだと検索してみると、ヒープに使えるメモリが足りなくなっているため、この例外がスローされていることがわかりました。
よくあるのが、Staticに大量のデータを保持していると、GCの対象から外れるので、この現象が発生します。
Javaなんかだとよくあるようで、JavaVMのヒープ領域の設定を変更すればうまくいくようですが、C#の場合にはできるのだろうかと、現在調べているところです。
GCの対象外になっているものを一つ一つ調べなくてはならないので、結構時間がかかりそうです。
OutOfMemoryExceptionってなんだと検索してみると、ヒープに使えるメモリが足りなくなっているため、この例外がスローされていることがわかりました。
よくあるのが、Staticに大量のデータを保持していると、GCの対象から外れるので、この現象が発生します。
Javaなんかだとよくあるようで、JavaVMのヒープ領域の設定を変更すればうまくいくようですが、C#の場合にはできるのだろうかと、現在調べているところです。
GCの対象外になっているものを一つ一つ調べなくてはならないので、結構時間がかかりそうです。
先日、静岡市にあるパルシェの食品館がリニューアルあるされたということで、静岡県内のテレビでは、その特集が組まれておりました。
その中で、数年前まで販売しており、売れなくなったので、発売中止になっていた「のっぽパン」が再度発売されるということで、各社放送していました。
本当は、今日は野球がある予定でしたが、雨天のため中止になったので、家族でパルシェの食品館に行ってみようということになり、どうせなら「のっぽパン」を買いに行こうということになりました。
お昼ころにパルシェに到着して、真っ先にのっぽパン売り場に行きました。そしたら、どうも人気があるらしく、行列ができており、「もしかしたら買えないかも知れませんが、並びますか?」と聞かれ、とりあえず並んでみました。
なんと運がよくて、ゲットすることができました。まだ食べていないので、味がどうかはわかりません。
明日の朝の食べてまた買いにいくかどうかを決めようと思います。
どうも販売は、時間帯によって、何本と数量を決めているようですので、遅く到着しても、並べばゲットできそうです。何度かその近辺を通ったら、行列ができていましたので、並ぶことが苦でなければいいと思います。
その中で、数年前まで販売しており、売れなくなったので、発売中止になっていた「のっぽパン」が再度発売されるということで、各社放送していました。
本当は、今日は野球がある予定でしたが、雨天のため中止になったので、家族でパルシェの食品館に行ってみようということになり、どうせなら「のっぽパン」を買いに行こうということになりました。
お昼ころにパルシェに到着して、真っ先にのっぽパン売り場に行きました。そしたら、どうも人気があるらしく、行列ができており、「もしかしたら買えないかも知れませんが、並びますか?」と聞かれ、とりあえず並んでみました。
なんと運がよくて、ゲットすることができました。まだ食べていないので、味がどうかはわかりません。
明日の朝の食べてまた買いにいくかどうかを決めようと思います。
どうも販売は、時間帯によって、何本と数量を決めているようですので、遅く到着しても、並べばゲットできそうです。何度かその近辺を通ったら、行列ができていましたので、並ぶことが苦でなければいいと思います。
先日から、我が家のパソコンの調子が悪く、WORDで文書を作成していると、ブルースクリーンになって落ちてしまいます。
最初は、インテル(R) マトリックスストレージコンソールの実行時、CPU利用率が高くなる問題があったため、落ちているのだと思い、最新のドライバをダウンロードしてきました。
前よりは、よくなりましたが、それでも時々落ちてしまいます。
最近、行ったことは、プリンタが壊れてしまったので、プリンタドライバを入れたくらいです。
WORDやEXCELはプリンタドライバが正常なものがインストールされていないと、おかしな動作をします。
WORDやEXCELは、用紙サイズを見たり、印刷イメージのまま入力を行うことがあるので、仕様上致し方ないことです。
今は通常使うプリンタを今回購入したものではないものにして試しているところです。
これで大丈夫ならプリンタドライバが悪いということになります。
一つ一つ原因を確かめながら、作業をするのは本当にプログラマという職業についたからこそできることだなと改めて、自分は幸せだなと思います。
最初は、インテル(R) マトリックスストレージコンソールの実行時、CPU利用率が高くなる問題があったため、落ちているのだと思い、最新のドライバをダウンロードしてきました。
前よりは、よくなりましたが、それでも時々落ちてしまいます。
最近、行ったことは、プリンタが壊れてしまったので、プリンタドライバを入れたくらいです。
WORDやEXCELはプリンタドライバが正常なものがインストールされていないと、おかしな動作をします。
WORDやEXCELは、用紙サイズを見たり、印刷イメージのまま入力を行うことがあるので、仕様上致し方ないことです。
今は通常使うプリンタを今回購入したものではないものにして試しているところです。
これで大丈夫ならプリンタドライバが悪いということになります。
一つ一つ原因を確かめながら、作業をするのは本当にプログラマという職業についたからこそできることだなと改めて、自分は幸せだなと思います。