![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam...
Zauważyłem że wiele początkujących użytkowników ma jakąś dziwną manię stosowania takiej konstrukcji:
...czyli zamykają zmienną w podwójnych cudzysłowach... O co tu chodzi...? Jak dla mnie nie ma to najmniejszego sensu, ale może o czymś nie wiem... :/ Czy jakiś popularny kurs/książka podpowiada coś takiego...? Przyznam że spotkałem się z tym po raz pierwszy i tylko na tym forum... Ten post edytował nowotny 18.03.2008, 12:33:11 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Ja dorzucę do kwiatków jeszcze jedną wkurzającą mnie rzecz - nadużywanie bez potrzeby zmiennych tymczasowych:
Kod $query = 'SELECT costam ...'; $result = mysql_query($query); Kod $tresc = $_POST['tresc']; $tresc1 = htmlspecialchars($tresc); $tresc2 = str_replace(..., $tresc1); // itd. Żeby było śmieszniej, po zwróceniu uwagi byłem jeszcze pouczany, że "przecież zmienne tymczasowe ułatwiają debugowanie, bo można zrobić w razie potrzeby rzecz następującą albo np. coś dalej przetwarzać tekst zapytania": Kod $query = 'SELECT costam ...';
echo 'Zapytanie SQL: '.$query; $result = mysql_query($query); |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Żeby było śmieszniej, po zwróceniu uwagi byłem jeszcze pouczany, że "przecież zmienne tymczasowe ułatwiają debugowanie, bo można zrobić w razie potrzeby rzecz następującą albo np. coś dalej przetwarzać tekst zapytania": A bawiłeś się Xdebug? Jakbyś się bawił to byś wiedział skąd się to bierze. Do tego wiesz co przekazywane jest do funkcji, po nazwie zmiennej, widzisz wszystkie parametry, a nie never ending line. A swoją drogą testowałeś jak wpływa na wydajność takie "nad używanie"? Oczywiście mówię o przypadku SQL, bo za każdym razem przy np. filtrowaniu stringu nowa zmienna to śmietnik. Ale dodaję je tylko, gdy w danym miejscu faktycznie jest problem i po jego likwidacji usuwam. Gdybym dopuścił np. taki wygląd zapytań, to równie dobrze mógłbym zapytać, co w takim razie jest źle z drugim podanym kodem? Przecież tu też można by się tłumaczyć kwestiami debugowania, że będę chciał wyświetlić dane po przepuszczeniu przez którąś z kolei funkcję. I tak po kolei dojdziemy do kodu-potworka w stylu: Kod $wyrazenie = ($a == 5); if($wyrazenie) { $arg1 = 1; $arg2 = 5 + $a; $wynik = funkcja($arg1, $arg2); echo $wynik; } I też go względami debugowania będę mógł obronić dokładnie tak samo, jak zapis: Kod $query = 'SELECT ...'; mysql_query($query); Tylko że w pierwszym przypadku, debugując (mówię ciągle o Xdebug) widzisz czy wchodzi w warunek, a w drugim nie wiesz co jest przekazywane. Do tego mój argument o długości linii. Prawda jest taka, że w dobrze przemyślanym problemie prawdopodobieństwo zajścia takiego zdarzenia jest BARDZO MAŁE, a jeśli już zajdzie, zawsze jest Ctrl+C/Ctrl+V. Od tej 0,5 sekundy więcej na wpisanie świat się nie zawali. Gdy zaś muszę sięgać zbyt często po ten środek, znaczy to, że rozwiązanie wymyślałem na kolanie, jest ono kiepskie i lepiej będzie, jak siądę nad kartką i wymyślę nowe. Prawda jest taka, że jak debugujesz większy skrypt, to takich miejsc poprawek możesz mieć sporo i tylko coś bierze jak musisz dopisać, aby sprawdzić czy wszystko jest ok. Cytat Jeżeli coś potrzebuje stałego debugowania włączanego na rozkaz, piszę taki kod, by robił to za mnie. I obciążasz dodatkowo, kod który jest dobrze napisany sam powie że coś jest nie tak i powie co (co prawda dokładniejsze informacje zostawić tylko dla siebie, a wyświetlać te pobieżne) Jest mowa o kwerendach, ale sprawa się tyczy wszystkich parametrów funkcji podstawowych, gdzie nie mamy możliwości sprawdzenia co dokładnie przekazujemy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 06:34 |