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