下請けCOBOLERとして生きていた頃のノウハウ Advent Calendar 2016の20日目ぐらいの記事です。
##初めてCOBOLの読み方について書きます
と、書きましたが、COBOLというよりクソコードの読み方です。
ひどい書き方なんてものはCOBOLだけの話ではなくすべての言語で書くことが出来ると思います。
まぁとにかくCOBOLは庶民が初めて対峙したプログラム言語の1つなのでひどいものになってしまうのは仕方ないと思います。
とはいえ、21世紀になった今でもそれらを読んで保守しなければなりません。
ちなみに自分が管理していたシステムはとんでもないコードで
ざっくりこんな感じです。(ちなみに2010年代につくられたにも関わらず、メイン処理一本に何万行も詰め込んでモジュール分割していないとんでもソースでした!)
if then
数百行
else
数百行
if then
めっちゃながい
サブルーチンへ→もちろんめっちゃながい
else
めっちゃながい
if then
なんかしょり
else
なぜか上と似たようなことをしている(関数化してない)
どこまでがifでどこからがelseかさっぱり分かりません。
変数も(ちなみにCOBOLだと変数ではなく項目と呼びます!)上でしか宣言できなかったり wk1 wkー2 など意味不明な項目で溢れかえってます。
自分は読むときにどうするかというと
エクセルに貼り付けてました。
そしてIF文単位にセルに色を変えたり、グループ化してたたみ込んだり
紙にだいたいの処理を絵にしたりしてました。
紙に書くというのは結構有効でざっくり処理を理解することに役立ちます。
また、意味不明な項目名もこれはこういう用途だとメモを取っておくと良いと思います。
大切なことは、過去のプログラマー達は何か意味があって意味不明なことをしていることです。
過去のプログラマーと対話するとき、大切なことはこの処理はなんの処理でなにをしようとしたのか、こういう風に作るんじゃないかという推測をすることです。
まぁ、こんなスキルがあっても仕方ないので、クソコードを読まされても、自分はましなコードを書くぞって決意をするぐらいで、本当に良いコードはそれを読まなければ分かりません。