※この文章は初心者向けです。
自分について
自分はツール開発をするSESエンジニアをしています。
主にVBAとRPA(WinActor)を使います。
工程は要件定義からリリースまでです。
変数について何を考えたのか
考えた事は変数の使いまわしと量について考えました。
変数は寿命を短く、使いまわさず、限られた範囲のみで有効にするのが一般的かと思います。
これは非常に大事なことだと思います。
なぜ大事なのかについて文章を作成しました。
実際の変数
考え方や経験値の違う人たちが作ったツールを改修してきた経験から、大体は何を意味しているのかわからない名前の変数が津波のように押し寄せるのがベターです。
※日常生活でお互いに何を言っているかわからない事があるくらいの頻度です。
実際の業務
実際の業務では自分が作成する以外にも、他人が作成したツールを改修する事がまぁまぁあります。
実際の変数でお伝えした津波のように押し寄せる変数を理解しながら処理を追うのは無理ではないかと思います。
開発ではなく分析がある程度必要なテストでもツールを理解する必要があります。
その場合もやはり押し寄せる変数に襲われる事になります。
※その理由はドキュメントが壊滅、もしくは存在しない事がある事もまぁまぁあるからです。
VBAの場合
モジュールを作成してプロシージャの中に変数を定義した状態、これがVBAでの最も隔離された変数です。
ただし一つのプロシージャの事だけ考える事はあまりありません。
WinActorの場合
グループ化という機能で、見やすく変数を定義する事が出来ます。
ただし一枚の変数を確認するウィンドウに羅列して表示されます。
そろそろ本題
人生をかけてバルマーピークについて検証しているため、無駄に話が長くなる傾向があります。
なので、そろそろ本題に入ろうと思います。
※今のところ楽しくはなるが性能の向上は無し、長期的観察を要すると思います。
そして早速、自分の結論を羅列します。
※飲みながら羅列したので要否は自分で考えてください。(この考えるという事がそのうち役に立ちます。たぶん。)
①各範囲の外に変数が出ることは無いと明記する。
②各範囲の外に変数が出る時はどの範囲が変数生存範囲なのか明記する。
③変数の名前は意味が分かるようにする。
④使いまわし変数も時には有り。
①について
readmeとか読んでとか設計書の中や外に最重要ドキュメントとして存在する事がありますが、
そこに書いてください。
テスターでも開発者でもそれで安心します。
書いてあるのに外に出てた場合は人のせいにすればいいから。
②について
どこかの範囲の外にも名前はあります。
プロシージャの外はモジュールなど。
ただしモジュールにはたくさんのプロシージャがいます。
ここが肝でその変数はどのプロシージャに関係しているのかが分からないのです。
ローマ字のA-Zの内に関係するのはXYZのみだったみたいなことです。
ちゃんとわかるところに記載する必要があります。
③について
酷いものだと[値]_ファイル名などあります。
※今の案件の話なのですが。
こんな変数名を名付ける人は信用できないので、結局全部調べることになります。
※変数名には明らかに使う範囲が分かり、範囲を超えたら使わないと思える名前を使う事が大事だと思います。
※上記の場合はファイルが存在する限り永遠に疑い続ける必要があります。
④について
これはWinActorの話になるのですが、
WinActorでは複数のExcelファイルでの値受け渡しはRPAの変数を介す必要があります。
つまり値を保持する変数が必要です。
これをしっちゃかめっちゃかの名前を付けた変数で保持するので、
結果的に膨大な変数を理解する必要が出てきます。
※明らかに不要な変数は破棄してる事が分かればいいのですが、そんなうまくいきません。
状況によっては一時ファイル的な変数って結構ありなんじゃないの?って思いました。
本当はしっかり寿命あるのが良いと思うけど。
最終的に言いたい事
始めて投稿したし、プログラマの友達あまりいなし、いろんな話が聞きたいなぁと。