Uważam, że używanie etykiet wewnątrz podprogramów Perla, łamanie wielu pętli lub ponawianie niektórych części za pomocą zaktualizowanych zmiennych jest bardzo pomocne. W jaki sposób ten styl kodowania jest postrzegany przez społeczność? Czy nie są używane marszczone etykiety wewnątrz podprogramów?Czy używanie etykiet w podprogramach Perla jest uważane za złą praktykę?
Odpowiedz
Nie. Służą one dokładnie temu celowi, jaki opisują i uważam je za fajną cechę języka, który jest używany za mało.
Z drugiej strony, gdy tylko zastanawiam się nad używaniem etykiety, zastanawiam się również, czy mój kodeks wymaga niewielkiej refaktoryzacji.
Używanie etykiet z next
, last
i jest w porządku, ale powinieneś przerwać, aby zastanowić się, czy struktura kodu jest najlepsza. Z mojego doświadczenia rzadko korzystasz z tych operatorów na czymkolwiek poza pętlą otaczającą (co oznacza, że nie musisz używać etykiety).
Używanie goto LABEL
jest zdecydowanie odradzane.
Zazwyczaj nie ma powodu, aby używać goto LABEL
.
Na przykład:
my $i = 10;
Label:
# ...
goto Label if --$i;
lepiej zapisać jako:
my $i = 10;
{
# ...
redo if --$i;
}
Jedyny powód, mogę myśleć użyć etykiety, jest wyrwać się z wielu pętli, lub aby kontynuować zewnętrzną pętlę.
my $i = 10;
OUTER: while(1){
# ...
while(1){
# ...
last OUTER unless --$i;
}
}
my $i = 10;
OUTER: {
# ...
{
# ...
redo OUTER if --$i;
}
}
- 1. Próbuję zrozumieć, dlaczego wiele statycznych metod Laravela nie jest uważane za złą praktykę.
- 2. Czy typ wskaźnika jest uważany za złą praktykę?
- 3. Co jest uważane za dobrą praktykę kodowania w sytuacjach "rzeczywistych"?
- 4. Czy uważa się za niewłaściwą praktykę stosowanie pozycjonowania bezwzględnego?
- 5. Czy używasz etykiet w złym ćwiczeniu JavaScript?
- 6. Czy jest to uważane za SFINAE?
- 7. Dlaczego korzystanie z Axios lub wywołań HTTP w komponentach jest uważane za kiepską praktykę?
- 8. Czy używanie notacji kropek w wąsach (php) jest złą praktyką?
- 9. Czy uważa się za złą praktykę dzielenie pojedynczego formularza na wiele częściowych widoków?
- 10. Łączenie kilku kont oauth z jednym użytkownikiem: co jest uważane za bezpieczną praktykę, a co nie?
- 11. Czy to jest złą praktyką używanie standardowego magazynu kluczy Java
- 12. Jaka jest różnica w opóźnionej ocenie kodu w podprogramach dla 5.8 vs. 5.10 i 5.12 Perla?
- 13. Czy jest to uważane za odbicie i do jakiego stopnia?
- 14. Jaka zmienna globalna jest złą praktyką w języku Java?
- 15. Dlaczego alokowanie lub inicjowanie NSDateFormatter jest uważane za "kosztowne"?
- 16. Czy typedef w treści funkcji jest złą praktyką programowania?
- 17. Czy komentarze C++ są uważane za zły styl w C?
- 18. Czy chronieni konstruktorzy uważani są za dobrą praktykę?
- 19. Używanie obrazu dla etykiet zaznaczonych w matplotlib
- 20. Dlaczego znaczniki pozycji, takie jak pierwsza lub ostatnia, w wyliczeniu są uważane za złe praktyki?
- 21. Używanie Haskella do rozszerzenia Perla?
- 22. Czy tabIndex: 0 w linkach jest uważany za dobrą praktykę, aby uniknąć href = "javascript: void (0);"?
- 23. Czy zakresy zależności zależności Maven powinny być uważane za przestarzałe?
- 24. JavaScript: czy dynamiczne przedłużanie prototypu jest złą praktyką?
- 25. Czy ciągi .NET naprawdę powinny być uważane za niezmienne?
- 26. Czy kody statusu HTTP są uważane za "magiczne liczby"?
- 27. Czy drzewa decyzyjne (np. C4.5) są uważane za uczenie nieparametryczne?
- 28. ÅĘÖ: co jest uważane za bardziej przyjazne dla SEO URL
- 29. dlaczego użycie Hrabia z IQueryable jest uważane za niewykonalne
- 30. Czy sprawdzanie poprawności pól w konstruktorze i seter jest uważane za zły kod nadmiarowy?
W większości przypadków, myślę, że kod jest wyraźniejszy przy zastosowaniu etykiet. Przepisanie kodu, aby już z niego nie korzystał, zwykle prowadzi do wielu linii dodatkowego kodu. – Geo
Czasami tak jest, czasami tak nie jest. Zawsze szukam kodu, który jest łatwiejszy do odczytania i zrozumienia. Czasami jest to kod, który używa etykiet. – innaM
Perl Best Practices jest za etykietami. Nie zgadzam się ze wszystkimi PBP, ale myślę, że jest to jedna z jego dobrych rad. Służą one jako dokumentacja, jeśli nic więcej. – hobbs