2009-11-23 7 views
5

Rozumiem, że Smart :: Komentarze nie powinny być używane w kodzie produkcyjnym, ponieważ jest to filtr źródłowy.Jakie obawy powinienem mieć, jeśli używam Smart :: Comments w kodzie programistycznym?

Jednak używam Smart::Comments w moim kodzie rozwojowym, a następnie komentuję linię "użycia" przed wysłaniem kodu do produkcji.

Biorąc pod uwagę, że zamierzam użyć go w moim kodzie rozwojowym, co powinienem szczególnie martwić? Przeszukałem Internet i nie znalazłem żadnych powodów, dla których powinienem się martwić, z wyjątkiem tego, że filtry źródłowe są "złym pomysłem" lub "złym" lub że nigdy nie powinny być używane w kodzie produkcyjnym.

UPDATE: Obecnie używam wiążącej w vim klucz do wdrożenia podejścia Sinan Ünür za:

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

Zobacz także wiki społeczności daotoad, które otworzył po udzieleniu odpowiedzi na to pytanie: http://stackoverflow.com/questions/1785852/why-are-perl-source-filters-bad-and-when-is-it-ok do ich użycia. –

+0

Zobacz [artykuł Perl Advent na rok 2015: Smart :: Komentarze] (http://www.perladvent.org/2015/2015-12-11.html) –

Odpowiedz

4

Filtry źródłowe są złe problematyczne, ponieważ korzystają one niedoskonałe parser przepisać kod. Wszystko działa świetnie, o ile filtr zarządza kodem, którym go zasilasz.

W momencie dodania czegoś, co niszczy filtr, cały system ulega samozniszczeniu i dostajesz dziwaczne błędy.

Filtry źródłowe również mylą debuggery, co może stanowić problem - jeśli używasz debuggera.

2

Nie mam zdania na temat części filtrów źródłowych. Ale spójrz na streszczenie: Smart::Comments. Mogą być sprytni, ale to, co się kończy, trudno nazwać "komentarzami". Jeśli potrzebujesz paska postępu, śmiało dodaj go jednoznacznie. Jeśli chcesz coś skomentować, zrób to w taki sposób, aby następny facet czytający twoje źródło zrozumiał, co masz na myśli.

1

Inteligentne :: Komentarze są specjalnie napisane w taki sposób, że gdy skomentujesz "używaj Inteligentnego :: Komentarze", będą to tylko komentarze, więc program w ogóle nie będzie miał wpływu. Inne moduły mają poważniejsze problemy, np. Gdy nie będziesz w stanie uzyskać dokładnej liczby błędów linii.

9

Wolę nie umieścić:

use Smart::Comments; 

w moim kodu. Kiedy rzeczywiście używać Smart::Comments modlę skrypt przy użyciu:

$ perl -MSmart::Comments test.pl 

W ten sposób nie ma szans Smart::Comments zostaną wykorzystane w produkcji kodu.

+1

++! Często przeglądałem S :: C i żałowałem, że nie wierzę w całkowitą abstynencję od filtrów źródłowych. Zapewnia to bezpieczny sposób korzystania z S :: C - teraz mogę faktycznie z nich korzystać. – daotoad

+0

Dzięki! Dobre podejscie. –

5

Jestem wielkim fanem Smart :: Comments i jest on nazywany w całym kodzie, kopiach programistycznych i produkcyjnych. Rzadko używam go do pasków postępu, głównie do asercji i wyników debugowania.

Jednak praktyka jest wyciągnąć go za pomocą formularza:

use Smart::Comments -ENV; 

Jeśli zmienna środowiskowa Smart_Comments nie jest ustawiona, Inteligentny :: Komentarze jest całkowicie obojętny.

Najlepsze z obu światów.

+0

Dzięki! Jeszcze inny sposób na zrobienie tego. –

Powiązane problemy