ボーイスカウトルール

5年前に「The Boy Scout Rule」として書いている内容の英語部分を日本語にしたものです。


Clean Code アジャイルソフトウェア達人の技

Clean Code アジャイルソフトウェア達人の技

  • 作者: Robert C. Martin
  • 出版社/メーカー: アスキー・メディアワークス
  • 発売日: 2009/05/28
  • メディア: 大型本

読みやすいコードを書くことの重要性については、拙著(『プログラマー現役続行』)の中でも述べていますが、書籍『Clean Code』には、次の記述があります。
コードを上手く書くだけでは十分ではありません。コードは時間が経過してもクリーンに保たれなければなりません。時間の経過に伴ってコードが腐り、品質が低下するのを誰しも目にしてきています。したがって、我々はこの品質の低下を防ぐために積極的な役割を演じなければなりません。


アメリカのボーイスカウトには、我々の職業に適用できる単純な規則があります。


キャンプ場を、来た時よりも綺麗にして帰ること


コードをチェックアウトした時よりも少しでも綺麗にしてチェックインすれば、コードが腐ってしまうことはありません。綺麗にするのは大げさでなくても良いのです。より良くするために変数名を変更したり、大きすぎる関数を分割したり、if文の連なりを綺麗にしたりするのです。


時間の経過に伴ってコードが本当に良くなっていくプロジェクトに従事することが想像できますか。これ以外のやり方が、プロフェッショナルだと思いますか。継続した改善こそが、プロとしての本質的な部分ではないでしょうか。
ここで述べられているように、些細な改善であっても、常に改善する心がけにより、コードは腐ることなく、時間の経過に伴って良くなっていくことになります。

今日では、テスト駆動開発により、開発しているソフトウェアの機能を確認するためのテストコードが書かれているプロジェクトも多いと思います。そのような開発では、コードの改善による機能のデグレードがないかをテストコードの実行により容易に確認可能であり、このボーイスカウト・ルールが容易に実践できることになります。

また、テストファーストによる開発では、最初にテストコードを作成して、そのテストに合格するように実装してくわけです。そして、すべてのテストに合格したら、実装が終了と思っているエンジニアは多いのではないでしょうか。しかし、そこで実装が終了と思っているようでは、駄目です。

コードがクリーンに書かれているかを見直し、そうでなければクリーンにするためのリファクタリングを行う必要があります。そして、自分で見てもある程度納得できるクリーンなコードになったら、最初の実装が終了となります。誰でも最初からクリーンなコードを書けたりはしません。したがって、テストコードによる動作確認が済んでも実装は終わりではなく、コードをクリーンにする作業を行って実装が終了と考えることは、ソフトウェアエンジニアにとっては重要なことです

この記事へのコメント