Что делать, если я использую 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", это будут только комментарии, поэтому программа вообще не затрагивается. Другие модули имеют более серьезные проблемы, например, когда вы не сможете получить точный номер строки ошибки.