Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> goto - opinie i przeżycia
adminik
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 22.01.2008
Skąd: Tarnobrzeg

Ostrzeżenie: (0%)
-----


Co sądzicie o goto np. jako zamiennikowi dla niektórych pętli?
Co sądzicie o elastyczności tego rozwiązania?

Chciałbym poznać kilka opinii na ten temat.

Mi osobiście przypadło goto do gustu.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Obawiam się, że biorąc pod uwagę typowy sposób tworzenia stron przez ciała akademickie:
  1. echo $naglowek;
  2. echo $tresc;
  3. if($blad){die($blad);}
  4. echo $stopka;
- mogą łatwo zauważyć, że zastępując die goto da się wyświetlić błąd razem ze stopką (IMG:style_emoticons/default/biggrin.gif)

Gdy akademicy dorwą się do goto i zaczną tego masowo używać do swoich machinacji możemy mieć trochę przegwizdane.

Na upartego można by tego użyć, gdy np. zachodzi konieczność zabicia kontrolera (krytyczny wyjątek) i przejścia do widoku, by pomijać określone fragmenty kodu ale tak naprawdę po co? Co zyskamy w zamian? Nawet stosując tradycyjną metodę obsługi błędów czy realizacji algorytmu zbudowanego na zasadzie drzewa:
  1. if(!$blad){$wykonaj = 'etap 1';}
  2. if(!$blad){$wykonaj = 'etap 1.1';}
  3. if(!$blad){$wykonaj = 'etap 1.2.';}
- uzyskujemy zapis wydajny a przede wszystkim czytelny, mamy też switch. By użyć goto trzeba by dodać do każdego warunku goto blad no i pojawia się kolejny problem, bo dochodzi rozmieszczanie etykiet, że już nie wspominając o czytelności czy kontroli nad kodem.

Jedyne sensowne zastosowanie tego potwora to cofanie się do jakiegoś kodu by go wykonać jeszcze raz, ale trudno mi wyobrazić sobie taką sytuację w praktyce, trzeba by projektować aplikację w zupełnie nowy sposób (pod goto), co pewnie mocno zirytowałoby całe środowisko programistów gdyby takie rozwiązania stały się popularne (IMG:style_emoticons/default/smile.gif) Już widzę te publikacje typu nowoczesna obsługa sesji z wykorzystaniem goto (IMG:style_emoticons/default/biggrin.gif)

Kedyś używałem goto w skryptach VB i z racji niskiego poziomu umiejętności przydawało się, gdy zaczynałem przygodę z PHP wydawało mi się, że będzie tego brakować (IMG:style_emoticons/default/smile.gif) Kiedyś był tu taki temat "czego Wam brakuje w PHP" i napisałem tam, ze goto - doigrałem się, bo dodali, przepraszam Was za to (IMG:style_emoticons/default/blinksmiley.gif)
Go to the top of the page
+Quote Post

Posty w temacie
- adminik   goto - opinie i przeżycia   5.01.2010, 21:39:24
- - darko   Unikaj jak ognia, tylko w ostateczności, jeśli wsz...   5.01.2010, 21:44:35
- - marcio   No co ty w ogole mowisz etykiety i skoki to mozna ...   5.01.2010, 21:46:24
- - l0ud   W językach programowania wyższego poziomu takiej i...   5.01.2010, 21:47:24
- - Pilsener   A czy to nie działa przypadkiem tylko do przodu? ...   5.01.2010, 23:26:40
- - darko   goto skacze do danej etykiety, a gdzie ją umieścis...   5.01.2010, 23:28:56
- - marcio   Cytat(Pilsener @ 5.01.2010, 23:26:40 ...   5.01.2010, 23:59:15
- - XianN   Zostaw goto w spokoju. W manualu PHP dosc obrazowo...   6.01.2010, 06:21:42
- - Zyx   Jawna rekurencja to nienajciekawszy pomysł, poniew...   6.01.2010, 08:20:11
- - Cysiaczek   @Zyx - czy w php.ini nie da się zwiększyć limit dl...   6.01.2010, 09:09:38
- - thek   Instrukcja GOTO miała jedyny sens w przypadku zagn...   6.01.2010, 10:09:48
- - TheArt   Umiejętne stosowanie 'goto' jest bardzo pr...   6.01.2010, 11:37:20
|- - phpion   Cytat(TheArt @ 6.01.2010, 11:37:20 ) ...   6.01.2010, 12:15:55
- - Zyx   Cysiaczek -> w czystym PHP nie ma. XDebug dodaj...   6.01.2010, 11:41:55
- - ucho   Goto jest powszechnie stosowane w kernelu linuksow...   6.01.2010, 12:27:05
- - deirathe   No tak, ale w phpie to raczej kernela pisac nie be...   6.01.2010, 12:37:59
- - Pilsener   Obawiam się, że biorąc pod uwagę typowy sposób two...   6.01.2010, 13:18:20
- - erix   Cytat- mogą łatwo zauważyć, że zastępując die goto...   6.01.2010, 16:20:53
- - l0ud   Zdaje się, że chcieli po prostu uczynić kodowanie ...   6.01.2010, 17:24:01
- - Crozin   @l0ud: IMO goto wcale nie jest dobre dla początkuj...   6.01.2010, 17:31:50


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.10.2025 - 08:15