第9章. デバッグ、テスト、デプロイ
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
この章では、デバッグ、テスト、デプロイといった、ソフトウェア開発においてあまり重要視されない部分について説明する。様々なバグを発見することから、人々が実際に理解できるようなドキュメントを書くこと、そしてあなたのコードが想定通りに動くことを確認することまで、あらゆることについてのガイドだ。また、変更を滞りなくマージする方法、ソフトウェアをスムーズかつ安全に実行する方法、ユーザの声を取り入れる方法、さらにはローンチ時に注目を集める方法についても掘り下げていく。
デバッグ
コードを作成するとき、開発者はその時間の約35%から50%をデバッグに費やすことになる。これは単に時間を浪費するだけではない。 。また、ソフトウェア・プロジェクトの予算の大部分を食ってしまう。
バグには大きく分けて2種類ある 。まず構文エラーだ。これは、コードが言語構造の規則に従っていない場合に現れる。for 、ループの最後にコロンを付け忘れるといった単純なものだ。VS Codeのような最新のIDEは、この種のエラーの多くを検出して修正してくれるはずだ。
次に論理エラーである。これらは、 、ロジックのどこかがずれている場合に発生するため、よりやっかいである。例えば、あるリストから成人ユーザを年齢でフィルタリングするプログラムを作成したとする。ただ問題なのは、18歳以上のすべてのユーザーを除外するのではなく、18歳未満のユーザーを誤って除外してしまうことだ。そのため、10代の若者ではなく、大人だらけのリストができてしまう。この取り違えは論理エラーの典型例だ。あなたのコードは、あなたが意図したことと正反対のことをしているのだ。なぜ18歳以上ではなく、18歳未満にフラグを立てているのかを特定するのは、非常に難しいことだ。年齢条件を素早く調整することから、ロジック全体を考え直すことまで、修正は多岐にわたる。
ともあれ、AIアシスト・プログラミング( )ツールを使うことは、デバッグの際に最初からやるべきことではない。多くの場合、従来のアプローチで問題ないはずだ。VS Codeには、問題を検出して解決できる強力なデバッグ機能がある。なんといっても、ブレークポイントを簡単に設定して変数の行を調べたり、コードを一行ずつ見て回ったり、何が起きているのかを正確に確認することができるのだ。これらは、特に大規模なプログラミングでは救世主となる。
しかしもちろん、本当に頭を悩ませるバグもある。現代のソフトウェアは、多くのレイヤーやパーツが連動する複雑なパズルであることが多い。時には、これらのパーツが予期せぬ方法で相互作用するためにバグが現れることもあり、実際に何が間違っているのかを突き止めるのは本当に難しいことだ。それから、ドキュメントの問題、あるいはドキュメントの欠如もある。ソフトウェアに明確な説明書や解説がない場合、どのように動作するのかを理解するのは難しく、バグを発見し修正するのはさらに難しくなる。あなたのソフトウェアは通常、外部のライブラリやサービスに依存しており、そこで何か問題が発生した場合、ソフトウェアのバグに悩まされることになる。
そこでAIに頼ることができる。例えば、暗号化されたエラーメッセージや長いエラーメッセージを解読するというシナリオがある。例えば、スタック・トレース、つまり、すべてがおかしくなったときにプログラミングが何をしていたかのスナップショットかもしれない。また、様々なフレームワークやライブラリ間の相互作用についての詳細な情報を得ることもできる。 ...