規矩作法 守り尽くして 破るとも 離るるとても もとを忘るな千利休
人気blog「分裂勘違い君劇場」の記事「中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント」という記事が注目エントリになっています。ということで、ひさびさにコメントがてら投稿したいと思います。
あげられているのは、次の三つ。
- 「変数のスコープは狭いほど良い」と妄信する
- 「同じロジックのコードを2度以上書くな」と妄信する
- 「プログラミング言語を極めるのが大切」と妄信する
但し、あくまでこれは「基本」であるということを忘れてはいけませんね。それを忘れて妄信する人はたしかに多いです。そういう人の中では、手段と目的が入れ替わっています。「手段」を妄信するあまり、いつの間にか「目的」の方が「手段」を正当化するための「手段」になっています。まさに本末転倒です。
さて、この手の話でよく引用されるのが「守破離」とう言葉。茶道や武道で用いられる上達に至る経緯を表した言葉です。「守」は、師についてその流儀を習い、その流儀を守って一般的には、「守」の段階ではまず型に従うことに徹して技を磨き、「破」ではその型を破ることで自分の型を見出し、「離」の段階で、元の型から離れ独自の境地に達する。 本質を端的に表した言葉ですが、これを実践するのはなかなか難しい。特に、ステップ移行のタイミング。早ければ独りよがりになり、遅すぎればいつまでも進歩しない。そうならないためには、自分の得意分野をひとつは持ってそれを極めつつ、視野を広くもって周りにも目を向ける。局所最適を防ぐにはほどよいノイズがあるくらいが調度よいものです。
【関連書籍】
・プログラミング作法 Brian Kernighan Rob Pike
・チェンジ・ザ・ルール! 三本木 亮
・組込み現場の「C」プログラミング 標準コーディングガイドライン 福田 晃
・改訂版 組込みソフトウェア開発向けコーディング作法ガイド[C言語] (SEC BOOKS)
・武士道 (岩波文庫) 矢内原 忠雄
【関連記事】
・過学習と局所解
・このバグ直しますか? - 原因療法と対症療法
・ルールを破る時のルール
【関連リンク】
・ソフトウェア開発の守・破・離










