「ソースコードの質」と「可読性」について、議論しよう
本音が語れるエンジニア参加型メディア「@IT自分戦略研究所 エンジニアライフ」。日々、ITエンジニアの「生の声」を公開している。
ここでは、編集部の独断と偏愛によって選んだコラムをテーマ別に紹介する。今回のテーマは「質のよいソースコード」について。
「質のよいコード」とはどのようなものか、これは多くのプログラマが議論してきている話題だ。「質のよいコードは可読性が高い」と主張するコラムを筆頭に、「ソースコードの質」について語るコラムニストの意見を見ていこう。
プログラマよ、これからの「可読性」について議論しよう
まずは、『気難しいプログラマ』の玄米茶氏による、「コードの質の向上」に関する意見を紹介しよう。
技術の発達によって、これからはソフトウェアの寿命が延びていく。今後は、よりソースコードの「保守性」と「拡張性」が重要になってくると、玄米茶氏は語る。
これまでは、プログラムは正しく動けばよかった。重視されるのはきちんと動くかどうかであり、それがどんなにひどいスパゲッティコードであろうと美しいコードであろうと、問題にはならない。「非常に洗練されたコードは、バグのないプログラムに負ける」と、玄米茶氏は指摘する。
だが、複数のプログラマが1つのコードを修正する機会が増えると、ソースコードの質によって保守性に雲泥の差が出てくる。玄米茶氏は、「いまこそ、コードの質の向上について議論すべきだ」と主張する。
われわれは実行モジュールを作っているのではない。ソースコードを作っているのだ。
プログラマ自らが、コードの洗練性や進化を渇望せずして、一体誰がそれを望むのか?
では、「洗練されたコード」とはどのようなものか。玄米茶氏は「可読性」を重視しているという。「プログラマがコードの可読性にもっと気を使うことで、ソフトウェアの長期保守性が格段に上がるだろう」――玄米茶氏はこのように提言している。
「可読性」は、人それぞれで違う属人的な指標
一方、コードについて議論する際に「可読性」といった指標はあまり用いない方がいいのでは、という意見もある。『地方からの戯言』のAhf氏は、「可読性」という指標のあいまいさについて考察している。
「可読性」や「保守性」は、人それぞれによって判断基準が異なる、属人的な指標である――Ahf氏はこう指摘する。例えば、ある人はコメントが少ない方が「読みやすい」と思い、別の人はコメントによる説明があった方が「読みやすい」と感じるだろう。どの意見も間違ってはいない。
このように、読みやすさや保守性は、エンジニアの経験や考え方、使用言語によってさまざまに変わる。「可読性は属人的な指標であるということを理解したうえで、可読性以外の指標を用いて議論を続けるのが建設的では」と、Ahf氏は提言している。
物覚えが悪いから、分かりやすいコードを書く
『アジアのソフトウエア開発現場にて』を執筆する山本保男氏は、シンガポールで開発を行っているエンジニアだ。山本氏は、「分かりやすいコード」を書く理由について、ユニークな視点から考察している。
山本氏は、「分かりやすいコードを書くのは1週間後の自分のため」と語る。自称「恐ろしいほど物覚えが悪い」山本氏は、1週間前に自分が書いたコードの中身を覚えていられない。そのため、「なぜ自分はこのコードを書いたのだろう……」と未来の自分が悩まなくても済むように、日々分かりやすいコードを書くように心がけているという。
また、山本氏は「バグがないコードと可読性のあるコードは違う」と主張する。きれいなコードは、リファクタリングを繰り返すことによって生まれる。シンガポールの現場では、プログラマの書くコードにある程度バグがあってもそれほど問題にはされないという。その代わり、リファクタリングやテストを繰り返してバグをつぶしていく。
「きれいなコードについてチームの方針が徹底していれば、コードは誰が読んでもある程度は分かるし、対処もできる」と山本氏は語る。
コラムニスト募集中 |
エンジニアライフではコラムニストを募集しています。 応募資格は ・ ITエンジニア(元でも可) ・ ITが好きで、将来はIT業界に就職しようと考えている学生 ・ ITエンジニアの採用に関わっている人事担当者 ・ ITエンジニアの育成に関わっている教育担当者 ご興味のある方はコラムニスト募集ページをご覧ください。 |