省略してはいけない。(VB6)

VB6の話。

VB6はメソッドの引数につけるByVal,ByRefを省略するとByRefでした。

そこで、こんなコード。

(良いサンプルが思いつかなかった・・・)

Private Sub やってはいけない(hoge As String,RecordCount As Integer)
RecordCount =  なんらかを実行して件数を返すらしい(hoge)
End Sub

引数として渡されたQueryを実行し、

RecordCountに実行結果を返しているらしいが、

やるなら、

Private Sub やってはいけない(ByVal hoge As String,ByRef RecordCount As Integer)
RecordCount =  なんらかを実行して件数を返すらしい(hoge)
End Sub

と書いておかないと、

Queryは値渡しで使われるだけ

RecordCountは参照渡しで、やってはいけないサブプロシージャ内でセットされる。

という事が読み取れない。

実際は、参照渡しは、それが回避不可能な時のみ利用するに限るので、

下記のように引数で値を返さないように修正する。

Private Function やってはいけない(ByVal hoge As String)  As Integer
Dim recordCount As Integer
recordCount =  なんらかを実行して件数を返すらしい(hoge)
やってはいけない = recordCount
End Function

値渡し、参照渡しの宣言を省略しないでね。

参照渡しは回避できるなら回避しようね。

ということ。

FacebookTwitterHatenaTumblr共有

適切でないメタファは誤解を助長する

適切でないメタファは有害である。

通常メタファを使う局面は、相手がそのままでは理解できない時だ。

だが、そこで適切ではないメタファを使ってしまうと、相手が間違って理解してしまう。

つまり、誤解させてしまう。

だから、できるだけメタファを使わないで理解して貰えたらそれに越した事は無いし、

メタファを使う時は、慎重に使わないといけない。

#私自身が、解説にメタファをぽんぽん入れるタイプなので、かなり自戒が入ってます。

ツールとの間に信頼関係を結べ

ツールとの間に信頼関係を結べ

ツールをなんとなくで使っていたりしないか?

ツールが作用した結果に自信が持てないのではないか?

そのせいで、ツールにたいして漠然とした不安感を持っていないか?

それは、そのツールのことを知らないからだ。

人間対人間の信頼関係を結ぶときも相手を知る事で信頼できるように、

そのツールを知ることで漠然とした不安感はぬぐえるはずだ。

とりあえず、そのツールが持っている機能のうち、

君が利用する機能についてだけでも、ちゃんと知ってみてはどうか。

疑うのは環境から

昨日と今日で同じプログラムが動いているのに、

今日突然動かなくなった。

そんな時、疑う順番は

昨日と今日の環境の差異からだ。

これをすっとばして、デバッグしたところで多分解決には辿り着けない。

途中でやめたら今までの努力が無駄になる

今まで、一生懸命頑張って来て、

それなりに成果も出始めているという状況で、

その努力をやめてしまうと

これまで積み上げて来た努力が全て水の泡になる。

元の木阿弥である。

どれだけ、問題が噴出していても

頑張って一つ一つ解決し、

管理して来たからなんとかなっている。

ココでへこたれたら、今までなんとかなっていたものが

何とかならなくなる。

その時点で、今までの努力が無価値になる。

だから、ゴールまで頑張るしかないのだという事。

努力をやめてよいのは、ゴールするのを諦めた時のみ。

撤退する時のみ。

今までかけたコストは戻らない

たまに

「折角作った部分を改修するのは、もったいない。」

と言って重要な改善を諦めるという話を聞くが、

過去に既に投資したコストに縛られて、改善できない事の方がよほど勿体ない。

今までにかけたコストはもう戻らない。

過去に投資はできない。

投資は未来にしかできない。

という事。

IsNot演算子

ターゲットは.NET Framework2.0以降のVB.NET

今まで(1.1まで)、

If Not 鼻毛 Is Nothing Then
''鼻毛の処理
End If

と書いていたが、

If 鼻毛 IsNot Nothing Then
''鼻毛の処理
End If

と書けるようになった事で、

Notで一旦思考を止めなくても

流れに沿って読めるようになった事が嬉しい。

でも、未だに1.1で開発をしている事が悲しい。

カテゴリー: .NET