1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

モジュール変数を参照するのにリードオンリー指定ができないものかね

Posted at

レガシーコードをリファクタリングすることがあるわけです。レガシーなので内部の挙動はよく把握されきっていません。部分的に把握できる特徴をプログラムでわかりやすく表現することが整理の方針となるわけですね。

よく見かけるのが、サブルーチンの引数が100個近い多数で、深いコールツリーの上から下まで多くの変数を連れ回すことです。昔はCOMMONブロックだったのだとしたら一応は改善なのかもしれませんが、サブルーチン毎に引数の順序・有無が微妙に違っていたり、呼び側とサブルーチンで変数名が違っていたりすると、もはやデータフローがひと目ではわからなくなってきます。

先日こんなやりかたをしてみたんですよね。

  • 引数で連れ回されていた変数の定義場所をモジュールに移す
  • 各サブルーチンでは、INTENT(IN) にできるものは引数渡しにして、値を変える変数はモジュールからの参照にする

もうちょっとスマートなやりかたがありそうなものだとは思うんですけどね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?