-
1. Data: 2010-08-28 14:26:33
Temat: zmienne globalne
Od: j...@p...onet.pl
Nie jestem zbyt doświadczonym programistą. Mam pytanie: czy dobrą zasadą w
programowaniu jest żeby używać zmiennych globalnych tylko w ostateczności? Np.
zamiast:
global error_code;
function something() {
error_code = 0;
...
if (!success) {
error_code = 27;
}
return value;
}
czy lepiej jest napisać:
function something() {
...
if (!success) {
return -27;
}
return value;
}
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
-
2. Data: 2010-08-28 14:57:26
Temat: Re: zmienne globalne
Od: porneL <n...@p...net>
On Sat, 28 Aug 2010 15:26:33 +0100, <j...@p...onet.pl>
wrote:
> Nie jestem zbyt doświadczonym programistą. Mam pytanie: czy dobrą zasadą
> w
> programowaniu jest żeby używać zmiennych globalnych tylko w
> ostateczności? Np.
> zamiast:
>
> global error_code;
> function something() {
> error_code = 0;
> ...
> if (!success) {
> error_code = 27;
> }
> return value;
> }
>
> czy lepiej jest napisać:
>
> function something() {
> ...
> if (!success) {
> return -27;
> }
> return value;
> }
Zmienne globalne to zło. Efekty uboczne to też zło. Pierwsza wersja nie
nadaje się do wielowątkowych programów i może być upierdliwa nawet w
jednowątkowych (musisz sprawdzić zmienną od razu zanim coś ją nadpisze).
Druga wersja jest OK, ale wymaga od użytkownika funkcji pamiętania o
sprawdzeniu magicznej wartości.
Jeżeli możesz, użyj wyjątków:
function something() {
if (!success) throw new Exception27();
return value;
}
wtedy przy użyciu funkcji nie trzeba pamiętać o sprawdzeniu magicznych
zmiennych/wartości.
W językach bez [nadających się do użytku] wyjątków możesz zwrócić parę
wartości (to jest wersja preferowana w GoogleGo):
function something() {
return (success, value);
}
--
http://pornel.net
this.author = new Geek("porneL");
-
3. Data: 2010-08-29 06:50:58
Temat: Re: zmienne globalne
Od: j...@p...onet.pl
A co sądzisz o tym, że w PHP nie deklaruje się zmiennych?
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
-
4. Data: 2010-08-29 08:49:50
Temat: Re: zmienne globalne
Od: "R.M.M" <r...@o...pl>
W dniu 2010-08-29 08:50, j...@p...onet.pl pisze:
> A co sądzisz o tym, że w PHP nie deklaruje się zmiennych?
>
czasem sie deklaruje, np. zeby przeslonic zmienna majaca szersza
widocznosc (niekoniecznie globalna) na rzecz zmiennej lokalnej o takiej
samej nazwie.
--
R.M.M
-
5. Data: 2010-08-29 11:08:34
Temat: Re: zmienne globalne
Od: porneL <n...@p...net>
On Sun, 29 Aug 2010 07:50:58 +0100, <j...@p...onet.pl>
wrote:
> A co sądzisz o tym, że w PHP nie deklaruje się zmiennych?
Włącz pokazywanie ostrzeżeń i PHP będzie czepiało się braku
definicji/deklaracji.
--
http://pornel.net
this.author = new Geek("porneL");
-
6. Data: 2010-08-29 14:15:46
Temat: Re: zmienne globalne
Od: j...@p...onet.pl
> W��cz pokazywanie ostrzeşe� i PHP b�dzie
czepia�o si� braku
> definicji/deklaracji.
Rozumiem że masz na myśli inicjalizację bo o deklarowaniu zmiennych w PHP to ja
nigdzie nie przeczytałem.
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
-
7. Data: 2010-08-31 12:49:26
Temat: Re: zmienne globalne
Od: klops <k...@k...pl>
W dniu 2010-08-29 08:50, j...@p...onet.pl pisze:
> A co sądzisz o tym, że w PHP nie deklaruje się zmiennych?
Brak deklaracji zmiennych może być wygodne gdy się pisze, ale może też
być koszmarem gdy się próbuje zrozumieć obcy kod. A poza tym to
oczywiste, że dynamiczne typowanie (brak deklarowania typów) superancko
spowalnia program, bo ciągle trzeba ustalać typ zmiennej wynikający z
kontekstu.
-
8. Data: 2010-08-31 21:35:21
Temat: Re: zmienne globalne
Od: Michoo <m...@v...pl>
W dniu 31.08.2010 14:49, klops pisze:
> Brak deklaracji zmiennych może być wygodne gdy się pisze,
Zwłaszcza gdy zrobisz literówkę w identyfikatorze i potem przez 2
godziny zastanawiasz się czemu to nie działa. ;)
--
Pozdrawiam
Michoo
-
9. Data: 2010-08-31 21:39:44
Temat: Re: zmienne globalne
Od: porneL <n...@p...net>
On Tue, 31 Aug 2010 22:35:21 +0100, Michoo <m...@v...pl> wrote:
> W dniu 31.08.2010 14:49, klops pisze:
>> Brak deklaracji zmiennych może być wygodne gdy się pisze,
>
> Zwłaszcza gdy zrobisz literówkę w identyfikatorze i potem przez 2
> godziny zastanawiasz się czemu to nie działa. ;)
Jak masz włączone ostrzeganie o użyciu niezadeklarowanych zmiennych, to
dowiesz się o tym dużo prędzej.
Poza tym jak masz edytor z autouzupełnianiem nazw, to trudniej o literówkę
(albo łatwiej o używanie tej samej literówki wszędzie :)
--
http://pornel.net
this.author = new Geek("porneL");
-
10. Data: 2010-09-01 06:45:48
Temat: Re: zmienne globalne
Od: Mariusz Marszałkowski <m...@g...com>
On 31 Sie, 23:35, Michoo <m...@v...pl> wrote:
> W dniu 31.08.2010 14:49, klops pisze:
>
> > Brak deklaracji zmiennych może być wygodne gdy się pisze,
>
> Zwłaszcza gdy zrobisz literówkę w identyfikatorze i potem przez 2
> godziny zastanawiasz się czemu to nie działa. ;)
Ostatnio dużo programuję w PHP i JavaScript, a z rzadka w VBExcel
nie mam jakiś szczególnych kłopotów z tego powodu że nie trzeba
deklarować zmiennych. Nie pamiętam żeby zdarzyło mi się szukanie
przez dwie godziny błędu z powodu literówki w nazwie zmiennej.
Pozdrawiam