新人の頃は、プログラムのコードを書くのは、既存のプログラムがあった方が簡単と考えていたけれど、それは間違いで、実は新規に作る方がずっと楽なのだ。
既存のソースを改修するということは、既存のプログラムを理解しなくてはならない。
新規なら自分のポリシーでコードを書くことができるで、実はある程度のコーディング能力でコードを書くことができるのだ。
他人の書いたコードを理解するのは結構スキルがいる。
と言っても実際汚いソースコードは存在するため、他人のコードが全然理解できない場合も必ずしもスキルがないとは言えないが。
そんな複雑なソースコードを「スパゲッティプログラム」「スパゲッティコード」と呼ばれたりする。
スパゲティプログラムまたはスパゲティコードとは、プログラムのソースコードがそれを制作したプログラマ以外にとって解読困難である事を表す俗語。名称の由来は、皿に盛られたスパゲッティのようにロジックが絡み合っていることから。
人と時間があれば誰でもプログラムはできる?
そんなソースコードにしないためにコーディング規約というものが存在する。
けれどもそんなコーディング規約は、規約を記述し始めると、書くことが多くなるため、読んで理解することも、守ることも大変になってくるので、風化しがちなのが現実だ。
また、そんな理由から?かプロジェクトによってはコーディング規約がないこともある。
すると既存のソースがあれば、流用してコードの記述を合わせることになる。
たかが200行のファイルが2ファイル程度で、スパゲッティだと連呼しているのを聞いて、コードを書けるけれど、コードを理解するのは出来ない人なんだなと感じた。
しかし、実業務ではコードを理解する方がはるかに多い。
ソースが汚いというのは簡単だ。
では逆に問いたい。
コーディング規約はあるのか?
コーディングポリシーは担当者に伝えているのか?
コーディングの期間はちゃんととられているのか?
ソースレビューはきちんと行われているのか?
コーディング期間がきちんととられていれば、それは綺麗なソースコードがある程度書けるだろう。
といっても人は間違う生き物なので、レビューが大切だ。
バグが出てから、「スパゲッティコードだな」と言われても、「今頃言うなよ」と思う。
レビューもせずに試験工程まできて、そこから修正は相当な稼働がかかる。
反面教師だな。