Что делать, если я использую Smart:: Comments в коде разработки?

Я понимаю, что Smart:: Comments не следует использовать в производственном коде, поскольку это фильтр источника.

Однако, я использовал Smart::Comments в своем коде разработки, а затем комментировал строку "use" перед отправкой кода в производство.

Учитывая, что я собираюсь использовать его в своем коде разработки, что я должен особо беспокоить? Я искал Интернет и не нашел причин, по которым мне следует беспокоиться, за исключением того, что исходные фильтры являются "плохой идеей" или "злом" или что они никогда не должны использоваться в производственном коде.

UPDATE: Теперь я использую привязку ключа в vim для реализации подхода Sinan Ünür:

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

Ответ 1

Фильтры источника bad проблематичны, потому что они используют несовершенный синтаксический анализатор для перезаписи кода. Все работает отлично, пока фильтр управляет кодом, который вы его кормите.

В тот момент, когда вы добавляете что-то, что разбивает фильтр, вся система саморазрушится, и вы получаете причудливые ошибки.

Фильтры источника также путают отладчик, что может быть проблемой - если вы используете отладчик.

Ответ 2

Я предпочитаю не ставить:

use Smart::Comments;

в моем коде. Когда я действительно использую Smart::Comments, я вызываю script, используя:

$ perl -MSmart::Comments test.pl

Таким образом, в производственном коде не будет использоваться Smart::Comments.

Ответ 3

Я большой поклонник Smart:: Comments, и он называется во всех наших кодах, разработке и производстве копий. Я редко использую его для progress-bars, в основном для утверждений и вывода отладки.

Однако, практика заключается в том, чтобы вытащить его, используя форму:

use Smart::Comments -ENV;

Если переменная среды Smart_Comments не установлена, Smart:: Comments полностью инертна.

Лучшее из обоих миров.

Ответ 4

У меня нет мнения о части источника-фильтров. Но посмотрите на синопсис Smart::Comments. Они могут быть умными, но то, что вы в конечном итоге, вряд ли можно назвать "комментариями". Если вам нужен индикатор выполнения, продолжайте, добавьте его явно. Если вам нужно что-то прокомментировать, сделайте это так, чтобы следующий парень, читая ваш источник, понял, что вы имели в виду.

Ответ 5

Smart:: Комментарии специально написаны таким образом, что когда вы комментируете "использовать Smart:: Comments", это будут только комментарии, поэтому программа вообще не затрагивается. Другие модули имеют более серьезные проблемы, например, когда вы не сможете получить точный номер строки ошибки.