2009-11-23 7 views
5

Smart :: Commentsは、ソースコードであるため実動コードで使用しないでください。開発コードでSmart :: Commentsを使用している場合、私はどんな懸念がありますか?

しかし、開発コードでSmart::Commentsを使用し、コードをプロダクションに送信する前に「使用」行をコメントアウトしています。

私は自分の開発コードでこのコードを使用しようとしているので、特に心配すべきは何ですか?私はインターネットを検索しましたが、ソースフィルタが「悪いアイデア」や「悪」であること、あるいはプロダクションコードで決して使用されるべきではないということを除いて、私が心配すべき理由は見つかりませんでした。

UPDATE: 私は今シナンÜnürのアプローチを実装するためにvimのでキーバインディングを使用しています:彼らはあなたのコードを書き換える不完全なパーサを使用しているため

map <Leader>c <Esc>:!perl -MSmart::Comments %<CR> 
+1

daotoadのコミュニティwikiも参照してください。この質問に答えた後にオープンしました:http://stackoverflow.com/questions/1785852/why-are-perl-source-filters-bad-and-when-is-it-okそれらを使用する。 –

+0

[Smart :: Commentsの2015 Perl Adventの記事](http://www.perladvent.org/2015/2015-12-11.html) –

答えて

4

ソースフィルタは悪い問題があります。フィルタがあなたがそれを供給するコードを管理している限り、すべてがうまくいきます。

フィルタを壊すようなものを追加した瞬間、システム全体が自己破壊され、奇妙なバグが発生します。

ソースフィルタもデバッガを混乱させますが、デバッガを使用すると問題になる可能性があります。

2

私はソースフィルタの部分について意見がありません。しかし、ちょうどSmart::Commentsの概要を見てください。彼らはスマートかもしれませんが、結局あなたは「コメント」と呼ばれることはほとんどありません。進捗バーが必要な場合は、明示的に追加してください。あなたが何かをコメントする必要がある場合、あなたのソースを読んでいる次の人があなたが意味するものを理解できるようにします。

1

Smart :: Commentsは「Smart :: Comments」をコメントアウトするとコメントになるので、プログラムはまったく影響を受けません。他のモジュールでは、エラーの正確な行番号を取得できない場合など、より深刻な問題があります。

9

私は入れたくない:

use Smart::Comments; 

私のコードで。私は確かにSmart::Commentsを使用しない場合は、私が使用してスクリプトを起動します。

$ perl -MSmart::Comments test.pl 

この方法で、Smart::Commentsは、生産コードで使用される可能性はありません。

+1

++を参照してください。私はしばしばS :: Cを見て、ソースフィルタからの完全な禁欲を信じないことを願った。これにより、S :: Cを安全に使用できるようになりました。実際に使用する可能性があります。 – daotoad

+0

ありがとう!良いアプローチ。 –

5

私はSmart :: Commentsの巨大なファンであり、コード、開発、制作コピー全体を通じて呼び出されています。私はめったにそれをアサーションやデバッグ出力のためにプログレスバーに使うことはほとんどありません。

use Smart::Comments -ENV; 

環境変数Smart_Commentsが設定されていない場合は、スマート::コメントが完全に不活性である:

しかし、実際には、フォームを使用して、それを引っ張っています。

両方の世界のベスト。

+0

ありがとう!それを行うさらに別の方法。 –

関連する問題