7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

下請け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文単位にセルに色を変えたり、グループ化してたたみ込んだり
紙にだいたいの処理を絵にしたりしてました。

紙に書くというのは結構有効でざっくり処理を理解することに役立ちます。
また、意味不明な項目名もこれはこういう用途だとメモを取っておくと良いと思います。

大切なことは、過去のプログラマー達は何か意味があって意味不明なことをしていることです。

過去のプログラマーと対話するとき、大切なことはこの処理はなんの処理でなにをしようとしたのか、こういう風に作るんじゃないかという推測をすることです。

まぁ、こんなスキルがあっても仕方ないので、クソコードを読まされても、自分はましなコードを書くぞって決意をするぐらいで、本当に良いコードはそれを読まなければ分かりません。

7
3
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
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?