@IT自分戦略研究所 編集部が独断と愛によって選んだ「テーマ別コラム」をピックアップして紹介します。

「ソースコードの質」と「可読性」について、議論しよう

»

 本音が語れるエンジニア参加型メディア「@IT自分戦略研究所 エンジニアライフ」。日々、ITエンジニアの「生の声」を公開している。

 ここでは、編集部の独断と偏愛によって選んだコラムをテーマ別に紹介する。今回のテーマは「質のよいソースコード」について。

 「質のよいコード」とはどのようなものか、これは多くのプログラマが議論してきている話題だ。「質のよいコードは可読性が高い」と主張するコラムを筆頭に、「ソースコードの質」について語るコラムニストの意見を見ていこう。

プログラマよ、これからの「可読性」について議論しよう

 まずは、『気難しいプログラマ』玄米茶氏による、「コードの質の向上」に関する意見を紹介しよう。

 技術の発達によって、これからはソフトウェアの寿命が延びていく。今後は、よりソースコードの「保守性」と「拡張性」が重要になってくると、玄米茶氏は語る。

 これまでは、プログラムは正しく動けばよかった。重視されるのはきちんと動くかどうかであり、それがどんなにひどいスパゲッティコードであろうと美しいコードであろうと、問題にはならない。「非常に洗練されたコードは、バグのないプログラムに負ける」と、玄米茶氏は指摘する。

 だが、複数のプログラマが1つのコードを修正する機会が増えると、ソースコードの質によって保守性に雲泥の差が出てくる。玄米茶氏は、「いまこそ、コードの質の向上について議論すべきだ」と主張する。

 われわれは実行モジュールを作っているのではない。ソースコードを作っているのだ。

 プログラマ自らが、コードの洗練性や進化を渇望せずして、一体誰がそれを望むのか?

 では、「洗練されたコード」とはどのようなものか。玄米茶氏は「可読性」を重視しているという。「プログラマがコードの可読性にもっと気を使うことで、ソフトウェアの長期保守性が格段に上がるだろう」――玄米茶氏はこのように提言している。

「可読性」は、人それぞれで違う属人的な指標

 一方、コードについて議論する際に「可読性」といった指標はあまり用いない方がいいのでは、という意見もある。『地方からの戯言』Ahf氏は、「可読性」という指標のあいまいさについて考察している。

 「可読性」や「保守性」は、人それぞれによって判断基準が異なる、属人的な指標である――Ahf氏はこう指摘する。例えば、ある人はコメントが少ない方が「読みやすい」と思い、別の人はコメントによる説明があった方が「読みやすい」と感じるだろう。どの意見も間違ってはいない。

 このように、読みやすさや保守性は、エンジニアの経験や考え方、使用言語によってさまざまに変わる。「可読性は属人的な指標であるということを理解したうえで、可読性以外の指標を用いて議論を続けるのが建設的では」と、Ahf氏は提言している。

物覚えが悪いから、分かりやすいコードを書く

 『アジアのソフトウエア開発現場にて』を執筆する山本保男氏は、シンガポールで開発を行っているエンジニアだ。山本氏は、「分かりやすいコード」を書く理由について、ユニークな視点から考察している。

 山本氏は、「分かりやすいコードを書くのは1週間後の自分のため」と語る。自称「恐ろしいほど物覚えが悪い」山本氏は、1週間前に自分が書いたコードの中身を覚えていられない。そのため、「なぜ自分はこのコードを書いたのだろう……」と未来の自分が悩まなくても済むように、日々分かりやすいコードを書くように心がけているという。

 また、山本氏は「バグがないコードと可読性のあるコードは違う」と主張する。きれいなコードは、リファクタリングを繰り返すことによって生まれる。シンガポールの現場では、プログラマの書くコードにある程度バグがあってもそれほど問題にはされないという。その代わり、リファクタリングやテストを繰り返してバグをつぶしていく。

 「きれいなコードについてチームの方針が徹底していれば、コードは誰が読んでもある程度は分かるし、対処もできる」と山本氏は語る。

コラムニスト募集中
エンジニアライフではコラムニストを募集しています。


応募資格は

 ・ ITエンジニア(元でも可)

 ・ ITが好きで、将来はIT業界に就職しようと考えている学生

 ・ ITエンジニアの採用に関わっている人事担当者

 ・ ITエンジニアの育成に関わっている教育担当者


ご興味のある方はコラムニスト募集ページをご覧ください。
Comment(0)