そろそろスノーボードに行きたいと思う今日この頃。
私のスノーボード仲間は皆、SE(システムエンジニア)。
集まって話していると、自然と開発の話題になります。
ある人は、今、とんでもないプログラムを解析中。
1つのソースファイルは数百行でも多い方。
でも、そのファイルは1万行。
人間でいえば、メタボリック症候群です。
でも、表面上はちゃんと動いている。
なぜ、1ファイルの行数を少なくするか。
それには、いくつかのわけがあります。
・シンプルにプログラムを書くと、間違いが少ない
・1つの処理を分割し、構造化することでプログラムを部品化。
組み合わせることで、別の処理系に再利用できる。
・設計書とすり合わせがしやすくなるので、設計とのズレが少なくなる
・読みやすければ、開発メンバー全員が理解できる(相互チェック可能)
などなど。
で、この1万行を機能そのままでシンプルな形にするのがその人の仕事。
まるで、ジェンガ、はたまた将棋崩し。
真ん中をそーっと、、、1本抜くと、、、ばらんばらん。
「この変数使ってないよね。えいっ削除!」→画面真っ白
「この関数はどこからも呼ばれていない。消しちまえ!」→画面フリーズ
そんな日々を送っているそうです。
これは、先月私も体験したこと。
「それ、もしかして・・・日本人以外が作ったプログラムでは?」
「そうだよ、何で分かるの??」
1枚板で、内容が複雑に絡み合ったプログラムは、
昔からザルそば、スパゲティと表現されています。
比較的、天才肌の人や個人で短期集中して仕事するのが好きな人が作った
プログラムに多いです。
そして、日本人でこの手のプログラムを書く「プロ」に会ったことはないのです。
単品で動かすツールやデモ用の
短期利用、使い捨てソフトウェアなら問題ないのですが。
複数で開発するシステムの一部や、
再利用の可能性が高いソースならこれはまずい。
もっとも、最近のオーサリングツールや
UMLのコード自動生成ツールなどはザルそばを生成しないと思いますが。
ところが、日本人の「プロフェッショナル」が作ったソースコードは
まったく別の会社の業務であっても、申し合わせたように
キチンと構造化されています。
まだ歴史の浅いITの世界にも、日本のもの作りの文化は形成されつつあるんですね。