美しいプログラム
2011.11.11
プログラマは自分の書いたコードに誇りを持つべきであると思う。
私の定義では、この誇りとは「美しさ」。
あとから自分で見て「これ以上よくできたコードは他にない」、「この部分の実装は他の誰よりもうまくできている」
と本気で思えることが、本当に美しいプログラムではないかと。
「よくできている」、「うまくできている」の定義は人それぞれ。絶対的な解がないから。
例えば、徹底的にパフォーマンスを追求した実装、再利用性を追求した実装、他の人が読んだ時に分かりやすい可読性を重視した実装などなど。
もちろん、仕様通り動作するというのは最低限満たしていることは条件ですが。
ただ、ここまでこだわって書いていけば、コーディングレベルでのバグというのは発生しないのではないかと最近思う。
言い換えれば、こだわりのないコーディングを行う人が非常に多いが故に発生しているバグが多いと感じる。
バグを出さない開発手法もある。TDDなんかはその一つかと。
じゃあ、仮にTDDすれば100%バグがでないとする。それで本当にいいの?本当にいいものが作れたの?
答えはNoじゃないのかと。
「これ自分が書きました!」
と自信をもって人に見せられるのか、後輩や部下、勉強中のプログラマに見せられるのか、尊敬するプログラマに見せたとき、「やるな!」と思ってもらえるのか。
こういうことを常に自問しながらプログラミングしなければ、ただの流れ作業でしかなく、自分の作ったものに誇りをもてない。
そんなことでは、本当に良いものは作れないんだと気づきました。
私の定義では、この誇りとは「美しさ」。
あとから自分で見て「これ以上よくできたコードは他にない」、「この部分の実装は他の誰よりもうまくできている」
と本気で思えることが、本当に美しいプログラムではないかと。
「よくできている」、「うまくできている」の定義は人それぞれ。絶対的な解がないから。
例えば、徹底的にパフォーマンスを追求した実装、再利用性を追求した実装、他の人が読んだ時に分かりやすい可読性を重視した実装などなど。
もちろん、仕様通り動作するというのは最低限満たしていることは条件ですが。
ただ、ここまでこだわって書いていけば、コーディングレベルでのバグというのは発生しないのではないかと最近思う。
言い換えれば、こだわりのないコーディングを行う人が非常に多いが故に発生しているバグが多いと感じる。
バグを出さない開発手法もある。TDDなんかはその一つかと。
じゃあ、仮にTDDすれば100%バグがでないとする。それで本当にいいの?本当にいいものが作れたの?
答えはNoじゃないのかと。
「これ自分が書きました!」
と自信をもって人に見せられるのか、後輩や部下、勉強中のプログラマに見せられるのか、尊敬するプログラマに見せたとき、「やるな!」と思ってもらえるのか。
こういうことを常に自問しながらプログラミングしなければ、ただの流れ作業でしかなく、自分の作ったものに誇りをもてない。
そんなことでは、本当に良いものは作れないんだと気づきました。
投稿者 : 流郷 俊彦 | 投稿日時 : 2011.11.11 22:04




