ソフトウェアのバグをなくすには?--プログラミングの際に避けるべき10の失敗 - (page 3)

David Gewirtz (Special to ZDNET.com) 翻訳校正: 村上雅章 野崎裕子

2016-06-17 06:00

 概念を説明したり、アイデアを伝えたり、資金を調達したり、詳細を問いただしたり、提案書を用意したりするには、そして評価を上げてもらうための議論をする際であっても、文章を作成しなければならない。また、オープンソースプロジェクトの参加者らは、世界各地に散らばっている。彼らとしっかりした意思疎通を図りたいのであれば、理解しやすい明確なメッセージを書かなければならない。

 つまり、プロフェッショナルとして仕事をしたい、あるいは重要な何かを成し遂げたいというのであれば、プログラミング言語だけでなく、人間が意思疎通に使う国語の能力が必要となるわけだ。

#5:ソースコードのフォーマットが統一されていない

 既に気付いている方もいるかもしれないが、ここでのテーマはソースコードを理解しやすくするというものだ。ソースコードのメンテナンスは、膨大な時間を必要とする、コストのかかる作業だ。また率直に言って、面白い作業でもない。何週間もかけて古いソースコードと格闘し、自ら(または元々のソースコードの執筆者)がやろうとしていたことを再発見するよりも、新機能を追加するために生産的な時間を費やせる方がうれしいはずだ。

 筆者も、過去に自らが開発したソースコードだけでなく、他人のソースコードでもそのことを実感した経験がある。筆者はサイドプロジェクトとして、遺棄されていたWordPressのオープンソースプラグインを引き受けてきている。ちなみに、筆者は誰よりも多くのプラグインを引き受けてきているはずだ(この件については「WordCamp 2016」で4月17日に語っている)。こういった各プラグインは元々、他の人が開発したものであり、動作させ続けるためには見知らぬソースコードに目を通す必要があった。

 幸いなことに、これらプラグインの開発者たちは素晴らしいプログラミング技芸の持ち主だった。そうでなければ、プロジェクトを引き受けようとは思わなかっただろう。とは言うものの、軌道に乗るまでが大変だった。ソースコードのフォーマットが統一されていない場合、どれだけ理解が妨げられるのか、想像できるだろうか?

 筆者は、ソースコードの構造、すなわちソースコードのレイアウトを明確にするというテーマの動画を公開している。視聴していただければ、筆者の言わんとすることは分かってもらえるはずだ。

 オンライン上で何らかの記事を読む場合を想像してほしい。きちんとフォーマットされ、段落間の行間が広くとられ、統一がとれている記事もある一方で、すべてが巨大なデータの塊として配置され、読まれることを拒否している記事もあるだろう。

 あらゆるプログラマー(また、あらゆるプロジェクト)は、何らかのプログラミングスタイルを有している。そのスタイルに整合性があれば、どのようなものであるのかは、さして重要ではない。ソースコードのフォーマットを指針にすれば活用できるはずだ。

 例えば、筆者はソースコードのセクション間に複数の空行を配置しないようにしている。このため、空行が何行も連続している場合、何かまずい点が存在しており、その部分にバグがあるかもしれないということをすぐさま察知できる。

 ソースコードを読み進める際には、組織レベルでコーディングスタイルが確立されているかどうかを確認してほしい。そして場合によっては、すべてのプログラマーが活用できる、明確でメンテナンス性を醸成できるようなコーディングスタイルの定義を検討してほしい。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    警察把握分だけで年間4000件発生、IPA10大脅威の常連「標的型攻撃」を正しく知る用語集

  2. セキュリティ

    まずは“交渉術”を磨くこと!情報セキュリティ担当者の使命を果たすための必須事項とは

  3. セキュリティ

    「2024年版脅威ハンティングレポート」より—アジアでサイバー攻撃の標的になりやすい業界とは?

  4. ビジネスアプリケーション

    Microsoft 365で全てを完結しない選択、サイボウズが提示するGaroonとの連携による効果

  5. セキュリティ

    生成AIを利用した標的型攻撃とはどのようなものなのか?実態を明らかにして効果的な対策を考える

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]