![]() ![]() |
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: 662 Pomógł: 45 Dołączył: 26.03.2007 Skąd: Warszawa Ostrzeżenie: (0%)
|
Sam sobie odpowiedziałeś (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Cytat początkujących użytkowników Wielu użytkowników nie wie że można zrobić to bez cudzysłowów, a że działa to tak zostawiają (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) W wielu artykułach o optymalizacji jest o tym napisane, ale jak widać nie każdy optymalizuje swoje skrypty (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#3
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
1) w niektorych co "madrzejszych" ksiazkach tak pisza
2) w nie ktorych pisza tak "zmienna ma wartosc $zmienna" no i taki user jak chce se zmienna wyswietlic to usuwa tekst a "$zmienna" zostawia. No i co mu zrobisz? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 5 Dołączył: 6.02.2004 Skąd: Bydgoszcz Ostrzeżenie: (0%)
|
... bo panuje moda na "naukę" przez gotowce tzn. ściąga sobie gotowy kod najbardziej zbliżony do tego co chce uzyskać i tak długo zmienia metodą prób i błędów aż uzyska to co che, zadając po drodze 100 pytań na forum, nie próbując nawet zrozumieć na jakich zasadach jest oparty aplikacja.
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%)
|
Nadchodzi nowa era programowania... Za niedługo wszyscy będą tak robić. Tylko my na razie jesteśmy na to zbyt słabi i trochę do tyłu... Bywa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Ps. Joke... |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 255 Pomógł: 5 Dołączył: 20.03.2007 Skąd: Kraków Ostrzeżenie: (30%)
|
Eh wy ignoranci. Oni chcą po prostu zmienną $b zrzutować na string, tylko nie robia tego explicite. Ale żeście pokazali klase, nie ma co
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 24.11.2007 Ostrzeżenie: (30%)
|
u mnie w zendzie jak nie wezne w cudzysłów wyskakują notice czy cos.
|
|
|
|
Post
#8
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Cytat Eh wy ignoranci. Oni chcą po prostu zmienną $b zrzutować na string, tylko nie robia tego explicite. Ale żeście pokazali klase, nie ma co Domis ty tak na powaznie czy zartujesz sobie? Wytlumacz mi prosze poco w takim kodzie:
rzutowac cos na string? A czesto gęsto ludzie wlasnie mają takie kody. edit: albo takie kody to juz normalnie perełka:
edit down: no wlasnie nie jestem pewien czy to zart |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%)
|
@nospor, na 90% to był żart (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Swoją drogą zauważyłem kolejną 'manię' nie stosowania apostrofów przy odnoszeniu się do tablicy o indeksie który jest stringiem:
I nikt tego chętnie nie poprawi, bo "przecież działa"... Myślę że winne jest tutaj również PHP które akceptuje takie techniki... Co jak co ale mogłoby być trochę mniej tolerancyjne. |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 255 Pomógł: 5 Dołączył: 20.03.2007 Skąd: Kraków Ostrzeżenie: (30%)
|
|
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%)
|
Chodzi o to, że domyślne raportowanie błędów tego nie pokazuje, a kod działa, choć nie powinien.
|
|
|
|
Post
#12
|
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
Myślę, że takie kwiatki pojawiają się w wyniku szybkiego przesiadania się niektórych ludzi z języka na język.
Np. zapis if( "$zmienna" == 'cos' ) mi od razu kojarzy się z programowaniem w Bash'u, gdzie jest to forma wymagana. A że takie błędy należy tępić.. No cóż - przynajmniej jest wiadomo, że php.pl nadal ma przed sobą jeszcze bardzo dużo pracy.. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 1 333 Pomógł: 137 Dołączył: 25.03.2008 Skąd: jesteś?? Ostrzeżenie: (0%)
|
A tak z ciekawości co powiecie o zapisie:
echo('Jakiś tam tekst'); Dlaczego część książek uczy pisania tych ( i )(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Przecież jest to zbędne... Ps Chyba, że o czymś nie wiem... ;p |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 15 Dołączył: 29.04.2005 Skąd: Gdynia Ostrzeżenie: (0%)
|
Bo traktują echo jak funkcję a nie konstrukcję języka
Cytat("Manual") echo() is not actually a function (it is a language construct), so you are not required to use parentheses with it. Poza tym widziałem już jak piszą ludzie uczący się z tego typu książek. error_reporting(E_ALL) wywala w ich skryptach 50 notice'ów i innych błędów. |
|
|
|
Post
#15
|
|
|
Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%)
|
Hej,
A mi się wydaje, że nastała era leniuchów, którym się nie chcę sprawdzić czy, aby na pewno dobrze zapisują zmienne itp. Najgorsze jest to, jak ktoś taki jeszcze pomaga drugiemu, powtarzając ten błąd i ucząc tym samym złych nawyków - co się czasami pojawia na forum (mam wrażenie, że dosyć często). Pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%)
|
strife: ja ciągle widzę, że jak ktoś pomaga z jedną rzeczą to pokazuje dwie inne złe (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Niestety php jest sam sobie winien i prędzej czy później to będzie język programowania dla dzieci neo a nie do porzadnych zastosowań (zresztą już teraz widzę jak wiele rzeczy php'owi brakuje i coraz cześciej sięgam po inne narzędzia lepsze). pozdr. Łukasz |
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#18
|
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
Ja widzę kolejną perełkę, również często powtarzaną w książkach. Chodzi mianowicie o:
czyli wysyłanie w pełni statycznego tekstu poprzez PHP. Czysta głupota... |
|
|
|
Post
#19
|
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków |
|
|
|
|
Post
#20
|
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%)
|
1. Dostępność LOL, to nie wina języka, że można się go uczyć dzięki kursom. Przecież PHP nie wspiera w żaden sposób złych nawyków bardziej niż inne języki.2. Łatwa instalacja 3. Duże możliwości nauki - książki, kursy on-line 4. Łatwy do opanowania W PHP przynajlniej parser się wykrzacz. Kompilator C przyjmie za to każde gówno. |
|
|
|
Post
#21
|
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków |
To były bardziej argumenty, dlaczego php będzie w przyszłości jeżykiem dla dzieci neo, niż dlaczego sam sobie jest winien (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
|
Post
#22
|
|
|
Grupa: Zarejestrowani Postów: 1 885 Pomógł: 231 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%)
|
Więc może zamiast narzekać, to niech PHP.pl jako zbiór inteligentów z dziedziny PHP, niech douczają, wypaczaja błędy jakie nauczyli się inni użytkownicy/programiści z różnych kursów.
Ortografię każdy potrafi poprawić z racji akcji Bykom Stop. Mnie kiedyś ciągle poprawiali na forach błędy orto, nie denerwowałem się z tego powodu, bo co kolejny post, wpis, list - pisałem coraz mniej błędów. Dziękuje takim ludziom. Szkoda, że nie ma takiej sytuacji i nie wypacza się nagminnie błędów w pisaniu skryptów PHP, ja tworząc jakieś wspólne projekty zwracam uwagę na nieekonomiczność tego co piszą inni, bo jest syt. że uczą się z kursów przestarzałych i kopiują rozwiązania. Jednakże mnie nie ma kto wypaczyć błędów. |
|
|
|
Post
#23
|
|
|
Grupa: Zarejestrowani Postów: 418 Pomógł: 8 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
LOL, to nie wina języka, że można się go uczyć dzięki kursom. Przecież PHP nie wspiera w żaden sposób złych nawyków bardziej niż inne języki. Wspierać może nie wspiera, ale i tak (jako technologia) toleruje znacznie więcej, niż powinno, biorąc pod uwagę pierwszego lepszego żółtodzioba. Nie jestem przeciwnikiem "liberalnego" podejścia PHP do tej kwestii, ale fakt jest faktem, że PHP jest (jako techlogia) wymieniana jednym ciurkiem z RoR, czy Django. Po prostu, zdobywając popularność, PHP nie został w żaden sposób utożsamiony z żadnym frameworkiem, tak jak to ma miejsce w przypadku Ruby-ego, czy Pythona. Stąd też bierze się nagonka na PHP przez byłych jego programistów, którzy jakiś czas temu przerzucili się np. na RoR - nie używali, dajmy na to, Symfony, bo wtedy jeszcze nie było, a PHP kojarzy im się z pisaniem modułów do PostNuke-a, tudzież rozszerzaniem Mambo. A w Rubym, biorąc pod uwagę jego ogromne możliwości pod względem składni, można znacznie bardzi "naspaghettiować" niż w PHP. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Tylko za Ruby-ego nikt nie weźmie się mając zamiar nauczyć się robić stronki internetowe - wybór (prawie) zawsze pada na PHP-a i stąd zamieszanie. |
|
|
|
Post
#24
|
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%)
|
A najbardziej mnie śmieszą teksty w stylu PHP vs. RoR czy PHP vs. Django (czyli to coz zaznaczyłeś). Osoby zaczynające dyskusję nie mają pojęcia o czym mówią.
Jetsem swobodnie w stanie pogadać symfony vs. RoR czy symfony vs. Django |
|
|
|
Post
#25
|
|
|
Grupa: Zarejestrowani Postów: 662 Pomógł: 45 Dołączył: 26.03.2007 Skąd: Warszawa Ostrzeżenie: (0%)
|
@Ociu - To akurat są zalety php. To że ludzie piszą takie "perełki" jest winą samych ludzi. Wiadomo że jak ktoś początkujący przeczyta książkę w której jest taki zapis, uzna to za poprawne. Bo działa i skoro tak jest w książce to tak powinno być. Takich ludzi nie ma co winić, ale jeśli ktoś zabiera się za pisania książki to niech zrobi to poprawnie.
|
|
|
|
Post
#26
|
|
|
Grupa: Zarejestrowani Postów: 418 Pomógł: 8 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
A najbardziej mnie śmieszą teksty w stylu PHP vs. RoR czy PHP vs. Django (czyli to coz zaznaczyłeś). Osoby zaczynające dyskusję nie mają pojęcia o czym mówią. Jetsem swobodnie w stanie pogadać symfony vs. RoR czy symfony vs. Django Racja - duża niekonsekwencja. Brak niszowości PHP to wada, niszowość RoR, Merb, Pylons, Django to zaleta. A Zend, Prado, Symfony? "Jakie Zend, Prado, Symfony! Przecież PHP to gówno! Pisałem w nim kiedyś jakiś moduł do WordPress-a i to było straaaaszne... W tym nic nie może być dobre!" (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) A o wadach RoR to już nic nie pisną... Programiści pokazali, że z PHP-a można naprawdę dużo fajnych rzeczy wycisnąć. Mimo że (i mówię to jako fan PHP-a) język sam w sobie jest momentami tragicznie nieprzemyślany i toporny. Ten post edytował qqrq 30.07.2008, 06:07:15 |
|
|
|
Post
#27
|
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%)
|
Brak niszowości PHP to wada, niszowość RoR, Agavi, Pylons, Django to zaleta. Agavi to framework napisanyw PHP (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
|
Post
#28
|
|
|
Grupa: Zarejestrowani Postów: 418 Pomógł: 8 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
Agavi to framework napisanyw PHP (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Hehe. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Chodziło mi o Merb-a, nie wiem skąd mi się wzięło to Agavi. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#29
|
|
|
Grupa: Zarejestrowani Postów: 288 Pomógł: 12 Dołączył: 2.12.2005 Ostrzeżenie: (0%)
|
Cytat czyli wysyłanie w pełni statycznego tekstu poprzez PHP. Czysta głupota... Jak dla mnie, to lepiej się odnajduję w kodzie, jak mam wszystko w echo, to co wyswietlam, a nie pelno otwieranych i zamykanych znaczników php. Kod <html> <head> <?php if($title) { ?> <title>asdf</title> <?php } ?> </head> <body> </body> </html> To się moim zdaniem mija z celem. Teraz i tak korzystam z szablonów więc nie robi mi to różnicy. |
|
|
|
Post
#30
|
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%)
|
|
|
|
|
Post
#31
|
|
|
Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#32
|
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 15 Dołączył: 10.12.2007 Skąd: Lublin Ostrzeżenie: (0%)
|
1010: To jest chyba kwestia upodobania, ale ja w kodzie HTML raczej wolałbym umieszczać jak najmniej kodu PHP, dlatego raczej skłaniałbym się do konstrukcji destroyerra.
|
|
|
|
Post
#33
|
|
|
Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%)
|
Panowie, nie kłóćcie się o tak błahe sprawy - to już jest IMO tylko kwestia gustu i przyzwyczajenia. Manią jest dopiero to co przedstawiono w pierwszym poście - przykładowe echo "$foo";
|
|
|
|
Post
#34
|
|
|
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
#35
|
|
|
Grupa: Zarejestrowani Postów: 1 885 Pomógł: 231 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%)
|
a takie rzeczy:
też są nagminne, u mnie znajomy zrobił coś takiego tylko z 40 ifów a przecież wystarczyło skrócić to do jednej linii
|
|
|
|
Post
#36
|
|
|
Grupa: Zarejestrowani Postów: 255 Pomógł: 5 Dołączył: 20.03.2007 Skąd: Kraków Ostrzeżenie: (30%)
|
@Zyx: powiedz, że zapomniałeś całą swoją wypowiedź zawrzeć w tagu <ironia></ironia>, proszę Cie (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif)
@Tomplus: ale wtedy i tak musisz zrobić specjalnie tą zmienną $tablica, więc nie zawsze to ułatwia życie, czasem ten wariant 1 jest wygodniejszy Ten post edytował domis86 30.07.2008, 19:33:36 |
|
|
|
Post
#37
|
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
Również uważam, że coś z wypowiedzią Zyxa jest nie tak (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) hehe. Drugi przykład jak najbardziej należy do kwiecistych, natomiast pierwszy? Ja osobiście używam:
Debugowanie jest zdecydowanie prostsze niż przy wpisaniu zapytania bezpośrednio do funkcji. Cytat przecież zmienne tymczasowe ułatwiają debugowanie, bo można zrobić w razie potrzeby rzecz następującą albo np. coś dalej przetwarzać tekst zapytania Nie zgadzasz się z tym?... I jeszcze do ~Tomplus: fajnie, że sobie tak szalejesz ale obawiam się, że twój kod wydajnościowo będzie daleko w tyle za przytaczanym jako okropny (może ładny nie jest - możnaby zastosować switch-case), a to za sprawą:
Przy każdej iteracji obliczany jest rozmiar tablicy. I tu w sumie znowu wracamy do sprawy zmiennych tymczasowych. Dużo lepiej uzyć:
(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) I na koniec: konkretny przytoczony przykład przez ~Tomplus można jeszcze bardziej uprościć:
Hehehe, wiem wiem wiem, to tylko przykład. Więc to tak na marginesie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ten post edytował phpion 30.07.2008, 19:38:20 |
|
|
|
Post
#38
|
|
|
Grupa: Zarejestrowani Postów: 1 885 Pomógł: 231 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%)
|
@domis86
Trzeba stworzyć tablicę, ale cześciej jest tak że niepotrzebnie tworzy się 1000 if'ów zamiast skrócić do potrzebnego minimum. Czasami n-krotnie zmiejsza objętość i czytelność kodu. |
|
|
|
Post
#39
|
|
|
Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%)
|
Nie zgadzasz się z tym?... No może przykład Zyxa był zbyt przesadzony, ale też uważam, że zbyt często używa się zmiennych tymczasowych. Większość kodu (przynamniej pisanego przeze mnie) jest już przemyślana i wiem dokładnie jak to napisać, więc debugowanie raczej nie będzie potrzebne. Zmiennych tymczasowych (i czasem sphagetti code przy okazji) używam w bardzo dużej ilości kiedy piszę coś eksperymentalnego, jakiś trudny algorytm, albo funkcji/biblioteki po raz pierwszy używam. Z drugiej strony też nie można przesadzać ze skracaniem kodu, bo jak to wygląda, kiedy jakaś linijka ma 150 znaków (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ? Raczej nieczytelnie. |
|
|
|
Post
#40
|
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
Taki zapis przykładu z MySQL-em zrozumiałbym, gdyby skrypt potrzebował coś zapisać na przyspieszenie odczytu i robił coś jeszcze z tym, choćby nawet:
Kod $query = 'SELECT ...'; mysql_query($query) or die('Problem z zapytaniem: '.$query); Mam po prostu sztywny podział: kod produkcyjny / kod roboczy. Kod produkcyjny ma trzymać wysoki poziom. Kod roboczy może zawierać rzeczy debugerskie w stylu: Kod echo jakasFunkcja($dane); $this->pole = jakasFunkcja($dane); 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); Przecież też formalnie mogę zechcieć sobie z różnych powodów wyświetlić np. wartość wyrażenia lub argumentu 1, by upewnić się, że na pewno są właściwe (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . 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. Jeżeli coś potrzebuje stałego debugowania włączanego na rozkaz, piszę taki kod, by robił to za mnie. Zauważcie ponadto, że początkujący rzadko mają wyrobiony własny styl kodowania. Jeśli zobaczą, że ktoś tak wpisuje non-stop zapytanie, to stwierdzą, że tak trzeba robić ZAWSZE. I później przekonaj takiego, że projekt posiada "trochę" lepszy sterownik bazy danych, który posiada zaawansowany tryb debugowowania/raportowania błędów i na życzenie udostępni dokładny wygląd każdego zapytania bez konieczności robienia zmiennych pomocniczych... Nie wyklucza to oczywiście skracania przydługawych linijek, które zawsze można przełamać, bez względu na to, czy zapytanie wprowadzamy do zmiennej czy do funkcji. Ten post edytował Zyx 30.07.2008, 21:18:42 |
|
|
|
Post
#41
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Cytat Zauważcie ponadto, że początkujący rzadko mają wyrobiony własny styl kodowania. Jeśli zobaczą, że ktoś tak wpisuje non-stop zapytanie, to stwierdzą, że tak trzeba robić ZAWSZE akurat tu mam mieszane uczucia.o ile przypadki takie jak ten echo "$zmienna" trzeba tepic i gnebic ( (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) o tyle $mysql_query($q) or die('blabla'.$q); juz nie koniecznie. Sam polecam te metode początkującym. jak im sie tak nie napisze, to oni piszą tak: mysql_query('zapytanie') a potem latają po forum (nagminnie latają) ze im mysql_fetch_array() nie dziala. A nie dziala bo mają blad w zapytaniu ale o tym nie wiedzą. Osoby początkujące powinny korzystać z $mysql_query($q) or die('blabla'.$q); Jest to ze tak powiem "mniejsze zło" Czasami jak komus taki kod podaje, to mowie, ze ma tego uzywac dopoki nie nauczy sie programowac. Potem znajdzie lepszą metodę, ale na początek jest ok. Takie postępowanie wymusiło na mnie forum i ta masa milionow przypadkow jakie tu widzialem - początkującemu nie wytlumaczysz takiej prostej sprawy, no chyba ze jest to wyjątkowo kumaty początkujacy, ale niestety na forum takich malo. |
|
|
|
Post
#42
|
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%)
|
A mnie denerwuje uzywanie
zamiast
Niby dziala ale tylko na wlaczonej opcji w php.ini Nie wiem dlaczego nikt nigdy nikogo nie poprawia w tej materii (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Nawet w tym temacie sie takie cuda pokazały. @Tomplus: Twój przyklad jest krótko mówiąc debilny (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Zobacz co robi twoja pętla. Sprawdza kolejno wszystkie elementy. Wiec druga metoda bedzie nawet wolniejsza niz początkowy przyklad bo dochodzi zmienna licząca elementy etc.Kolega, ktory CIę poprawiał chyba też na to nie wpadł (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) chociaz jego optymalizacja troche petle przyspieszyła... Najlepiej uzyc switch (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
|
Post
#43
|
|
|
Grupa: Zarejestrowani Postów: 255 Pomógł: 5 Dołączył: 20.03.2007 Skąd: Kraków Ostrzeżenie: (30%)
|
Czasami jak komus taki kod podaje, to mowie, ze ma tego uzywac dopoki nie nauczy sie programowac. Potem znajdzie lepszą metodę, ale na początek jest ok. Takie postępowanie wymusiło na mnie forum i ta masa milionow przypadkow jakie tu widzialem - początkującemu nie wytlumaczysz takiej prostej sprawy, no chyba ze jest to wyjątkowo kumaty początkujacy, ale niestety na forum takich malo. Nie tylko dla poczatkujacych trzeba pisac prosty kod. >>>> KISS <<<< to podstawa, jezeli ktos ma pozniej modyfikowac twoj program, lub go chociaz zrozumiec (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#44
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Cytat Nie tylko dla poczatkujacych trzeba pisac prosty kod. Ale mowimy o czym innym. CZym innym jest KISS a czym innym jest >>>> KISS <<<< to podstawa, jezeli ktos ma pozniej modyfikowac twoj program, lub go chociaz zrozumiec mysql_query($q) or die('zap:'.$q) No w powaznych projektach nie moze byc takich bzdur, ale dla osob poczatkujacych jest to a w sam raz. A to ze trzeba pisac "caluśnie" to inna sprawa. |
|
|
|
Post
#45
|
|
|
Grupa: Zarejestrowani Postów: 418 Pomógł: 8 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
Swoją drogą dobrze by było, żeby każdy programista miał pod ręką debugger, nie? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) O ile to życie łatwiejsze z urządzeniem, które robi wszystkie "echo 'dupa';" i "print_r($result);" za ciebie... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
|
Post
#46
|
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
@Tomplus: Twój przyklad jest krótko mówiąc debilny (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Zobacz co robi twoja pętla. Sprawdza kolejno wszystkie elementy. Wiec druga metoda bedzie nawet wolniejsza niz początkowy przyklad bo dochodzi zmienna licząca elementy etc.Kolega, ktory CIę poprawiał chyba też na to nie wpadł (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) chociaz jego optymalizacja troche petle przyspieszyła... Hehehe, no faktycznie. Przecież wystarczy echo $tablica[$a] hehehe. O ile to życie łatwiejsze z urządzeniem, które robi wszystkie "echo 'dupa';" i "print_r($result);" za ciebie... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) "Debugowanie przez dupcenie" (określenie bodajże ze strony ~mike) rządzi! Proste, skuteczne i zawsze dostępne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#47
|
|
|
Grupa: Zarejestrowani Postów: 662 Pomógł: 45 Dołączył: 26.03.2007 Skąd: Warszawa Ostrzeżenie: (0%)
|
Ehhh informatycy, tylko im dupczenie w głowie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Skoro wszyscy tak narzekają na jakość kodu pisanego przez początkujących, może ktoś poświęci swój wolny czas i napisze jakiś poradnik jakich błędów unikać ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Na pewno to pomoże wielu użytkownikom (oczywiście tym, którzy będą chcieli go przeczytać i się poprawić).
|
|
|
|
Post
#48
|
|
|
Grupa: Zarejestrowani Postów: 418 Pomógł: 8 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
"Debugowanie przez dupcenie" (określenie bodajże ze strony ~mike) rządzi! Proste, skuteczne i zawsze dostępne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Do prostego debugowania, jasne, sam często używam, hehe, ale jakbyś miał się wgryźć w jakiś skomplikowany i totalnie potaraniony projekt (a tak to czasem w życiu programisty bywa), to wtedy praca bez debuggera jest jak dupczenie po ciemku, że się tak wyrażę. (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) |
|
|
|
Post
#49
|
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
Moli, dobrze prawisz, lecz powiem Ci pewną rzecz. Dwa lata temu zacząłem pisać na Wikibooks kurs PHP, gdzie jednym z założeń było zwracanie uwagi na takie kwiatki, uczulanie już od początku na muzealne rozwiązania i próby analizy, dlaczego tutaj została dana rzecz zrobiona tak, a nie inaczej. Doszedłem do połowy i przerwałem, ponieważ jeśli już ludzie brali się za rozwój, robili to z doskoku, w ogóle olewając wytyczne, stylistykę, jakość samego kodu itd. - artykuł to były trzy zdania z wklejonym nie wiadomo skąd kodem, który był oderwany zupełnie od reszty. Inni z kolei deklarowali się, ile to by mogli napisać i na tym się kończyło. W końcu musiałem przerwać, bo materiału do utrzymania zrobiło się zbyt dużo. Nietknięty kurs wisi już ponad rok i nie widzę, by ktoś tam coś nowego utrzymanego w podobnym duchu napisał. Prawda jest taka, że większość ludzi, którzy mają wiedzę, jest pochłonięta pracą zarobkową i własnymi sprawami. Na jakiś większy grupowy i otwarty projekt związany z PHP w naszym kraju nie ma już chyba wielkich szans.
|
|
|
|
Post
#50
|
|
|
Grupa: Zarejestrowani Postów: 170 Pomógł: 4 Dołączył: 11.08.2006 Ostrzeżenie: (10%)
|
Jeśli już tak piszecie jak powinno się pisać a jak nie to może poda ktoś jakaś aplikacje, (np. cms) która jest bardzo dobrze napisana, zgodnie ze standardami i w ogóle super (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) najlepiej obiektowo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
|
Post
#51
|
|
|
Grupa: Zarejestrowani Postów: 255 Pomógł: 5 Dołączył: 20.03.2007 Skąd: Kraków Ostrzeżenie: (30%)
|
|
|
|
|
Post
#52
|
|
|
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. |
|
|
|
Post
#53
|
|
|
Grupa: Zarejestrowani Postów: 170 Pomógł: 4 Dołączył: 11.08.2006 Ostrzeżenie: (10%)
|
eee ale nie framework (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) (wiem, wiem, jest suuper (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) to już lepiej coś co dobrze go wykorzystuje :] |
|
|
|
Post
#54
|
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 38 Dołączył: 24.02.2007 Skąd: Warszawa Ostrzeżenie: (10%)
|
mysql_query($q) or die('zap:'.$q) No w powaznych projektach nie moze byc takich bzdur, ale dla osob poczatkujacych jest to a w sam raz. A to ze trzeba pisac "caluśnie" to inna sprawa. A ja pozwolę sobie skromnie poprosić kogoś o odpowiedź, jak powinna wyglądać pełna obsługa podanego wyżej błędu? Czy musi to być obiektowo? Edit: Dziękuję Sedziwoj. Ten post edytował Fantazyn 1.08.2008, 09:31:02 |
|
|
|
Post
#55
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
A ja pozwolę sobie skromnie poprosić kogoś o odpowiedź, jak powinna wyglądać pełna obsługa podanego wyżej błędu? Czy musi to być obiektowo? Nie musi być obiektowo, obiektowość ułatwia jeśli się dobrze napisze późniejsze wykorzystanie. A co do obsługi Cytat mysql_query() returns a resource on success, or FALSE on error więc trzeba sprawdzić co zwróciła funkcja, jeśli false, to mysql_errno() i/lub mysql_error() co umożliwia nam stwierdzić co jest nie tak. Oczywiście to dopiero początek, bo trzeba przecież jakoś przekazać te błędy, potem je obsłużyć itp. ... można pisać w nieskończoność.
|
|
|
|
Post
#56
|
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
Sędziwój, chyba wyraźnie napisałem, że jak potrzebujesz tej zmiennej do jakichś wyższych celów, pytania z mojej strony nie było. Jeśli faktycznie Twój Xdebug daje Ci bonusy za przekazywanie wartości przez zmienną, zamiast bezpośrednio, nie ma sensu tego zmieniać. Mój tak nie robił w czasach, gdy go używałem, zresztą do dziś się już mogło pozmieniać trochę, więc nawet o nim nie wspominałem. Weź też pod uwagę, że skoro ty musisz podczas pisania kodu wyświetlać wartości 818373767 argumentów, nie znaczy to, że ja też muszę, nawet jeśli projekt jest duży.
Ad. argumentu o obciążaniu -> toć przecież napisałeś dokładnie to samo, co ja, tylko innymi słowami, więc czego się czepiasz? Podsumowując: zmienne tymczasowe są bez sensu, jeśli niczemu nie służą, tzn. ktoś tak napisał, bo widział tak samo w innym skrypcie, bez zastanawiania się nad sensem ich istnienia. Ten post edytował Zyx 2.08.2008, 11:44:47 |
|
|
|
Post
#57
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
Sędziwój, chyba wyraźnie napisałem, że jak potrzebujesz tej zmiennej do jakichś wyższych celów, pytania z mojej strony nie było. Jeśli faktycznie Twój Xdebug daje Ci bonusy za przekazywanie wartości przez zmienną, zamiast bezpośrednio, nie ma sensu tego zmieniać. Mój tak nie robił w czasach, gdy go używałem, zresztą do dziś się już mogło pozmieniać trochę, więc nawet o nim nie wspominałem. Weź też pod uwagę, że skoro ty musisz podczas pisania kodu wyświetlać wartości 818373767 argumentów, nie znaczy to, że ja też muszę, nawet jeśli projekt jest duży. Wyświetlić? Czy Ty na pewno wiesz o czym ja mówię? Cytat Podsumowując: zmienne tymczasowe są bez sensu, jeśli niczemu nie służą, tzn. ktoś tak napisał, bo widział tak samo w innym skrypcie, bez zastanawiania się nad sensem ich istnienia. Dokładnie, chodziło o sens używania zmiennych do przechowywania stringów złożonych z części statycznych i z zmiennych, przekazywanych do funkcji wbudowanych w język. |
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 16:02 |