0

Python のような動的言語には常に問題があります。

いくつかのトラブル:

  1. タイプミス、pylint を使用してこれらのエラーの一部を減らすことができます。しかし、pylint が把握できないエラーがまだいくつかあります。
  2. オブジェクト型エラー、パラメータの型が int であるのをよく忘れていましたか? スト?何かの物体?また、コード内のオブジェクトのタイプを忘れていました。

単体テストが役立つこともありますが、UT を実行する十分な時間が常にあるとは限りません。小さな仕事をするためにスクリプトが必要な場合、コード行は 100 ~ 200 行で、それほど大きくはありませんが、できるだけ早くスクリプトを使用する必要があるため、単体テストを行う時間がありません。そのため、多くのエラーが表示されます。

では、これらのトラブルの数を減らす方法について何か考えはありますか?

4

2 に答える 2

4

単体テスト、これを処理するための最良の方法です。テストに時間がかかりすぎていると思われる場合は、コードをリリースした後、欠陥の特定、診断、修正にどれだけの時間を費やしているかを自問してください。

実際には、本番環境でテストを行っており、開発サイクルの後半で欠陥が見つかった場合、修正に桁違いの費用がかかる可能性があることを示す多くの証拠があります。

于 2012-12-05T11:59:45.200 に答える
2

単体テスト (chamila_c の回答を参照) に加えて、適切な規則とコーディング スタイルを守ることが役立ちます。私はあなたが話している種類の 1 回限りのスクリプトを知っていると思います (それがあなたが話していることであると仮定して)、そしてそれらの完全なテスト スイートを書くことはやり過ぎのように思えることがよくあります。役立つかもしれない他のいくつかのヒント:

  • コードを関数に分割します。多くの場合、問題を特定するのは簡単です。特に、コードの小さな分離された部分を扱っている場合は、名前の問題を特定する方が簡単です。また、小さな関数の単体テストを作成する方がはるかに簡単です。このアプローチを使用すると、特定された問題をテストして分離するための完全なテスト スイートが必要ないことがわかります。
  • 一貫性のある表現力豊かな命名規則に従ってください。たとえば、 のmin_value = min(all_values)ような恣意的なものではなく、 を使用しますa = min(b)。関数名についても同様def calculate_mean(sequence)です。def f(s)
  • PEP8を読んで適用します。
  • コメントを使用してコードを文書化します。コードを書くのに数秒しかかからず、戻ってきたときに何が起こっているのかをはるかに簡単に把握できます。たった1日で忘れてしまうほどの細かさ!
于 2012-12-05T12:13:52.197 に答える