![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
Kiedy pisze kod staram się unikac wyrazen regularnych, xpathy i podobnych – na pierwszy rzut oka – nic nie mówiących linii kodu.
Wole zapisac dłuższy kod, gdzie po rzuceniu okiem na lika linii już wiem o co chodzi, niż wyrażenie regularne nad którym musze zatrzymać oko żeby zrozumieć.. Niby niepozorna rzecz. Jednak gdy przychodzi momenty, gdy masz do naprawienia buga, dużo łatwiej analizować kod który jest „rozmyty” -- tutaj brakuje mi terminu, bo to zjawisko pewnie ma fachową nazwę. Jak wy sobie z tym radzicie.. P.S Zadanie: kto wie co robi ten kod:
Jeśli wiesz, to spróbuj teraz napisać to samo przy pomocy preg_match (IMG:style_emoticons/default/biggrin.gif) Ten post edytował wNogachSpisz 29.02.2012, 11:34:40 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Wyrażenia regularne stosuje się do ciągów tekstów posiadajacych pewną regularność. Zatem do walidacji pól, danych otrzymanych od użytkownika nadają się wyśmienicie.
Do czego jeszcze: - do plików CSV jeśli mamy określoną liczbę pól (oczywiście wystarczy tutaj explode() ale są tą teksty regularne więc zastosowanie preg_match też jest poprawne) - do struktur ze znacznikami (XML,HTML itp) w niektórych przypadkach gdy prawdziwe jest założenie o regularności - do wielu wielu innych rzeczy gdzie mamy do czynienia z tekstami regularnymi... Oczywiście wielu z nas próbuje zastępować preg_matche (bo to najłatwiejsze) na inne metody, będące bardziej wydajne. Trzeba się jednak zastanowić i może nawet sprawdzić czy zawsze druga metoda jest wydajniejsza od preg_matchy ... Wcale bym się nie zdziwił gdyby pomysł autora tematu z wykorzystaniem DOM był o wiele mniej wydajny dla masy wyszukiwań w HTML/XML (IMG:style_emoticons/default/smile.gif) Z kolei przy sprawdzaniu na przykład czy string zaczyna się od "coś" wystarczy dać strpos() zamiast preg_match('/^coś/si') itd... Zatem IMHO używanie preg_match jak i innych technik jest poprawne tam gdzie jest wydajne i daje zamierzony efekt (IMG:style_emoticons/default/smile.gif) Tak więc podsumowując - programowanie i język jest dla programistów... robimy tak by było wydajnie i wygodnie dla nas. Więc jest pełna dowolność (oczywiście z zachowaniem rozwagi) w wyborze techniki/techonologii. Osobiście często używam zarówno preg_matchy jak i kombinacji strpos'a, czy DOM'a - ale zależnie od potrzeby (IMG:style_emoticons/default/smile.gif) P.S. Jeśli się naprawdę dobrze zna wyrażenia i XPath'y to debuging kodu wcale nie jest aż tak skomplikowany - choć faktycznie przy "rozmytym" kodzie jest nieco prościej (IMG:style_emoticons/default/smile.gif) Cytat Chodzi o wygodę, nie wydajność - zawsze myślałem że PHP jest jęyzkiem dla wygodnickich Ciekawe podejście do tematu programowania... Musze to powiedzieć mojemu CEO przy jednym z projektów przygotowywanym na gigantyczny ruch... (IMG:style_emoticons/default/haha.gif) - Czemu ta strona ładuje się w 10 sekund? - Bo tak mi było wygodniej... (IMG:style_emoticons/default/tongue.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 18:26 |