-2

問題:

多くの異なるスクリプトで多くの CPAN モジュールとハードコードされた perl 関数を使用しており (多くのスクリプトが重複しています)、共通コードをすべて抽出してコード ベースを DRY にしたいと考えています (同じことを繰り返さないでください)。 (そしておそらく何らかのリファクタリングによっても)、独自のコードと cpan コードの両方を共通のモジュールに入れ、それをスクリプト全体で使用するため、変更が発生したときにコードを 1 か所だけ変更する必要があります (実際に変更します)。

そこで、perl のキャリアの中で実装したいくつかの機能を、そのような共通モジュールに永続的に配置して、新しいスクリプトを作成するときに、残りのコードには共通モジュールを使用します。

4

1 に答える 1

4

CPAN モジュールをリファクタリングしないでください。これらをミステリー ボックスとして扱います。多かれ少なかれ同じ作業を行う複数の cpan モジュールの使用に問題がある場合は、1 つに標準化してください。

Local名前空間に配置したローカル Perl モジュールがたくさんあります。たとえば、Local::WinADアクティブ ディレクトリにアクセスして操作します。このLocal名前空間は、CPAN によって使用されることはありません。バージョン管理システムにプロジェクトとして保存され、チェックアウトして任意のシステムにインストールできます。use libプラグマを使用できます。

モジュールを実行する場合は、正しく実行してください。を使用し、使用@EXPORT_OKしないでください@EXPORT。(または、さらに良いことに、それらをオブジェクト指向モジュールにします)。PODドキュメントを使用し、 Test::SimpleおよびTest::Moreモジュールを介して広範な単体テストを実行します。

それらを CPAN に提出するふりをしてください。

また、CPAN を非常に注意深く検索して、既に完了した作業と重複していないことを確認してください。結局のところ、CPAN によって既に行われた作業をやり直さないことを含む DRY を実践する必要があります。

于 2013-02-05T15:11:30.257 に答える