0

Python は私にとって比較的新しい言語であり、スクリプト言語ベースのプロジェクトを維持する上で問題となる領域がいくつか見られます。私は、より大きなコミュニティが、もういない人々によって書かれたかなり大きなコードベースを維持しなければならないシナリオで、次の状況にどのように対処するのか疑問に思っています:

  1. 関数/メソッドの戻り型。過去の開発者がコードを十分に文書化していないと仮定すると、メソッド/関数が何を返すと想定されているかを理解するために基本的にコードを1行ずつ読んでいるので、これは本当に面倒です。

  2. コードのリファクタリング: 多くのコードを移動したり、編集/削除したりする必要があると考えました。しかし、多くの場合、他のコンパイル済み言語ではコンパイル時のエラーになる単純なエラーが発生します。たとえば、引数の数が間違っている、引数の型が間違っているなどです。 、メソッドが存在しないなど、コードを実行してコードが問題のある領域に到達したときにのみ表示されます。したがって、リファクタリングされたコードがまったく機能するかどうかは、コードを完全に実行して初めてわかります。私は PyDev で PyLint を使用していますが、それでもこの点で非常に不足しています。

4

3 に答える 3

0

他の人は、ドキュメントと単体テストがここでの主要なツールであると既に述べています。3 番目に追加したいのは、Python シェルです。Python のようなコンパイルされていない言語の大きな利点の 1 つは、簡単にシェルを起動し、モジュールをインポートし、そこでコードを実行して、その動作と戻り値を確認できることです。

これにリンクされているのは Python デバッガーですimport pdb;pdb.set_trace()。コードの任意の場所に置くだけで、実行すると対話型デバッガーにドロップされ、変数の現在の値を調べることができます。実際、pdb シェルは実際の Python シェルでもあるため、そこで変更することもできます。

于 2013-06-04T10:36:06.037 に答える
0

そうです、それは動的に型付けされたインタープリター言語の問題です。

役立つ重要なことがいくつかあります。

  1. 良いドキュメンテーション
  2. 広範な単体テスト。

もちろん他の言語にも当てはまりますが、ここでは特に重要です。

于 2013-06-04T10:18:50.820 に答える
0

私の知る限り、コードがまったく文書化されておらず、作者がもういない場合、頌歌が実際に何をするかを知るのはあなた次第です。

そのため、人々は pep8 のようなスタイルチェッカーによって強制できる特定のガイドラインに常に固執する必要があります。https://pypi.python.org/pypi/pep8

あなたが説明しているような状況を避けるために、すべてのメソッドにコメントとドキュメント文字列を含める必要があります。http://www.python.org/dev/peps/pep-0257/#what-is-a-docstring

また、単体テストは、ボタンをクリックするだけで何かが壊れていないかどうかを確認できるため、リファクタリングに非常に役立ちます。http://docs.python.org/2/library/unittest.html

お役に立てれば

于 2013-06-04T10:20:08.217 に答える