佐藤匡剛 技術評論社 ISBN4-7741-2950-X 2006/12/25 定価2480円(税別)レビューの題材にはしないかもしれないけど買ってきた本。
「オープンデザインのすすめ」という副題が付いていて、Jakarta, JUnit, Struts, Eclipseといった、オープンソースソフトウェアのソースコードを読み、設計レベルのノウハウを吸収しようという本。そういえば『Code Reading オープンソースから学ぶソフトウェア開発技法』という本があったなあと思って見たら、まさしくその流れを汲む本だという説明が前書きにありました。
近年のオープンソースソフトウェアの目覚ましい発展は、私たちに良質なプログラムを「読む」環境を用意してくれました。
やれやれ。私と「オープンソース」の出逢いは、つまり×○○PSのことですが
(伏字です伏字)、これはとりわけ不幸な組み合わせなんでしょうなあ。
もともとソフトウェアのソースコードというのは人に見せるためのものではないわけで、コンピュータに見せて通じさせるだけでも四苦八苦しなきゃいけない状況で、他人に見せて通じるようなソースコードを書ける人はごく一握りです。
保守のため共同作業のためにソースコードはわかりやすく書かねばならないというお題目はあるけど、現実にそういう努力がなされているかというとごく限られた範囲に違いない。そういうことを特に強く意識しているごく一部の人がやっているだけ、あるいは、字面上のコーディング規則にみなが形式的に従っているだけ、具体的に調査したわけじゃないけどまず間違いないです。
私は編集者として、他人に見せてわからせるためのソースコードを書くことについては人並み以上の経験と、たぶんノウハウも持っています。まあそれはしょせんサンプルに過ぎないプログラムだからできる話だというのはわかっているし、プログラマとして働いているときには・実用目的でプログラムを書くときにはそんなことやってられないというのも経験してわかっていますけれども、けれどもなあ、やっぱり編集者的な目で見てしまうわけですよ。
字面の汚らしさ、安易な名前のつけかた、説明になっていないコメント、いきあたりばったりな順序、ねじくれた処理方法、etc, etc... なんだこりゃ、こんなんダメ、書き直し、コンパイラが許しても私が許さん!……と、本に載せるプログラムだったらそういうことになります。
オープンソースというからには他人に見せることも前提にあるわけで、本に載せるサンプルプログラムよりは緩いとはいえ、動けばそれでいいとは言えないはずです。少なくとも、こんなソースコードを他人に見せて偉そうな顔するな、恥ずかしいと思え……と、編集者は思うわけです。
ソースコードを読むノウハウが明文化され蓄積されることで、より多くのプログラマが読解に取り組める素地が生まれることでしょう。
……いやそりゃ違うがね、「他人に読ませることを意識してソースコードを書く実際的なノウハウ」が本質的に必要なものであって、読むノウハウってのはそれが確立され普及するまでの対症療法に過ぎないでしょうが。
ま、そんな目でしばらく読んでみて、手ごろにまとまりそうならレビューを書くというつもりです。