今日のプログラミング用語
1.スパゲッティコード
スパゲッティのように複雑に絡み合ったプログラム⇒わかりにくい、ということですね。
イヤホンのコードや電源のコードがいつのまにか絡まってしまうように
物事というのは、自然の成り行きに任せておくと勝手に絡み合ってしまうのが常です。
これは、プログラミングにも言えることで
プログラマーはスパゲッティコードにならないように意識を持って書かないといけない、と
自戒の意味を込めて書いておきます。
スパゲッティにして、あとでデバッグや仕様変更時に苦しむのは自分ですよー、と未来の自分に忠告。
(過去の自分にも忠告したい・・・)
備考:30億文字のスパゲッティコード
スパゲッティコードでググったところ、昨日のDNAの話に関連するものを偶然発見。
厳密には文法自体解明され切っていないのだから、スパゲッティかどうかもわからないと思うのですが
まあ、単純な操作の積み重ねで作られる複雑な文字列は、大体スパゲッティでしょうね。
誰かリファクタリングしてあげないと。
2.考古学プログラマ
この発想はちょっと面白いですね。
このような発想は突飛なものではなく
偉大なる先人の作り出したプログラムを「ライブラリ」から探し出して利用するのは
プログラミングでは誰しもやっていることで
.NETなんかでは、簡単な機能ならプログラムを1行も書かずに実現できます。
ただ、自分の理解を超えているプログラムをよくわからないまま流用するのは本当はマナー違反です。
予期せぬエラーが発生したとき、自分で責任が取れないようなことはやってはいけません。
この言葉の誕生元となっている
- 作者: ヴァーナーヴィンジ,Vernor Vinge,中原尚哉
- 出版社/メーカー: 東京創元社
- 発売日: 1995/11
- メディア: 文庫
- クリック: 45回
- この商品を含むブログ (36件) を見る
自分でよくわかってないものを流用するなんてプログラマーの風上にも置けませんよ!
・・・あれ?なんか小生自身の耳が痛いのは気のせいだろうか。
まあ、小生自身のことはさておき
ライブラリにあるプログラムを流用する場合
そのプログラムが多くの人に使われ数々の実践に耐え抜いてきたという実績があり、入力と出力の意味さえわかれば(これすらわからず使ってしまうケースもあります)
そのまま利用しても大丈夫ですが、考古学プログラマが発掘してきたものは当然、そのようなテストを受けてないわけですから
付属しているドキュメントを信頼していきなり本番で使うのではなく
失敗しても大丈夫なように、パイロット環境で徹底的なテストを行うことが大切だといえましょう。
まあ、昨今のIT業界におけるモラルハザードぶりから考えると、理想論と化しつつありますが。
最近は、某マイクロソフトのおかげでエラーなんて出荷後に直せばいいや!という風潮が強まっていますが
上の小説は、そんなIT業界に対する警告の意味が込められているわけですね(違